Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
yifu-mvp
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
fangxinjiang
yifu-mvp
Commits
8765e70f
Commit
8765e70f
authored
Aug 15, 2022
by
fangxinjiang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/develop' into develop
parents
0039186d
c5748bcd
Show whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
1427 additions
and
930 deletions
+1427
-930
TCheckIdCardController.java
...loud/plus/v1/check/controller/TCheckIdCardController.java
+14
-0
TCheckIdCardMapper.java
...m/yifu/cloud/plus/v1/check/mapper/TCheckIdCardMapper.java
+17
-0
TCheckLockMapper.java
...com/yifu/cloud/plus/v1/check/mapper/TCheckLockMapper.java
+3
-0
TCheckIdCardService.java
...yifu/cloud/plus/v1/check/service/TCheckIdCardService.java
+2
-0
TCheckLockService.java
...m/yifu/cloud/plus/v1/check/service/TCheckLockService.java
+2
-0
TCheckIdCardServiceImpl.java
...d/plus/v1/check/service/impl/TCheckIdCardServiceImpl.java
+237
-0
TCheckLockServiceImpl.java
...oud/plus/v1/check/service/impl/TCheckLockServiceImpl.java
+5
-0
TCheckIdCardMapper.xml
...heck-biz/src/main/resources/mapper/TCheckIdCardMapper.xml
+22
-0
TCheckLockMapper.xml
...-check-biz/src/main/resources/mapper/TCheckLockMapper.xml
+5
-0
CommonConstants.java
...ud.plus.v1/yifu/common/core/constant/CommonConstants.java
+1
-0
TConfigSalary.java
.../yifu/cloud/plus/v1/yifu/salary/entity/TConfigSalary.java
+1
-14
TSalaryStandardSetDetail.java
.../plus/v1/yifu/salary/entity/TSalaryStandardSetDetail.java
+1
-2
TStatisticsBonus.java
...fu/cloud/plus/v1/yifu/salary/entity/TStatisticsBonus.java
+126
-0
TStatisticsAnnualBonusImportVo.java
...lus/v1/yifu/salary/vo/TStatisticsAnnualBonusImportVo.java
+0
-108
TStatisticsBonusSearchVo.java
...loud/plus/v1/yifu/salary/vo/TStatisticsBonusSearchVo.java
+5
-5
TStatisticsBonusVo.java
...yifu/cloud/plus/v1/yifu/salary/vo/TStatisticsBonusVo.java
+142
-0
TStatisticsDeclarerVo.java
...u/cloud/plus/v1/yifu/salary/vo/TStatisticsDeclarerVo.java
+0
-4
TSalaryStandardController.java
.../v1/yifu/salary/controller/TSalaryStandardController.java
+40
-0
TStatisticsAnnualBonusController.java
...u/salary/controller/TStatisticsAnnualBonusController.java
+0
-148
TStatisticsBonusController.java
...v1/yifu/salary/controller/TStatisticsBonusController.java
+142
-0
TStatisticsDeclarerController.java
...yifu/salary/controller/TStatisticsDeclarerController.java
+1
-1
TStatisticsBonusMapper.java
...ud/plus/v1/yifu/salary/mapper/TStatisticsBonusMapper.java
+10
-9
TStatisticsBonusService.java
.../plus/v1/yifu/salary/service/TStatisticsBonusService.java
+15
-17
SalaryUploadServiceImpl.java
.../v1/yifu/salary/service/impl/SalaryUploadServiceImpl.java
+3
-2
TStatisticsAnnualBonusServiceImpl.java
...alary/service/impl/TStatisticsAnnualBonusServiceImpl.java
+0
-340
TStatisticsBonusServiceImpl.java
...yifu/salary/service/impl/TStatisticsBonusServiceImpl.java
+269
-0
SalaryAccountUtil.java
...ifu/cloud/plus/v1/yifu/salary/util/SalaryAccountUtil.java
+4
-0
SalaryCommonUtil.java
...yifu/cloud/plus/v1/yifu/salary/util/SalaryCommonUtil.java
+0
-2
SalaryConstants.java
.../yifu/cloud/plus/v1/yifu/salary/util/SalaryConstants.java
+7
-0
TConfigSalaryMapper.xml
...ary-biz/src/main/resources/mapper/TConfigSalaryMapper.xml
+1
-11
TStatisticsBonusMapper.xml
...-biz/src/main/resources/mapper/TStatisticsBonusMapper.xml
+104
-0
TPaymentHeFeiVo.java
...om/yifu/cloud/plus/v1/yifu/social/vo/TPaymentHeFeiVo.java
+1
-1
TPaymentInfoVo.java
...com/yifu/cloud/plus/v1/yifu/social/vo/TPaymentInfoVo.java
+1
-1
TPreDispatchInfoController.java
...v1/yifu/social/controller/TPreDispatchInfoController.java
+37
-27
TForecastLibraryService.java
.../plus/v1/yifu/social/service/TForecastLibraryService.java
+1
-1
TPreDispatchInfoService.java
.../plus/v1/yifu/social/service/TPreDispatchInfoService.java
+6
-3
TForecastLibraryServiceImpl.java
...yifu/social/service/impl/TForecastLibraryServiceImpl.java
+37
-143
TPaymentInfoServiceImpl.java
.../v1/yifu/social/service/impl/TPaymentInfoServiceImpl.java
+126
-68
TPreDispatchInfoServiceImpl.java
...yifu/social/service/impl/TPreDispatchInfoServiceImpl.java
+39
-23
No files found.
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/controller/TCheckIdCardController.java
View file @
8765e70f
...
...
@@ -162,4 +162,18 @@ public class TCheckIdCardController {
public
TCheckIdCard
checkIdCardSingle
(
@RequestBody
TCheckIdCard
tCheckIdCard
)
{
return
tCheckIdCardService
.
checkIdCardSingle
(
tCheckIdCard
);
}
/**
* @param checkList
* @Description: 校验姓名身份证
* @Author: hgw
* @Date: 2022-6-27 16:23:37
* @return: com.yifu.cloud.v1.common.core.util.R
**/
@Operation
(
description
=
"校验薪资姓名身份证"
)
@SysLog
(
"校验薪资姓名身份证"
)
@PostMapping
(
"/checkSalaryIdCard"
)
public
R
<
List
<
TCheckIdCard
>>
checkSalaryIdCard
(
@RequestBody
List
<
TCheckIdCard
>
checkList
)
{
return
tCheckIdCardService
.
checkSalaryIdCard
(
checkList
);
}
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/mapper/TCheckIdCardMapper.java
View file @
8765e70f
...
...
@@ -34,5 +34,22 @@ public interface TCheckIdCardMapper extends BaseMapper<TCheckIdCard> {
**/
List
<
TCheckIdCard
>
getAllList
(
@Param
(
"tCheckIdCard"
)
TCheckIdCard
tCheckIdCard
);
/**
* @param idCardList
* @Description: 获取身份证的缓存
* @Author: hgw
* @Date: 2022/7/7 16:00
* @return: java.util.List<com.yifu.cloud.v1.checks.api.entity.TCheckIdCard>
**/
List
<
TCheckIdCard
>
getAllListByList
(
@Param
(
"idCardList"
)
List
<
String
>
idCardList
);
/**
* @param idCardList
* @Description: 获取正确的身份证的缓存
* @Author: hgw
* @Date: 2022/7/7 16:00
* @return: java.util.List<com.yifu.cloud.v1.checks.api.entity.TCheckIdCard>
**/
List
<
TCheckIdCard
>
getTrueListByList
(
@Param
(
"idCardList"
)
List
<
String
>
idCardList
);
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/mapper/TCheckLockMapper.java
View file @
8765e70f
...
...
@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.check.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yifu.cloud.plus.v1.check.entity.TCheckLock
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -23,4 +24,6 @@ public interface TCheckLockMapper extends BaseMapper<TCheckLock> {
**/
List
<
TCheckLock
>
getAllList
();
int
getApiNumByMonth
(
@Param
(
"nowMonth"
)
String
nowMonth
);
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/service/TCheckIdCardService.java
View file @
8765e70f
...
...
@@ -46,4 +46,6 @@ public interface TCheckIdCardService extends IService<TCheckIdCard> {
R
<
List
<
TCheckIdCard
>>
checkIdCard
(
List
<
TCheckIdCard
>
checkList
);
TCheckIdCard
checkIdCardSingle
(
TCheckIdCard
tCheckIdCard
);
R
<
List
<
TCheckIdCard
>>
checkSalaryIdCard
(
List
<
TCheckIdCard
>
checkList
);
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/service/TCheckLockService.java
View file @
8765e70f
...
...
@@ -18,4 +18,6 @@ public interface TCheckLockService extends IService<TCheckLock> {
*/
List
<
TCheckLock
>
getAllList
();
int
getApiNumByMonth
(
String
nowMonth
);
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/service/impl/TCheckIdCardServiceImpl.java
View file @
8765e70f
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.check.entity.TCanCheck
;
import
com.yifu.cloud.plus.v1.check.entity.TCheckApiNum
;
import
com.yifu.cloud.plus.v1.check.entity.TCheckIdCard
;
import
com.yifu.cloud.plus.v1.check.entity.TCheckLock
;
...
...
@@ -23,6 +24,7 @@ import lombok.AllArgsConstructor;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -283,4 +285,239 @@ public class TCheckIdCardServiceImpl extends ServiceImpl<TCheckIdCardMapper, TCh
}
}
private
Map
<
String
,
TCheckIdCard
>
getAllMapByList
(
List
<
String
>
idCardList
)
{
Map
<
String
,
TCheckIdCard
>
returnMap
=
new
HashMap
<>();
if
(
idCardList
!=
null
&&
!
idCardList
.
isEmpty
())
{
List
<
TCheckIdCard
>
list
=
baseMapper
.
getAllListByList
(
idCardList
);
if
(
list
!=
null
&&
!
list
.
isEmpty
())
{
for
(
TCheckIdCard
c
:
list
)
{
returnMap
.
put
(
c
.
getIdCard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
c
.
getName
(),
c
);
}
}
}
return
returnMap
;
}
private
Map
<
String
,
TCheckIdCard
>
getTrueMap
(
TCheckIdCard
tCheckIdCard
)
{
if
(
tCheckIdCard
==
null
)
{
tCheckIdCard
=
new
TCheckIdCard
();
}
tCheckIdCard
.
setIsTrue
(
CommonConstants
.
ONE_INT
);
List
<
TCheckIdCard
>
list
=
baseMapper
.
getAllList
(
tCheckIdCard
);
Map
<
String
,
TCheckIdCard
>
returnMap
=
new
HashMap
<>();
if
(
list
!=
null
&&
!
list
.
isEmpty
())
{
for
(
TCheckIdCard
c
:
list
)
{
returnMap
.
put
(
c
.
getIdCard
(),
c
);
}
}
return
returnMap
;
}
private
Map
<
String
,
TCheckIdCard
>
getTrueMapByList
(
List
<
String
>
idCardList
)
{
Map
<
String
,
TCheckIdCard
>
returnMap
=
new
HashMap
<>();
if
(
idCardList
!=
null
&&
!
idCardList
.
isEmpty
())
{
List
<
TCheckIdCard
>
list
=
baseMapper
.
getTrueListByList
(
idCardList
);
if
(
list
!=
null
&&
!
list
.
isEmpty
())
{
for
(
TCheckIdCard
c
:
list
)
{
returnMap
.
put
(
c
.
getIdCard
(),
c
);
}
}
}
return
returnMap
;
}
@Override
public
R
<
List
<
TCheckIdCard
>>
checkSalaryIdCard
(
List
<
TCheckIdCard
>
checkList
)
{
TCanCheck
tCanCheck
=
canCheckService
.
getById
(
1
);
boolean
canCheck
=
false
;
if
(
tCanCheck
!=
null
&&
tCanCheck
.
getCanCheck
()
==
1
)
{
canCheck
=
true
;
}
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
==
null
||
Common
.
isEmpty
(
user
.
getId
()))
{
return
R
.
failed
(
"请登录!"
);
}
String
nowMonth
=
DateUtil
.
addMonth
(
0
);
TCheckApiNum
nowMonthNum
=
tCheckApiNumService
.
getById
(
nowMonth
);
int
nowApiNum
=
tCheckLockService
.
getApiNumByMonth
(
nowMonth
);
if
(
nowMonthNum
==
null
)
{
TCheckApiNum
lastMonth
=
tCheckApiNumService
.
getById
(
DateUtil
.
addMonth
(-
1
));
int
canApiNum
=
10000
;
if
(
lastMonth
!=
null
&&
lastMonth
.
getCanApiNum
()
!=
null
)
{
canApiNum
=
lastMonth
.
getCanApiNum
();
}
nowMonthNum
=
new
TCheckApiNum
();
nowMonthNum
.
setId
(
nowMonth
);
nowMonthNum
.
setCanApiNum
(
canApiNum
);
nowMonthNum
.
setApiNum
(
0
);
tCheckApiNumService
.
save
(
nowMonthNum
);
}
else
if
(
nowApiNum
>=
nowMonthNum
.
getCanApiNum
())
{
return
R
.
failed
(
"当月总条数:"
+
nowMonthNum
.
getCanApiNum
()
+
"已到达上限!"
);
}
if
(
checkList
!=
null
&&
!
checkList
.
isEmpty
())
{
TCheckLock
lock
=
new
TCheckLock
();
lock
.
setImportNum
(
checkList
.
size
());
lock
.
setApiNum
(
0
);
lock
.
setCreateMonth
(
nowMonth
);
lock
.
setCreateTime
(
LocalDateTime
.
now
());
lock
.
setCreateUser
(
user
.
getId
());
lock
.
setDeleteFlag
(
0
);
lock
.
setCreateUserName
(
user
.
getNickname
());
tCheckLockService
.
save
(
lock
);
int
canApiNum
=
nowMonthNum
.
getCanApiNum
();
List
<
String
>
idCardList
=
new
ArrayList
<>();
for
(
TCheckIdCard
card:
checkList
)
{
if
(
card
.
getIdCard
()
!=
null
)
{
idCardList
.
add
(
card
.
getIdCard
());
}
}
// 全部(身份证_姓名)
Map
<
String
,
TCheckIdCard
>
returnMap
=
this
.
getAllMapByList
(
idCardList
);
// 正确的身份证
Map
<
String
,
TCheckIdCard
>
trueMap
=
this
.
getTrueMapByList
(
idCardList
);
TCheckIdCard
nowIdCard
;
TCheckIdCard
lastCard
;
Map
<
String
,
TCheckIdCard
>
idCardMap
=
new
HashMap
<>();
String
userId
=
String
.
valueOf
(
user
.
getId
());
TCheckLock
lockUpdate
;
int
apiNum
=
0
;
// 有一个错误,就不传200给前端
boolean
isTrue
=
true
;
try
{
for
(
TCheckIdCard
c
:
checkList
)
{
if
(
Common
.
isNotNull
(
c
.
getIdCard
())
&&
Common
.
isNotNull
(
c
.
getName
()))
{
lastCard
=
idCardMap
.
get
(
c
.
getIdCard
());
if
(
lastCard
!=
null
)
{
c
.
setIsTrue
(
lastCard
.
getIsTrue
());
c
.
setReason
(
lastCard
.
getReason
());
}
else
{
// 校验姓名身份证规则
if
(!
regIdCard
(
c
.
getIdCard
()))
{
c
.
setIsTrue
(
0
);
c
.
setReason
(
"身份证格式有误"
);
}
else
if
(
regEmpName
(
c
.
getName
()))
{
c
.
setIsTrue
(
0
);
c
.
setReason
(
"姓名含数字或空格,无法校验"
);
}
else
{
nowIdCard
=
returnMap
.
get
(
c
.
getIdCard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
c
.
getName
());
if
(
nowIdCard
!=
null
)
{
c
.
setIsTrue
(
nowIdCard
.
getIsTrue
());
c
.
setReason
(
nowIdCard
.
getReason
());
}
else
{
// 调用对的身份证信息
nowIdCard
=
trueMap
.
get
(
c
.
getIdCard
());
if
(
nowIdCard
!=
null
)
{
if
(
nowIdCard
.
getName
().
equals
(
c
.
getName
()))
{
c
.
setIsTrue
(
nowIdCard
.
getIsTrue
());
c
.
setReason
(
nowIdCard
.
getReason
());
}
else
{
c
.
setIsTrue
(
CommonConstants
.
ZERO_INT
);
c
.
setReason
(
"姓名错误!"
);
}
}
else
{
// 调用API校验
if
(
nowApiNum
<
canApiNum
)
{
nowApiNum
++;
apiNum
++;
// 安全调用:
this
.
doSafetyApi
(
c
,
canCheck
,
userId
);
returnMap
.
put
(
c
.
getIdCard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
c
.
getName
(),
c
);
}
else
{
c
.
setIsTrue
(
0
);
c
.
setReason
(
"调用花钱的Api的条数已达上限:"
+
canApiNum
+
",请联系管理员处理!"
);
}
}
}
}
// 将同身份证的结果存储下来备用,防止撞库
idCardMap
.
put
(
c
.
getIdCard
(),
c
);
}
}
else
{
c
.
setIsTrue
(
0
);
c
.
setReason
(
"姓名身份证不可为空"
);
}
if
(
isTrue
&&
c
.
getIsTrue
()
==
0
)
{
isTrue
=
false
;
}
}
}
catch
(
Exception
e
)
{
returnMap
.
clear
();
trueMap
.
clear
();
lockUpdate
=
new
TCheckLock
();
lockUpdate
.
setId
(
lock
.
getId
());
lockUpdate
.
setDeleteFlag
(
CommonConstants
.
ONE_INT
);
lockUpdate
.
setApiNum
(
apiNum
);
tCheckLockService
.
updateById
(
lockUpdate
);
throw
new
RuntimeException
(
e
.
getMessage
()
==
null
?
"校验身份证导入失败!"
:
"校验身份证导入失败:"
+
e
.
getMessage
());
}
finally
{
returnMap
.
clear
();
trueMap
.
clear
();
lockUpdate
=
new
TCheckLock
();
lockUpdate
.
setId
(
lock
.
getId
());
lockUpdate
.
setDeleteFlag
(
CommonConstants
.
ONE_INT
);
lockUpdate
.
setDeleteFlag
(
CommonConstants
.
ONE_INT
);
lockUpdate
.
setApiNum
(
apiNum
);
tCheckLockService
.
updateById
(
lockUpdate
);
}
if
(
isTrue
)
{
return
R
.
ok
();
}
else
{
return
new
R
<>(
CommonConstants
.
ONE_INT
,
"身份证姓名校验不通过!"
,
checkList
);
}
}
return
R
.
failed
(
"数据为空!"
);
}
/**
* @Description: 多线程调用api,每次调用前查询一下数据库:
* @Author: hgw
* @Date: 2022/6/27 17:09
* @return: void
**/
private
void
doSafetyApi
(
TCheckIdCard
c
,
boolean
canCheck
,
String
userId
)
{
TCheckIdCard
check
=
new
TCheckIdCard
();
check
.
setIdCard
(
c
.
getIdCard
());
Map
<
String
,
TCheckIdCard
>
checkMap
=
this
.
getAllMap
(
check
);
if
(
checkMap
==
null
||
checkMap
.
isEmpty
())
{
// 调用对的身份证信息
Map
<
String
,
TCheckIdCard
>
trueMap
=
this
.
getTrueMap
(
check
);
check
=
trueMap
.
get
(
c
.
getIdCard
());
if
(
check
!=
null
)
{
if
(
check
.
getName
().
equals
(
c
.
getName
()))
{
c
.
setIsTrue
(
check
.
getIsTrue
());
c
.
setReason
(
check
.
getReason
());
}
else
{
c
.
setIsTrue
(
CommonConstants
.
ZERO_INT
);
c
.
setReason
(
"姓名错误!"
);
}
}
else
{
// 调用花钱的
this
.
moneyCheck
(
c
,
canCheck
,
userId
);
}
}
else
{
check
=
checkMap
.
get
(
c
.
getIdCard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
c
.
getName
());
if
(
check
!=
null
)
{
c
.
setIsTrue
(
check
.
getIsTrue
());
c
.
setReason
(
check
.
getReason
());
}
else
{
// 调用花钱的
this
.
moneyCheck
(
c
,
canCheck
,
userId
);
}
}
}
// 调用花钱的
private
void
moneyCheck
(
TCheckIdCard
c
,
boolean
canCheck
,
String
userId
)
{
// 调用花钱的
ChecksUtil
.
checkIdCard
(
c
,
canCheck
);
c
.
setCreateUser
(
userId
);
c
.
setCreateTime
(
LocalDateTime
.
now
());
c
.
setType
(
CommonConstants
.
ONE_INT
);
this
.
save
(
c
);
}
}
yifu-check/yifu-check-biz/src/main/java/com/yifu/cloud/plus/v1/check/service/impl/TCheckLockServiceImpl.java
View file @
8765e70f
...
...
@@ -22,4 +22,9 @@ public class TCheckLockServiceImpl extends ServiceImpl<TCheckLockMapper, TCheckL
return
baseMapper
.
getAllList
();
}
@Override
public
int
getApiNumByMonth
(
String
nowMonth
)
{
return
baseMapper
.
getApiNumByMonth
(
nowMonth
);
}
}
yifu-check/yifu-check-biz/src/main/resources/mapper/TCheckIdCardMapper.xml
View file @
8765e70f
...
...
@@ -60,4 +60,26 @@
order by a.CREATE_TIME desc
</select>
<select
id=
"getAllListByList"
resultMap=
"tCheckIdCardMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_check_id_card a
where a.id_card in
<foreach
item=
"item"
index=
"index"
collection=
"idCardList"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
order by a.CREATE_TIME desc
</select>
<select
id=
"getTrueListByList"
resultMap=
"tCheckIdCardMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_check_id_card a
where a.is_true = 1 and a.id_card in
<foreach
item=
"item"
index=
"index"
collection=
"idCardList"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
order by a.CREATE_TIME desc
</select>
</mapper>
yifu-check/yifu-check-biz/src/main/resources/mapper/TCheckLockMapper.xml
View file @
8765e70f
...
...
@@ -30,4 +30,9 @@
where a.DELETE_FLAG = 0
</select>
<!--获取所有数据-->
<select
id=
"getApiNumByMonth"
resultType=
"java.lang.Integer"
>
select ifnull(sum(c.API_NUM),0) apiNum from t_check_lock c where c.CREATE_MONTH = #{nowMonth}
</select>
</mapper>
yifu-common/yifu-common-core/src/main/java/com/yifu.cloud.plus.v1/yifu/common/core/constant/CommonConstants.java
View file @
8765e70f
...
...
@@ -300,6 +300,7 @@ public interface CommonConstants {
public
static
final
String
ZIP_TYPE
=
"zip"
;
int
BATCH_COUNT
=
100
;
int
BATCH_COUNT1
=
1000
;
String
IMPORT_DATA_ANALYSIS_ERROR
=
"数据导入解析异常,请检查表数据格式(1.日期格式:yyyy-MM-dd,2.比例为整数且不含%)"
;
String
CREATE_TIME
=
"CREATE_TIME"
;
String
ID
=
"ID"
;
...
...
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/entity/TConfigSalary.java
View file @
8765e70f
...
...
@@ -74,13 +74,7 @@ public class TConfigSalary extends Model<TConfigSalary> implements Serializable
@ExcelAttribute
(
name
=
"工资月份"
,
isNotEmpty
=
true
,
errorInfo
=
"工资月份不能为空"
)
@ExcelProperty
(
value
=
"工资月份"
)
private
Integer
salaryMonth
;
/**
* 结算月份
*/
@NotNull
(
message
=
"结算月份不能为空"
)
@ExcelAttribute
(
name
=
"结算月份"
,
isNotEmpty
=
true
,
errorInfo
=
"结算月份不能为空"
)
@ExcelProperty
(
value
=
"结算月份"
)
private
Integer
settleMonth
;
/**
* 社保月份
*/
...
...
@@ -116,12 +110,5 @@ public class TConfigSalary extends Model<TConfigSalary> implements Serializable
@ExcelAttribute
(
name
=
"发放方式"
,
isNotEmpty
=
true
,
errorInfo
=
"发放方式不能为空"
)
@ExcelProperty
(
value
=
"发放方式(0:现金;1:转账)"
)
private
Integer
grantType
;
/**
* 年终奖扣税方案
*/
@NotNull
(
message
=
"年终奖扣税方案不能为空"
)
@ExcelAttribute
(
name
=
"年终奖扣税方案"
,
errorInfo
=
"年终奖扣税方案不能为空"
)
@ExcelProperty
(
value
=
"年终奖扣税方案(0:合并;1:单独;2:自动计算)"
)
private
Integer
annualBonusType
;
}
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/entity/TSalaryStandardSetDetail.java
View file @
8765e70f
...
...
@@ -23,10 +23,9 @@ import javax.validation.constraints.NotNull;
* @date 2021-10-08 14:36:56
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"t_salary_standard_set_detail"
)
@Tag
(
name
=
"薪资工资条配置明细表"
)
public
class
TSalaryStandardSetDetail
extends
BaseEntity
{
public
class
TSalaryStandardSetDetail
{
private
static
final
long
serialVersionUID
=
1L
;
/**
*
...
...
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/entity/TStatistics
Annual
Bonus.java
→
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/entity/TStatisticsBonus.java
View file @
8765e70f
...
...
@@ -21,62 +21,43 @@ import com.alibaba.excel.annotation.ExcelProperty;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.yifu.cloud.plus.v1.yifu.common.
core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.
mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.math.BigDecimal
;
/**
*
统计-全年一次性奖金
*
全年一次性奖金申报表
*
* @author h
gw
* @date 2022-08-
05 11:40
:15
* @author h
uyc
* @date 2022-08-
14 21:31
:15
*/
@Data
@TableName
(
"t_statistics_annual_bonus"
)
@Schema
(
description
=
"统计-全年一次性奖金"
)
public
class
TStatisticsAnnualBonus
{
@TableName
(
"t_statistics_bonus"
)
@EqualsAndHashCode
(
callSuper
=
true
)
@Schema
(
description
=
"全年一次性奖金申报表"
)
public
class
TStatisticsBonus
extends
BaseEntity
{
/**
*
id
*
ID
*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@ExcelProperty
(
"id"
)
@ExcelProperty
(
"ID"
)
@Schema
(
description
=
"ID"
)
private
String
id
;
/**
*
税务主体(封面抬头)
*
申报单位
*/
@ExcelAttribute
(
name
=
"税务主体(封面抬头)"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"税务主体(封面抬头)不能超过50个字符"
)
@ExcelProperty
(
"税务主体(封面抬头)"
)
private
String
invoiceTitle
;
/**
* 结算部门id
*/
@ExcelAttribute
(
name
=
"结算部门id"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门id不能为空"
,
maxLength
=
32
)
@NotBlank
(
message
=
"结算部门id不能为空"
)
@Length
(
max
=
32
,
message
=
"结算部门id不能超过32个字符"
)
@ExcelProperty
(
"结算部门id"
)
private
String
settleDepartId
;
/**
* 结算部门no
*/
@ExcelAttribute
(
name
=
"结算部门no"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门no不能为空"
,
maxLength
=
50
)
@NotBlank
(
message
=
"结算部门no不能为空"
)
@Length
(
max
=
50
,
message
=
"结算部门no不能超过50个字符"
)
@ExcelProperty
(
"结算部门no"
)
private
String
settleDepartNo
;
/**
* 结算部门name
*/
@ExcelAttribute
(
name
=
"结算部门name"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门name不能为空"
,
maxLength
=
50
)
@NotBlank
(
message
=
"结算部门name不能为空"
)
@Length
(
max
=
50
,
message
=
"结算部门name不能超过50个字符"
)
@ExcelProperty
(
"结算部门name"
)
private
String
settleDepartName
;
@ExcelAttribute
(
name
=
"申报单位"
,
maxLength
=
32
)
@Length
(
max
=
32
,
message
=
"申报单位不能超过32个字符"
)
@ExcelProperty
(
"申报单位"
)
@Schema
(
description
=
"申报单位"
)
private
String
declareUnit
;
/**
* 申报月份(YYYYMM)
*/
...
...
@@ -84,60 +65,62 @@ public class TStatisticsAnnualBonus {
@NotBlank
(
message
=
"申报月份(YYYYMM)不能为空"
)
@Length
(
max
=
6
,
message
=
"申报月份(YYYYMM)不能超过6个字符"
)
@ExcelProperty
(
"申报月份(YYYYMM)"
)
@Schema
(
description
=
"申报月份(YYYYMM)"
)
private
String
declareMonth
;
/**
* 员工 ID
*/
@ExcelAttribute
(
name
=
"员工 ID"
,
maxLength
=
32
)
@Length
(
max
=
32
,
message
=
"员工 ID不能超过32个字符"
)
@ExcelProperty
(
"员工 ID"
)
private
String
empId
;
/**
* 员工姓名
*/
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"员工姓名不能超过50
个字符"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
32
)
@Length
(
max
=
32
,
message
=
"员工姓名不能超过32
个字符"
)
@ExcelProperty
(
"员工姓名"
)
@Schema
(
description
=
"员工姓名"
)
private
String
empName
;
/**
*
员工
身份证号
* 身份证号
*/
@ExcelAttribute
(
name
=
"员工身份证号"
,
maxLength
=
25
)
@Length
(
max
=
25
,
message
=
"员工身份证号不能超过25个字符"
)
@ExcelProperty
(
"员工身份证号"
)
@ExcelAttribute
(
name
=
"身份证号"
,
maxLength
=
32
)
@Length
(
max
=
32
,
message
=
"身份证号不能超过32个字符"
)
@ExcelProperty
(
"身份证号"
)
@Schema
(
description
=
"身份证号"
)
private
String
empIdcard
;
/**
* 年终奖
*/
@ExcelAttribute
(
name
=
"年终奖"
)
@ExcelProperty
(
"年终奖"
)
@Schema
(
description
=
"年终奖(元)"
)
private
BigDecimal
annualBonus
;
/**
* 年终奖单独税
* 年终奖单独扣税应缴税额
*/
@ExcelAttribute
(
name
=
"年终奖单独扣税应缴税额"
)
@ExcelProperty
(
"年终奖单独扣税应缴税额"
)
@Schema
(
description
=
"年终奖单独扣税应缴税额"
)
private
BigDecimal
bonusTax
;
/**
* 项目id
*/
@Schema
(
description
=
"项目id"
)
private
String
deptId
;
/**
* 项目编码
*/
@ExcelAttribute
(
name
=
"年终奖单独税"
)
@ExcelProperty
(
"年终奖单独税"
)
private
BigDecimal
tax
;
@Schema
(
description
=
"项目编码"
)
private
String
deptNo
;
/**
* 项目名称
*/
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
/**
* 单位id
*/
@ExcelAttribute
(
name
=
"单位id"
,
maxLength
=
32
)
@Length
(
max
=
32
,
message
=
"单位id不能超过32个字符"
)
@ExcelProperty
(
"单位id"
)
@Schema
(
description
=
"单位id"
)
private
String
unitId
;
/**
* 单位
no
* 单位
编码
*/
@ExcelAttribute
(
name
=
"单位no"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"单位no不能超过50个字符"
)
@ExcelProperty
(
"单位no"
)
@Schema
(
description
=
"单位编码"
)
private
String
unitNo
;
/**
* 单位name
*/
@ExcelAttribute
(
name
=
"单位name"
,
maxLength
=
50
)
@Length
(
max
=
50
,
message
=
"单位name不能超过50个字符"
)
@ExcelProperty
(
"单位name"
)
private
String
unitName
;
}
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatisticsAnnualBonusImportVo.java
deleted
100644 → 0
View file @
0039186d
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* 统计-全年一次性奖金
*
* @author huyc
* @date 2022-08-05 11:40:15
*/
@Data
public
class
TStatisticsAnnualBonusImportVo
extends
RowIndex
implements
Serializable
{
/**
* 员工姓名
*/
@Length
(
max
=
50
,
message
=
"员工姓名 不能超过50 个字符"
)
@NotNull
(
message
=
"员工姓名不可为空"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
50
,
isNotEmpty
=
true
)
@Schema
(
description
=
"员工姓名"
)
@ExcelProperty
(
"员工姓名"
)
private
String
empName
;
/**
* 员工身份证号
*/
@Length
(
max
=
25
,
message
=
"身份证号不能超过25个字符"
)
@NotNull
(
message
=
"身份证号不可为空"
)
@ExcelAttribute
(
name
=
"身份证号"
,
maxLength
=
25
,
isNotEmpty
=
true
)
@Schema
(
description
=
"身份证号"
)
@ExcelProperty
(
"身份证号"
)
private
String
empIdcard
;
/**
* 年终奖
*/
@ExcelAttribute
(
name
=
"待发年终奖"
,
isNotEmpty
=
true
)
@NotNull
(
message
=
"待发年终奖不可为空"
)
@Schema
(
description
=
"待发年终奖"
)
@ExcelProperty
(
"待发年终奖"
)
private
BigDecimal
preAnnualBonus
;
/**
* 年终奖单独税
*/
@ExcelAttribute
(
name
=
"待发12月工资"
,
isNotEmpty
=
true
)
@NotNull
(
message
=
"待发12月工资不可为空"
)
@Schema
(
description
=
"待发12月工资"
)
@ExcelProperty
(
"待发12月工资"
)
private
BigDecimal
preDecSalary
;
/**
* 年终奖单独扣税12月税费
*/
@ExcelAttribute
(
name
=
"年终奖单独扣税12月税费"
)
@Schema
(
description
=
"年终奖单独扣税12月税费"
)
@ExcelProperty
(
"年终奖单独扣税12月税费"
)
private
BigDecimal
onlyTax
;
/**
* 年终奖合并扣税12月税费
*/
@ExcelAttribute
(
name
=
"年终奖合并扣税12月税费"
)
@Schema
(
description
=
"年终奖合并扣税12月税费"
)
@ExcelProperty
(
"年终奖合并扣税12月税费"
)
private
BigDecimal
sumTax
;
/**
* 最优方案-年终奖
*/
@ExcelAttribute
(
name
=
"最优方案-年终奖"
)
@Schema
(
description
=
"最优方案-年终奖"
)
@ExcelProperty
(
"最优方案-年终奖"
)
private
BigDecimal
bestSolutionTax
;
/**
* 最优方案-12月扣税
*/
@ExcelAttribute
(
name
=
"最优方案-12月扣税"
)
@Schema
(
description
=
"最优方案-12月扣税"
)
@ExcelProperty
(
"最优方案-12月扣税"
)
private
BigDecimal
bestSolutionDecTax
;
}
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatistics
Annual
BonusSearchVo.java
→
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatisticsBonusSearchVo.java
View file @
8765e70f
...
...
@@ -16,20 +16,20 @@
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
*
统计-全年一次性奖金
*
全年一次性奖金申报表
*
* @author h
gw
* @date 2022-08-
05 11:40
:15
* @author h
uyc
* @date 2022-08-
14 21:31
:15
*/
@Data
public
class
TStatistics
AnnualBonusSearchVo
extends
TStatisticsAnnual
Bonus
{
public
class
TStatistics
BonusSearchVo
extends
TStatistics
Bonus
{
/**
* 多选导出或删除等操作
...
...
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatistics
Annual
BonusVo.java
→
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatisticsBonusVo.java
View file @
8765e70f
...
...
@@ -19,10 +19,13 @@ package com.yifu.cloud.plus.v1.yifu.salary.vo;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.
yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribut
e
;
import
com.
baomidou.mybatisplus.annotation.TableNam
e
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
...
...
@@ -30,49 +33,32 @@ import java.io.Serializable;
import
java.math.BigDecimal
;
/**
*
统计-全年一次性奖金
*
全年一次性奖金申报表
*
* @author h
gw
* @date 2022-08-
05 11:40
:15
* @author h
uyc
* @date 2022-08-
14 21:31
:15
*/
@Data
public
class
TStatistics
Annual
BonusVo
extends
RowIndex
implements
Serializable
{
public
class
TStatisticsBonusVo
extends
RowIndex
implements
Serializable
{
/**
* 税务主体(封面抬头)
*/
@Length
(
max
=
50
,
message
=
"税务主体(封面抬头) 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"税务主体(封面抬头)"
,
maxLength
=
50
)
@Schema
(
description
=
"税务主体(封面抬头)"
)
@ExcelProperty
(
"税务主体(封面抬头)"
)
private
String
invoiceTitle
;
/**
* 结算部门id
* ID
*/
@NotBlank
(
message
=
"结算部门id 不能为空"
)
@Length
(
max
=
32
,
message
=
"结算部门id 不能超过32 个字符"
)
@ExcelAttribute
(
name
=
"结算部门id"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门id 不能为空"
,
maxLength
=
32
)
@Schema
(
description
=
"结算部门id"
)
@ExcelProperty
(
"结算部门id"
)
private
String
settleDepartId
;
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@NotBlank
(
message
=
"ID 不能为空"
)
@Length
(
max
=
32
,
message
=
"ID 不能超过32 个字符"
)
@ExcelAttribute
(
name
=
"ID"
,
isNotEmpty
=
true
,
errorInfo
=
"ID 不能为空"
,
maxLength
=
32
)
@Schema
(
description
=
"ID"
)
@ExcelProperty
(
"ID"
)
private
String
id
;
/**
*
结算部门no
*
申报单位
*/
@NotBlank
(
message
=
"结算部门no 不能为空"
)
@Length
(
max
=
50
,
message
=
"结算部门no 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"结算部门no"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门no 不能为空"
,
maxLength
=
50
)
@Schema
(
description
=
"结算部门no"
)
@ExcelProperty
(
"结算部门no"
)
private
String
settleDepartNo
;
/**
* 结算部门name
*/
@NotBlank
(
message
=
"结算部门name 不能为空"
)
@Length
(
max
=
50
,
message
=
"结算部门name 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"结算部门name"
,
isNotEmpty
=
true
,
errorInfo
=
"结算部门name 不能为空"
,
maxLength
=
50
)
@Schema
(
description
=
"结算部门name"
)
@ExcelProperty
(
"结算部门name"
)
private
String
settleDepartName
;
@Length
(
max
=
32
,
message
=
"申报单位 不能超过32 个字符"
)
@ExcelAttribute
(
name
=
"申报单位"
,
maxLength
=
32
)
@Schema
(
description
=
"申报单位"
)
@ExcelProperty
(
"申报单位"
)
private
String
declareUnit
;
/**
* 申报月份(YYYYMM)
*/
...
...
@@ -82,29 +68,21 @@ public class TStatisticsAnnualBonusVo extends RowIndex implements Serializable {
@Schema
(
description
=
"申报月份(YYYYMM)"
)
@ExcelProperty
(
"申报月份(YYYYMM)"
)
private
String
declareMonth
;
/**
* 员工 ID
*/
@Length
(
max
=
32
,
message
=
"员工 ID 不能超过32 个字符"
)
@ExcelAttribute
(
name
=
"员工 ID"
,
maxLength
=
32
)
@Schema
(
description
=
"员工 ID"
)
@ExcelProperty
(
"员工 ID"
)
private
String
empId
;
/**
* 员工姓名
*/
@Length
(
max
=
50
,
message
=
"员工姓名 不能超过50
个字符"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
50
)
@Length
(
max
=
32
,
message
=
"员工姓名 不能超过32
个字符"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
32
)
@Schema
(
description
=
"员工姓名"
)
@ExcelProperty
(
"员工姓名"
)
private
String
empName
;
/**
*
员工
身份证号
* 身份证号
*/
@Length
(
max
=
25
,
message
=
"员工身份证号 不能超过25
个字符"
)
@ExcelAttribute
(
name
=
"
员工身份证号"
,
maxLength
=
25
)
@Schema
(
description
=
"
员工
身份证号"
)
@ExcelProperty
(
"
员工
身份证号"
)
@Length
(
max
=
32
,
message
=
"身份证号 不能超过32
个字符"
)
@ExcelAttribute
(
name
=
"
身份证号"
,
maxLength
=
32
)
@Schema
(
description
=
"身份证号"
)
@ExcelProperty
(
"身份证号"
)
private
String
empIdcard
;
/**
* 年终奖
...
...
@@ -114,12 +92,36 @@ public class TStatisticsAnnualBonusVo extends RowIndex implements Serializable {
@ExcelProperty
(
"年终奖"
)
private
BigDecimal
annualBonus
;
/**
* 年终奖单独
税
* 年终奖单独
扣税应缴税额
*/
@ExcelAttribute
(
name
=
"年终奖单独税"
)
@Schema
(
description
=
"年终奖单独税"
)
@ExcelProperty
(
"年终奖单独税"
)
private
BigDecimal
tax
;
@ExcelAttribute
(
name
=
"年终奖单独扣税应缴税额"
)
@Schema
(
description
=
"年终奖单独扣税应缴税额"
)
@ExcelProperty
(
"年终奖单独扣税应缴税额"
)
private
BigDecimal
bonusTax
;
/**
* 项目id
*/
@Length
(
max
=
32
,
message
=
"项目id 不能超过32 个字符"
)
@ExcelAttribute
(
name
=
"项目id"
,
maxLength
=
32
)
@Schema
(
description
=
"项目id"
)
@ExcelProperty
(
"项目id"
)
private
String
deptId
;
/**
* 项目编码
*/
@Length
(
max
=
50
,
message
=
"项目编码 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"项目编码"
,
maxLength
=
50
)
@Schema
(
description
=
"项目编码"
)
@ExcelProperty
(
"项目编码"
)
private
String
deptNo
;
/**
* 项目名称
*/
@Length
(
max
=
50
,
message
=
"项目名称 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"项目名称"
,
maxLength
=
50
)
@Schema
(
description
=
"项目名称"
)
@ExcelProperty
(
"项目名称"
)
private
String
deptName
;
/**
* 单位id
*/
...
...
@@ -129,20 +131,12 @@ public class TStatisticsAnnualBonusVo extends RowIndex implements Serializable {
@ExcelProperty
(
"单位id"
)
private
String
unitId
;
/**
* 单位
no
* 单位
编码
*/
@Length
(
max
=
50
,
message
=
"单位
no
不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"单位
no
"
,
maxLength
=
50
)
@Schema
(
description
=
"单位
no
"
)
@ExcelProperty
(
"单位
no
"
)
@Length
(
max
=
50
,
message
=
"单位
编码
不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"单位
编码
"
,
maxLength
=
50
)
@Schema
(
description
=
"单位
编码
"
)
@ExcelProperty
(
"单位
编码
"
)
private
String
unitNo
;
/**
* 单位name
*/
@Length
(
max
=
50
,
message
=
"单位name 不能超过50 个字符"
)
@ExcelAttribute
(
name
=
"单位name"
,
maxLength
=
50
)
@Schema
(
description
=
"单位name"
)
@ExcelProperty
(
"单位name"
)
private
String
unitName
;
}
yifu-salary/yifu-salary-api/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/vo/TStatisticsDeclarerVo.java
View file @
8765e70f
...
...
@@ -17,15 +17,11 @@
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
vo
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
import
java.io.Serializable
;
/**
...
...
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/controller/TSalaryStandardController.java
View file @
8765e70f
...
...
@@ -19,9 +19,16 @@ package com.yifu.cloud.plus.v1.yifu.salary.controller;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.Common
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TApprovalRecord
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryStandard
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TApprovalRecordService
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TSalaryStandardService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TSalaryStandardSearchVo
;
import
io.swagger.v3.oas.annotations.Operation
;
...
...
@@ -31,6 +38,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
/**
...
...
@@ -47,6 +56,7 @@ public class TSalaryStandardController {
private
final
TSalaryStandardService
tSalaryStandardService
;
private
final
TApprovalRecordService
auditLogService
;
/**
* 简单分页查询
...
...
@@ -141,4 +151,34 @@ public class TSalaryStandardController {
@RequestParam
String
id
)
{
return
tSalaryStandardService
.
salaryStandardAudit
(
auditFlag
,
AuditRemark
,
id
);
}
/**
* 保存并提交
* @return
*/
@Operation
(
description
=
"保存并提交"
)
@PostMapping
(
"/doSubmit"
)
public
R
salaryStandardAudit
(
@RequestBody
TSalaryStandard
tSalaryStandard
)
{
if
(
tSalaryStandard
!=
null
&&
Common
.
isNotNull
(
tSalaryStandard
.
getId
()))
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
user
!=
null
)
{
TApprovalRecord
tApprovalRecord
=
new
TApprovalRecord
();
tApprovalRecord
.
setApprovalResult
(
CommonConstants
.
TWO_STRING
);
tApprovalRecord
.
setApprovalOpinion
(
"提交审核"
);
tApprovalRecord
.
setSalaryId
(
tSalaryStandard
.
getId
());
tApprovalRecord
.
setNodeId
(
"提交审核"
);
tApprovalRecord
.
setApprovalMan
(
user
.
getId
());
tApprovalRecord
.
setApprovalManName
(
user
.
getNickname
());
tApprovalRecord
.
setApprovalTime
(
DateUtil
.
getCurrentDateTime
());
auditLogService
.
save
(
tApprovalRecord
);
tSalaryStandard
.
setSubmitTime
(
new
Date
());
tSalaryStandardService
.
updateById
(
tSalaryStandard
);
return
R
.
ok
(
"提交成功!"
);
}
else
{
return
R
.
failed
(
"请登录!"
);
}
}
else
{
return
R
.
failed
(
"请传参!"
);
}
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/controller/TStatisticsAnnualBonusController.java
deleted
100644 → 0
View file @
0039186d
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.*
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TStatisticsAnnualBonusService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsAnnualBonusSearchVo
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.List
;
/**
* 统计-全年一次性奖金
*
* @author hgw
* @date 2022-08-05 11:40:15
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tstatisticsannualbonus"
)
@Tag
(
name
=
"统计-全年一次性奖金管理"
)
@Slf4j
public
class
TStatisticsAnnualBonusController
{
private
final
TStatisticsAnnualBonusService
tStatisticsAnnualBonusService
;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tStatisticsAnnualBonus 统计-全年一次性奖金
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TStatisticsAnnualBonus
>>
getTStatisticsAnnualBonusPage
(
Page
<
TStatisticsAnnualBonus
>
page
,
TStatisticsAnnualBonusSearchVo
tStatisticsAnnualBonus
)
{
return
new
R
<>(
tStatisticsAnnualBonusService
.
getTStatisticsAnnualBonusPage
(
page
,
tStatisticsAnnualBonus
));
}
/**
* 不分页查询
*
* @param tStatisticsAnnualBonus 统计-全年一次性奖金
* @return
*/
@Operation
(
summary
=
"不分页查询"
,
description
=
"不分页查询"
)
@PostMapping
(
"/noPage"
)
public
R
<
List
<
TStatisticsAnnualBonus
>>
getTStatisticsAnnualBonusNoPage
(
@RequestBody
TStatisticsAnnualBonusSearchVo
tStatisticsAnnualBonus
)
{
return
R
.
ok
(
tStatisticsAnnualBonusService
.
noPageDiy
(
tStatisticsAnnualBonus
));
}
/**
* 通过id查询统计-全年一次性奖金
*
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id查询"
,
description
=
"通过id查询"
)
@GetMapping
(
"/{id}"
)
public
R
<
TStatisticsAnnualBonus
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
return
R
.
ok
(
tStatisticsAnnualBonusService
.
getById
(
id
));
}
/**
* 新增统计-全年一次性奖金
*
* @param tStatisticsAnnualBonus 统计-全年一次性奖金
* @return R
*/
@Operation
(
summary
=
"新增统计-全年一次性奖金"
,
description
=
"新增统计-全年一次性奖金:hasPermission('salary_tstatisticsannualbonus_add')"
)
@SysLog
(
"新增统计-全年一次性奖金"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsannualbonus_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TStatisticsAnnualBonus
tStatisticsAnnualBonus
)
{
return
R
.
ok
(
tStatisticsAnnualBonusService
.
save
(
tStatisticsAnnualBonus
));
}
/**
* 通过id删除统计-全年一次性奖金
*
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除统计-全年一次性奖金"
,
description
=
"通过id删除统计-全年一次性奖金:hasPermission('salary_tstatisticsannualbonus_del')"
)
@SysLog
(
"通过id删除统计-全年一次性奖金"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsannualbonus_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tStatisticsAnnualBonusService
.
removeById
(
id
));
}
/**
* 统计-全年一次性奖金 批量导出
*
* @author hgw
* @date 2022-08-05 11:40:15
**/
@Operation
(
description
=
"导出统计-全年一次性奖金 hasPermission('salary_tstatisticsannualbonus-export')"
)
@PostMapping
(
"/export"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsannualbonus-export')"
)
public
void
export
(
HttpServletResponse
response
,
@RequestBody
TStatisticsAnnualBonusSearchVo
searchVo
)
{
tStatisticsAnnualBonusService
.
listExport
(
response
,
searchVo
);
}
/**
* 年终奖分配方案导入导出
*
* @author huyc
* @date 2022-08-08
**/
@Operation
(
description
=
"年终奖分配方案导入导出 hasPermission('salary_tstatisticsannualbonus_import')"
)
@PostMapping
(
"/bestSolutionExport"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsannualbonus_import')"
)
public
R
<
List
<
ErrorMessage
>>
bestSolutionExport
(
@RequestBody
MultipartFile
file
,
HttpServletResponse
response
,
List
<
String
>
exportFields
)
throws
IOException
{
return
tStatisticsAnnualBonusService
.
bestSendExport
(
file
.
getInputStream
(),
response
,
exportFields
);
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/controller/TStatisticsBonusController.java
0 → 100644
View file @
8765e70f
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
controller
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TStatisticsBonusService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsBonusSearchVo
;
import
lombok.SneakyThrows
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* 全年一次性奖金申报表
*
* @author huyc
* @date 2022-08-14 21:31:15
*/
@RestController
@RequiredArgsConstructor
@RequestMapping
(
"/tstatisticsbonus"
)
@Tag
(
name
=
"全年一次性奖金申报表管理"
)
public
class
TStatisticsBonusController
{
private
final
TStatisticsBonusService
tStatisticsBonusService
;
/**
* 简单分页查询
* @param page 分页对象
* @param tStatisticsBonus 全年一次性奖金申报表
* @return
*/
@Operation
(
description
=
"简单分页查询"
)
@GetMapping
(
"/page"
)
public
R
<
IPage
<
TStatisticsBonus
>>
getTStatisticsBonusPage
(
Page
<
TStatisticsBonus
>
page
,
TStatisticsBonusSearchVo
tStatisticsBonus
)
{
return
new
R
<>(
tStatisticsBonusService
.
getTStatisticsBonusPage
(
page
,
tStatisticsBonus
));
}
/**
* 不分页查询
* @param tStatisticsBonus 全年一次性奖金申报表
* @return
*/
@Operation
(
summary
=
"不分页查询"
,
description
=
"不分页查询"
)
@PostMapping
(
"/noPage"
)
public
R
<
List
<
TStatisticsBonus
>>
getTStatisticsBonusNoPage
(
@RequestBody
TStatisticsBonusSearchVo
tStatisticsBonus
)
{
return
R
.
ok
(
tStatisticsBonusService
.
noPageDiy
(
tStatisticsBonus
));
}
/**
* 新增全年一次性奖金申报表
* @param tStatisticsBonus 全年一次性奖金申报表
* @return R
*/
@Operation
(
summary
=
"新增全年一次性奖金申报表"
,
description
=
"新增全年一次性奖金申报表:hasPermission('salary_tstatisticsbonus_add')"
)
@SysLog
(
"新增全年一次性奖金申报表"
)
@PostMapping
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsbonus_add')"
)
public
R
<
Boolean
>
save
(
@RequestBody
TStatisticsBonus
tStatisticsBonus
)
{
return
R
.
ok
(
tStatisticsBonusService
.
save
(
tStatisticsBonus
));
}
/**
* 通过id删除全年一次性奖金申报表
* @param id id
* @return R
*/
@Operation
(
summary
=
"通过id删除全年一次性奖金申报表"
,
description
=
"通过id删除全年一次性奖金申报表:hasPermission('salary_tstatisticsbonus_del')"
)
@SysLog
(
"通过id删除全年一次性奖金申报表"
)
@DeleteMapping
(
"/{id}"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsbonus_del')"
)
public
R
<
Boolean
>
removeById
(
@PathVariable
String
id
)
{
return
R
.
ok
(
tStatisticsBonusService
.
removeById
(
id
));
}
/**
* 全年一次性奖金申报表 批量导入
*
* @author huyc
* @date 2022-08-14 21:31:15
**/
@SneakyThrows
@Operation
(
description
=
"批量新增全年一次性奖金申报表 hasPermission('salary_tstatisticsbonus-batch-import')"
)
@SysLog
(
"批量新增全年一次性奖金申报表"
)
@PostMapping
(
"/importListAdd"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsbonus-batch-import')"
)
public
R
<
List
<
ErrorMessage
>>
importListAdd
(
@RequestBody
MultipartFile
file
){
return
tStatisticsBonusService
.
importDiy
(
file
.
getInputStream
());
}
/**
* 全年一次性奖金申报表 批量导出
* @author huyc
* @date 2022-08-14 21:31:15
**/
@Operation
(
description
=
"导出全年一次性奖金申报表 hasPermission('salary_tstatisticsbonus-export')"
)
@PostMapping
(
"/export"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsbonus-export')"
)
public
void
export
(
HttpServletResponse
response
,
@RequestBody
TStatisticsBonusSearchVo
searchVo
)
{
tStatisticsBonusService
.
listExport
(
response
,
searchVo
);
}
/**
* 全年一次性奖金申报表 批量删除
*
* @author huyc
* @date 2022-08-14 21:31:15
**/
@Operation
(
description
=
"批量删除全年一次性奖金申报表 hasPermission('salary_tstatisticsbonus_del')"
)
@SysLog
(
"批量删除全年一次性奖金申报表"
)
@PostMapping
(
"/batchDelete"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsbonus_del')"
)
public
R
batchDelete
(
@RequestBody
String
declareMonth
){
return
tStatisticsBonusService
.
batchDelete
(
declareMonth
);
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/controller/TStatisticsDeclarerController.java
View file @
8765e70f
...
...
@@ -147,7 +147,7 @@ public class TStatisticsDeclarerController {
**/
@Operation
(
description
=
"导出申报对象表 hasPermission('salary_tstatisticsdeclarer-export')"
)
@PostMapping
(
"/export"
)
@PreAuthorize
(
"@pms.hasPermission('salary_tstatisticsdeclarer-export')"
)
//
@PreAuthorize("@pms.hasPermission('salary_tstatisticsdeclarer-export')")
public
void
export
(
HttpServletResponse
response
,
@RequestBody
TStatisticsDeclarerSearchVo
searchVo
)
{
tStatisticsDeclarerService
.
listExport
(
response
,
searchVo
);
}
...
...
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/mapper/TStatistics
Annual
BonusMapper.java
→
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/mapper/TStatisticsBonusMapper.java
View file @
8765e70f
...
...
@@ -18,23 +18,24 @@
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus
;
import
org.apache.ibatis.annotations.Mapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
*
统计-全年一次性奖金
*
全年一次性奖金申报表
*
* @author h
gw
* @date 2022-08-
05 11:40
:15
* @author h
uyc
* @date 2022-08-
14 21:31
:15
*/
@Mapper
public
interface
TStatistics
AnnualBonusMapper
extends
BaseMapper
<
TStatisticsAnnual
Bonus
>
{
public
interface
TStatistics
BonusMapper
extends
BaseMapper
<
TStatistics
Bonus
>
{
/**
*
统计-全年一次性奖金
简单分页查询
* @param tStatistics
AnnualBonus 统计-全年一次性奖金
*
全年一次性奖金申报表
简单分页查询
* @param tStatistics
Bonus 全年一次性奖金申报表
* @return
*/
IPage
<
TStatistics
AnnualBonus
>
getTStatisticsAnnualBonusPage
(
Page
<
TStatisticsAnnualBonus
>
page
,
@Param
(
"tStatisticsAnnualBonus"
)
TStatisticsAnnualBonus
tStatisticsAnnual
Bonus
);
IPage
<
TStatistics
Bonus
>
getTStatisticsBonusPage
(
Page
<
TStatisticsBonus
>
page
,
@Param
(
"tStatisticsBonus"
)
TStatisticsBonus
tStatistics
Bonus
);
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/TStatistics
Annual
BonusService.java
→
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/TStatisticsBonusService.java
View file @
8765e70f
...
...
@@ -17,43 +17,41 @@
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsAnnualBonusSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsBonusSearchVo
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.util.List
;
/**
*
统计-全年一次性奖金
*
全年一次性奖金申报表
*
* @author h
gw
* @date 2022-08-
05 11:40
:15
* @author h
uyc
* @date 2022-08-
14 21:31
:15
*/
public
interface
TStatistics
AnnualBonusService
extends
IService
<
TStatisticsAnnual
Bonus
>
{
public
interface
TStatistics
BonusService
extends
IService
<
TStatistics
Bonus
>
{
/**
*
统计-全年一次性奖金
简单分页查询
* @param tStatistics
AnnualBonus 统计-全年一次性奖金
*
全年一次性奖金申报表
简单分页查询
* @param tStatistics
Bonus 全年一次性奖金申报表
* @return
*/
IPage
<
TStatisticsAnnualBonus
>
getTStatisticsAnnualBonusPage
(
Page
<
TStatisticsAnnualBonus
>
page
,
TStatisticsAnnualBonusSearchVo
tStatisticsAnnualBonus
);
IPage
<
TStatisticsBonus
>
getTStatisticsBonusPage
(
Page
<
TStatisticsBonus
>
page
,
TStatisticsBonusSearchVo
tStatisticsBonus
);
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
);
void
listExport
(
HttpServletResponse
response
,
TStatistics
Annual
BonusSearchVo
searchVo
);
void
listExport
(
HttpServletResponse
response
,
TStatisticsBonusSearchVo
searchVo
);
List
<
TStatistics
AnnualBonus
>
noPageDiy
(
TStatisticsAnnual
BonusSearchVo
searchVo
);
List
<
TStatistics
Bonus
>
noPageDiy
(
TStatistics
BonusSearchVo
searchVo
);
/**
*
年终奖分配方案导入导出
* @param
inputStream
*
批量删除全年一次性奖金申报表
* @param
declareMonth 申报月份
* @return
*/
R
<
List
<
ErrorMessage
>>
bestSendExport
(
InputStream
inputStream
,
HttpServletResponse
response
,
List
<
String
>
exportFields
);
R
batchDelete
(
String
declareMonth
);
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/impl/SalaryUploadServiceImpl.java
View file @
8765e70f
...
...
@@ -159,7 +159,7 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
Map
<
String
,
Integer
>
ownEmployeeMap
=
tOwnDeptService
.
getOwnEmpMap
();
// 2.6.6:校验导入数据重复的Map格式:#身份证号_工资月份_报表类型_应发金额
Map
<
String
,
Integer
>
checkMap
=
tSalaryAccountService
.
getAccountCheckMap
(
dept
.
getId
(),
DateUtil
.
addMonth
(
configSalary
.
getS
ettle
Month
()));
Map
<
String
,
Integer
>
checkMap
=
tSalaryAccountService
.
getAccountCheckMap
(
dept
.
getId
(),
DateUtil
.
addMonth
(
configSalary
.
getS
alary
Month
()));
util1
.
getJsonStringToList
(
user
,
jsonString
,
dept
,
configSalary
,
salaryConfigMap
,
isMustMap
,
empIdCardMap
,
empNameMap
,
isDuplicateName
,
salaryType
,
invoiceTitle
,
employeeService
,
checkMap
,
repeatFlag
,
ownEmployeeMap
,
ownDeptMap
,
tSalaryAccountService
);
...
...
@@ -173,7 +173,8 @@ public class SalaryUploadServiceImpl extends ServiceImpl<TSalaryStandardMapper,
return
R
.
failed
(
returnVo
);
}
else
{
if
(
null
!=
saList
&&
!
saList
.
isEmpty
())
{
return
R
.
ok
(
saList
);
// return R.ok(saList)
return
this
.
saveAndSubmit
(
saList
);
}
else
{
return
R
.
failed
(
"导入数据不可为空"
);
}
...
...
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/impl/TStatisticsAnnualBonusServiceImpl.java
deleted
100644 → 0
View file @
0039186d
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.read.listener.ReadListener
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.excel.util.ListUtils
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeProjectExportVO
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus
;
import
com.yifu.cloud.plus.v1.yifu.salary.mapper.TStatisticsAnnualBonusMapper
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TStatisticsAnnualBonusService
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsAnnualBonusImportVo
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsAnnualBonusSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsAnnualBonusVo
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 统计-全年一次性奖金
*
* @author hgw
* @date 2022-08-05 11:40:15
*/
@Log4j2
@Service
public
class
TStatisticsAnnualBonusServiceImpl
extends
ServiceImpl
<
TStatisticsAnnualBonusMapper
,
TStatisticsAnnualBonus
>
implements
TStatisticsAnnualBonusService
{
/**
* 统计-全年一次性奖金简单分页查询
*
* @param tStatisticsAnnualBonus 统计-全年一次性奖金
* @return
*/
@Override
public
IPage
<
TStatisticsAnnualBonus
>
getTStatisticsAnnualBonusPage
(
Page
<
TStatisticsAnnualBonus
>
page
,
TStatisticsAnnualBonusSearchVo
tStatisticsAnnualBonus
)
{
return
baseMapper
.
getTStatisticsAnnualBonusPage
(
page
,
tStatisticsAnnualBonus
);
}
/**
* 统计-全年一次性奖金批量导出
*
* @return
*/
@Override
public
void
listExport
(
HttpServletResponse
response
,
TStatisticsAnnualBonusSearchVo
searchVo
)
{
String
fileName
=
"不良记录批量导出"
+
DateUtil
.
getThisTime
()
+
".xlsx"
;
//获取要导出的列表
List
<
TStatisticsAnnualBonus
>
list
=
new
ArrayList
<>();
long
count
=
noPageCountDiy
(
searchVo
);
ServletOutputStream
out
=
null
;
try
{
out
=
response
.
getOutputStream
();
response
.
setContentType
(
"multipart/form-data"
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
,
"UTF-8"
));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
out
,
TStatisticsAnnualBonus
.
class
).
build
();
int
index
=
0
;
if
(
count
>
CommonConstants
.
ZERO_INT
)
{
for
(
int
i
=
0
;
i
<=
count
;
)
{
// 获取实际记录
searchVo
.
setLimitStart
(
i
);
searchVo
.
setLimitEnd
(
CommonConstants
.
EXCEL_EXPORT_LIMIT
);
list
=
noPageDiy
(
searchVo
);
if
(
Common
.
isNotNull
(
list
))
{
ExcelUtil
<
TStatisticsAnnualBonus
>
util
=
new
ExcelUtil
<>(
TStatisticsAnnualBonus
.
class
);
for
(
TStatisticsAnnualBonus
vo
:
list
)
{
util
.
convertEntity
(
vo
,
null
,
null
,
null
);
}
}
if
(
Common
.
isNotNull
(
list
))
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"统计-全年一次性奖金"
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
index
++;
}
i
=
i
+
CommonConstants
.
EXCEL_EXPORT_LIMIT
;
if
(
Common
.
isNotNull
(
list
))
{
list
.
clear
();
}
}
}
else
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"统计-全年一次性奖金"
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
}
if
(
Common
.
isNotNull
(
list
))
{
list
.
clear
();
}
out
.
flush
();
excelWriter
.
finish
();
}
catch
(
Exception
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
finally
{
try
{
if
(
null
!=
out
)
{
out
.
close
();
}
}
catch
(
IOException
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
}
}
@Override
public
List
<
TStatisticsAnnualBonus
>
noPageDiy
(
TStatisticsAnnualBonusSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TStatisticsAnnualBonus
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
))
{
wrapper
.
in
(
TStatisticsAnnualBonus:
:
getId
,
idList
);
}
if
(
searchVo
.
getLimitStart
()
>=
0
&&
searchVo
.
getLimitEnd
()
>
0
)
{
wrapper
.
last
(
" limit "
+
searchVo
.
getLimitStart
()
+
","
+
searchVo
.
getLimitEnd
());
}
return
baseMapper
.
selectList
(
wrapper
);
}
@Override
public
R
<
List
<
ErrorMessage
>>
bestSendExport
(
InputStream
inputStream
,
HttpServletResponse
response
,
List
<
String
>
exportFields
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
List
<
ErrorMessage
>
errorMessageList
=
new
ArrayList
<>();
ExcelUtil
<
TStatisticsAnnualBonusImportVo
>
util1
=
new
ExcelUtil
<>(
TStatisticsAnnualBonusImportVo
.
class
);
;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try
{
EasyExcel
.
read
(
inputStream
,
TStatisticsAnnualBonusImportVo
.
class
,
new
ReadListener
<
TStatisticsAnnualBonusImportVo
>()
{
/**
* 单次缓存的数据量
*/
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
;
/**
*临时存储
*/
private
List
<
TStatisticsAnnualBonusImportVo
>
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
@Override
public
void
invoke
(
TStatisticsAnnualBonusImportVo
data
,
AnalysisContext
context
)
{
ReadRowHolder
readRowHolder
=
context
.
readRowHolder
();
Integer
rowIndex
=
readRowHolder
.
getRowIndex
();
data
.
setRowIndex
(
rowIndex
+
1
);
ErrorMessage
errorMessage
=
util1
.
checkEntity
(
data
,
data
.
getRowIndex
());
if
(
Common
.
isNotNull
(
errorMessage
))
{
errorMessageList
.
add
(
errorMessage
);
}
else
{
cachedDataList
.
add
(
data
);
}
if
(
cachedDataList
.
size
()
>=
BATCH_COUNT
)
{
saveData
();
// 存储完成清理 list
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
saveData
();
}
/**
* 加上存储数据库
*/
private
void
saveData
()
{
log
.
info
(
"{}条数据,开始存储数据库!"
,
cachedDataList
.
size
());
importBestSendTax
(
cachedDataList
,
errorMessageList
,
user
,
response
,
exportFields
);
log
.
info
(
"存储数据库成功!"
);
}
}).
sheet
().
doRead
();
}
catch
(
Exception
e
)
{
log
.
error
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
,
e
);
return
R
.
failed
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
);
}
return
R
.
ok
(
errorMessageList
);
}
private
void
importBestSendTax
(
List
<
TStatisticsAnnualBonusImportVo
>
list
,
List
<
ErrorMessage
>
errorMessageList
,
YifuUser
user
,
HttpServletResponse
response
,
List
<
String
>
exportFields
)
{
if
(
errorMessageList
.
size
()
==
CommonConstants
.
ZERO_INT
)
{
String
fileName
=
"年终奖测算导出"
+
DateUtil
.
getThisTime
()
+
".xlsx"
;
ServletOutputStream
out
=
null
;
for
(
TStatisticsAnnualBonusImportVo
infoVo
:
list
)
{
//todo
}
try
{
out
=
response
.
getOutputStream
();
response
.
setContentType
(
"multipart/form-data"
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
,
"UTF-8"
));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
EasyExcel
.
write
(
out
,
TStatisticsAnnualBonusImportVo
.
class
).
includeColumnFiledNames
(
exportFields
).
sheet
(
"年终奖测算"
)
.
doWrite
(
list
);
out
.
flush
();
}
catch
(
Exception
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
finally
{
try
{
if
(
null
!=
out
)
{
out
.
close
();
}
}
catch
(
IOException
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
}
}
}
private
Long
noPageCountDiy
(
TStatisticsAnnualBonusSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TStatisticsAnnualBonus
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
))
{
wrapper
.
in
(
TStatisticsAnnualBonus:
:
getId
,
idList
);
}
return
baseMapper
.
selectCount
(
wrapper
);
}
private
LambdaQueryWrapper
buildQueryWrapper
(
TStatisticsAnnualBonusSearchVo
entity
)
{
LambdaQueryWrapper
<
TStatisticsAnnualBonus
>
wrapper
=
Wrappers
.
lambdaQuery
();
return
wrapper
;
}
@Override
public
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
)
{
List
<
ErrorMessage
>
errorMessageList
=
new
ArrayList
<>();
ExcelUtil
<
TStatisticsAnnualBonusVo
>
util1
=
new
ExcelUtil
<>(
TStatisticsAnnualBonusVo
.
class
);
;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try
{
EasyExcel
.
read
(
inputStream
,
TStatisticsAnnualBonusVo
.
class
,
new
ReadListener
<
TStatisticsAnnualBonusVo
>()
{
/**
* 单次缓存的数据量
*/
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
;
/**
*临时存储
*/
private
List
<
TStatisticsAnnualBonusVo
>
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
@Override
public
void
invoke
(
TStatisticsAnnualBonusVo
data
,
AnalysisContext
context
)
{
ReadRowHolder
readRowHolder
=
context
.
readRowHolder
();
Integer
rowIndex
=
readRowHolder
.
getRowIndex
();
data
.
setRowIndex
(
rowIndex
+
1
);
ErrorMessage
errorMessage
=
util1
.
checkEntity
(
data
,
data
.
getRowIndex
());
if
(
Common
.
isNotNull
(
errorMessage
))
{
errorMessageList
.
add
(
errorMessage
);
}
else
{
cachedDataList
.
add
(
data
);
}
if
(
cachedDataList
.
size
()
>=
BATCH_COUNT
)
{
saveData
();
// 存储完成清理 list
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
saveData
();
}
/**
* 加上存储数据库
*/
private
void
saveData
()
{
log
.
info
(
"{}条数据,开始存储数据库!"
,
cachedDataList
.
size
());
importTStatisticsAnnualBonus
(
cachedDataList
,
errorMessageList
);
log
.
info
(
"存储数据库成功!"
);
}
}).
sheet
().
doRead
();
}
catch
(
Exception
e
)
{
log
.
error
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
,
e
);
return
R
.
failed
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
);
}
return
R
.
ok
(
errorMessageList
);
}
private
void
importTStatisticsAnnualBonus
(
List
<
TStatisticsAnnualBonusVo
>
excelVOList
,
List
<
ErrorMessage
>
errorMessageList
)
{
// 个性化校验逻辑
ErrorMessage
errorMsg
;
// 执行数据插入操作 组装
for
(
int
i
=
0
;
i
<
excelVOList
.
size
();
i
++)
{
TStatisticsAnnualBonusVo
excel
=
excelVOList
.
get
(
i
);
// 数据合法情况 TODO
// 插入
insertExcel
(
excel
);
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
CommonConstants
.
SAVE_SUCCESS
));
}
}
/**
* 插入excel bad record
*/
private
void
insertExcel
(
TStatisticsAnnualBonusVo
excel
)
{
TStatisticsAnnualBonus
insert
=
new
TStatisticsAnnualBonus
();
BeanUtil
.
copyProperties
(
excel
,
insert
);
this
.
save
(
insert
);
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/service/impl/TStatisticsBonusServiceImpl.java
0 → 100644
View file @
8765e70f
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
salary
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus
;
import
com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsDeclarer
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsBonusVo
;
import
com.yifu.cloud.plus.v1.yifu.salary.mapper.TStatisticsBonusMapper
;
import
com.yifu.cloud.plus.v1.yifu.salary.service.TStatisticsBonusService
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.stereotype.Service
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.salary.vo.TStatisticsBonusSearchVo
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.util.List
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.util.ArrayUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.read.listener.ReadListener
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.excel.util.ListUtils
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.*
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* 全年一次性奖金申报表
*
* @author huyc
* @date 2022-08-14 21:31:15
*/
@Log4j2
@Service
@RequiredArgsConstructor
public
class
TStatisticsBonusServiceImpl
extends
ServiceImpl
<
TStatisticsBonusMapper
,
TStatisticsBonus
>
implements
TStatisticsBonusService
{
/**
* 全年一次性奖金申报表简单分页查询
* @param tStatisticsBonus 全年一次性奖金申报表
* @return
*/
@Override
public
IPage
<
TStatisticsBonus
>
getTStatisticsBonusPage
(
Page
<
TStatisticsBonus
>
page
,
TStatisticsBonusSearchVo
tStatisticsBonus
){
return
baseMapper
.
getTStatisticsBonusPage
(
page
,
tStatisticsBonus
);
}
/**
* 全年一次性奖金申报表批量导出
* @param searchVo 全年一次性奖金申报表
* @return
*/
@Override
public
void
listExport
(
HttpServletResponse
response
,
TStatisticsBonusSearchVo
searchVo
){
String
fileName
=
"全年一次性奖金申报表批量导出"
+
DateUtil
.
getThisTime
()
+
".xlsx"
;
//获取要导出的列表
List
<
TStatisticsBonus
>
list
=
new
ArrayList
<>();
long
count
=
noPageCountDiy
(
searchVo
);
ServletOutputStream
out
=
null
;
try
{
out
=
response
.
getOutputStream
();
response
.
setContentType
(
"multipart/form-data"
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
,
"UTF-8"
));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
out
,
TStatisticsBonus
.
class
).
build
();
int
index
=
0
;
if
(
count
>
CommonConstants
.
ZERO_INT
){
for
(
int
i
=
0
;
i
<=
count
;
)
{
// 获取实际记录
searchVo
.
setLimitStart
(
i
);
searchVo
.
setLimitEnd
(
CommonConstants
.
EXCEL_EXPORT_LIMIT
);
list
=
noPageDiy
(
searchVo
);
if
(
Common
.
isNotNull
(
list
)){
ExcelUtil
<
TStatisticsBonus
>
util
=
new
ExcelUtil
<>(
TStatisticsBonus
.
class
);
for
(
TStatisticsBonus
vo:
list
){
util
.
convertEntity
(
vo
,
null
,
null
,
null
);
}
}
if
(
Common
.
isNotNull
(
list
)){
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"全年一次性奖金申报表"
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
index
++;
}
i
=
i
+
CommonConstants
.
EXCEL_EXPORT_LIMIT
;
if
(
Common
.
isNotNull
(
list
)){
list
.
clear
();
}
}
}
else
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"全年一次性奖金申报表"
+
index
).
build
();
excelWriter
.
write
(
list
,
writeSheet
);
}
if
(
Common
.
isNotNull
(
list
)){
list
.
clear
();
}
out
.
flush
();
excelWriter
.
finish
();
}
catch
(
Exception
e
){
log
.
error
(
"执行异常"
,
e
);
}
finally
{
try
{
if
(
null
!=
out
)
{
out
.
close
();
}
}
catch
(
IOException
e
)
{
log
.
error
(
"执行异常"
,
e
);
}
}
}
@Override
public
List
<
TStatisticsBonus
>
noPageDiy
(
TStatisticsBonusSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TStatisticsBonus
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
)){
wrapper
.
in
(
TStatisticsBonus:
:
getId
,
idList
);
}
if
(
searchVo
.
getLimitStart
()
>=
0
&&
searchVo
.
getLimitEnd
()
>
0
){
wrapper
.
last
(
" limit "
+
searchVo
.
getLimitStart
()
+
","
+
searchVo
.
getLimitEnd
());
}
wrapper
.
orderByDesc
(
BaseEntity:
:
getCreateTime
);
return
baseMapper
.
selectList
(
wrapper
);
}
@Override
public
R
batchDelete
(
String
declareMonth
)
{
if
(
Common
.
isNotNull
(
declareMonth
))
{
List
<
TStatisticsBonus
>
deleteList
=
baseMapper
.
selectList
(
Wrappers
.<
TStatisticsBonus
>
query
().
lambda
()
.
in
(
TStatisticsBonus:
:
getDeclareMonth
,
declareMonth
));
if
(
Common
.
isNotNull
(
deleteList
))
{
List
<
String
>
idList
=
deleteList
.
stream
().
map
(
TStatisticsBonus:
:
getId
).
collect
(
Collectors
.
toList
());
baseMapper
.
deleteBatchIds
(
idList
);
return
R
.
ok
();
}
return
R
.
failed
(
CommonConstants
.
NO_DATA_TO_HANDLE
);
}
return
null
;
}
private
Long
noPageCountDiy
(
TStatisticsBonusSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TStatisticsBonus
>
wrapper
=
buildQueryWrapper
(
searchVo
);
List
<
String
>
idList
=
Common
.
getList
(
searchVo
.
getIds
());
if
(
Common
.
isNotNull
(
idList
)){
wrapper
.
in
(
TStatisticsBonus:
:
getId
,
idList
);
}
return
baseMapper
.
selectCount
(
wrapper
);
}
private
LambdaQueryWrapper
buildQueryWrapper
(
TStatisticsBonusSearchVo
entity
){
LambdaQueryWrapper
<
TStatisticsBonus
>
wrapper
=
Wrappers
.
lambdaQuery
();
if
(
Common
.
isNotNull
(
entity
.
getDeclareMonth
()))
{
wrapper
.
eq
(
TStatisticsBonus:
:
getDeclareMonth
,
entity
.
getDeclareMonth
());
}
if
(
Common
.
isNotNull
(
entity
.
getDeclareUnit
()))
{
wrapper
.
eq
(
TStatisticsBonus:
:
getDeclareUnit
,
entity
.
getDeclareUnit
());
}
return
wrapper
;
}
@Override
public
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
)
{
List
<
ErrorMessage
>
errorMessageList
=
new
ArrayList
<>();
ExcelUtil
<
TStatisticsBonusVo
>
util1
=
new
ExcelUtil
<>(
TStatisticsBonusVo
.
class
);;
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
try
{
EasyExcel
.
read
(
inputStream
,
TStatisticsBonusVo
.
class
,
new
ReadListener
<
TStatisticsBonusVo
>()
{
/**
* 单次缓存的数据量
*/
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
;
/**
*临时存储
*/
private
List
<
TStatisticsBonusVo
>
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
@Override
public
void
invoke
(
TStatisticsBonusVo
data
,
AnalysisContext
context
)
{
ReadRowHolder
readRowHolder
=
context
.
readRowHolder
();
Integer
rowIndex
=
readRowHolder
.
getRowIndex
();
data
.
setRowIndex
(
rowIndex
+
1
);
ErrorMessage
errorMessage
=
util1
.
checkEntity
(
data
,
data
.
getRowIndex
());
if
(
Common
.
isNotNull
(
errorMessage
)){
errorMessageList
.
add
(
errorMessage
);
}
else
{
cachedDataList
.
add
(
data
);
}
if
(
cachedDataList
.
size
()
>=
BATCH_COUNT
)
{
saveData
();
// 存储完成清理 list
cachedDataList
=
ListUtils
.
newArrayListWithExpectedSize
(
BATCH_COUNT
);
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
saveData
();
}
/**
* 加上存储数据库
*/
private
void
saveData
()
{
log
.
info
(
"{}条数据,开始存储数据库!"
,
cachedDataList
.
size
());
importTStatisticsBonus
(
cachedDataList
,
errorMessageList
);
log
.
info
(
"存储数据库成功!"
);
}
}).
sheet
().
doRead
();
}
catch
(
Exception
e
){
log
.
error
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
,
e
);
return
R
.
failed
(
CommonConstants
.
IMPORT_DATA_ANALYSIS_ERROR
);
}
return
R
.
ok
(
errorMessageList
);
}
private
void
importTStatisticsBonus
(
List
<
TStatisticsBonusVo
>
excelVOList
,
List
<
ErrorMessage
>
errorMessageList
)
{
// 个性化校验逻辑
ErrorMessage
errorMsg
;
// 执行数据插入操作 组装
for
(
int
i
=
0
;
i
<
excelVOList
.
size
();
i
++)
{
TStatisticsBonusVo
excel
=
excelVOList
.
get
(
i
);
// 插入
insertExcel
(
excel
);
errorMessageList
.
add
(
new
ErrorMessage
(
excel
.
getRowIndex
(),
CommonConstants
.
SAVE_SUCCESS
));
}
}
/**
* 插入excel bad record
*/
private
void
insertExcel
(
TStatisticsBonusVo
excel
)
{
TStatisticsBonus
insert
=
new
TStatisticsBonus
();
BeanUtil
.
copyProperties
(
excel
,
insert
);
this
.
save
(
insert
);
}
}
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/util/SalaryAccountUtil.java
View file @
8765e70f
...
...
@@ -140,6 +140,7 @@ public class SalaryAccountUtil implements Serializable {
salaryStyle
=
SalaryConstants
.
SALARY_STYLE_BANK
;
relaySalary
=
null
;
actualSalarySum
=
null
;
entity
.
setAnnualBonusType
(
SalaryConstants
.
ANNUAL_BONUS_TAX_TYPE_VALUE
[
0
]);
for
(
Map
.
Entry
<
String
,
TSalaryConfigStandard
>
entry
:
salaryConfigMap
.
entrySet
())
{
cellValueObj
=
getFieldValueByName
(
entry
.
getKey
(),
temp
);
scs
=
entry
.
getValue
();
...
...
@@ -154,6 +155,9 @@ public class SalaryAccountUtil implements Serializable {
if
(
isMustMap
.
get
(
dbFiedName
)
!=
null
&&
Boolean
.
TRUE
.
equals
(
isMustMap
.
get
(
dbFiedName
)))
{
isMustMap
.
put
(
dbFiedName
,
false
);
}
if
(
SalaryConstants
.
ANNUAL_BONUS_TAX_TYPE
.
equals
(
scs
.
getJavaFiedName
())
&&
SalaryConstants
.
ANNUAL_BONUS_ALONE
.
equals
(
cellValueStr
))
{
entity
.
setAnnualBonusType
(
SalaryConstants
.
ANNUAL_BONUS_TAX_TYPE_VALUE
[
1
]);
}
if
(
SalaryConstants
.
RELAY_SALARY_JAVA
.
equals
(
scs
.
getJavaFiedName
()))
{
try
{
relaySalary
=
new
BigDecimal
(
cellValueStr
);
...
...
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/util/SalaryCommonUtil.java
View file @
8765e70f
...
...
@@ -479,12 +479,10 @@ public class SalaryCommonUtil implements Serializable {
public
static
void
setConfigSalary
(
TConfigSalary
configSalary
,
TSalaryAccountVo
entity
)
{
if
(
configSalary
!=
null
&&
configSalary
.
getId
()
!=
null
)
{
entity
.
setSalaryMonth
(
DateUtil
.
addMonth
(
configSalary
.
getSalaryMonth
()));
entity
.
setSettlementMonth
(
DateUtil
.
addMonth
(
configSalary
.
getSettleMonth
()));
entity
.
setDeduSocialMonth
(
DateUtil
.
addMonth
(
configSalary
.
getSocialMonth
()));
entity
.
setDeduProvidentMonth
(
DateUtil
.
addMonth
(
configSalary
.
getFundMonth
()));
entity
.
setSocialPriority
(
String
.
valueOf
(
configSalary
.
getSocialPriority
()));
entity
.
setFundPriority
(
String
.
valueOf
(
configSalary
.
getFundPriority
()));
entity
.
setAnnualBonusType
(
String
.
valueOf
(
configSalary
.
getAnnualBonusType
()));
}
}
...
...
yifu-salary/yifu-salary-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/salary/util/SalaryConstants.java
View file @
8765e70f
...
...
@@ -172,6 +172,13 @@ public class SalaryConstants {
public
static
final
String
CURRENT_SUPPLY_JAVA
=
"currentSupply"
;
//年终奖
public
static
final
String
ANNUAL_BONUS_JAVA
=
"annualBonus"
;
// 年终奖扣税方式:0合并/1单独
public
static
final
String
ANNUAL_BONUS_TAX_TYPE
=
"annualBonusTaxType"
;
// 年终奖扣税方式:单独
public
static
final
String
ANNUAL_BONUS_ALONE
=
"单独"
;
// 年终奖扣税方式的值:0合并/1单独
public
static
final
String
[]
ANNUAL_BONUS_TAX_TYPE_VALUE
=
{
"0"
,
"1"
};
public
static
final
String
PRE_CURRENT_SUPPLY
=
"前次个人待补足"
;
//前次个人待补足
public
static
final
String
PRE_CURRENT_SUPPLY_JAVA
=
"preCurrentSupply"
;
...
...
yifu-salary/yifu-salary-biz/src/main/resources/mapper/TConfigSalaryMapper.xml
View file @
8765e70f
...
...
@@ -11,13 +11,11 @@
<result
property=
"departNo"
column=
"DEPART_NO"
/>
<result
property=
"departName"
column=
"DEPART_NAME"
/>
<result
property=
"salaryMonth"
column=
"SALARY_MONTH"
/>
<result
property=
"settleMonth"
column=
"SETTLE_MONTH"
/>
<result
property=
"socialMonth"
column=
"SOCIAL_MONTH"
/>
<result
property=
"fundMonth"
column=
"FUND_MONTH"
/>
<result
property=
"socialPriority"
column=
"SOCIAL_PRIORITY"
/>
<result
property=
"fundPriority"
column=
"FUND_PRIORITY"
/>
<result
property=
"grantType"
column=
"GRANT_TYPE"
/>
<result
property=
"annualBonusType"
column=
"ANNUAL_BONUS_TYPE"
/>
</resultMap>
<!--tConfigSalary简单分页查询-->
...
...
@@ -29,13 +27,11 @@
DEPART_NO,
DEPART_NAME,
SALARY_MONTH,
SETTLE_MONTH,
SOCIAL_MONTH,
FUND_MONTH,
SOCIAL_PRIORITY,
FUND_PRIORITY,
GRANT_TYPE,
ANNUAL_BONUS_TYPE
GRANT_TYPE
FROM t_config_salary
<where>
1=1
...
...
@@ -57,9 +53,6 @@
<if
test=
"tConfigSalary.salaryMonth != null "
>
AND SALARY_MONTH = #{tConfigSalary.salaryMonth}
</if>
<if
test=
"tConfigSalary.settleMonth != null "
>
AND SETTLE_MONTH = #{tConfigSalary.settleMonth}
</if>
<if
test=
"tConfigSalary.socialMonth != null "
>
AND SOCIAL_MONTH = #{tConfigSalary.socialMonth}
</if>
...
...
@@ -75,9 +68,6 @@
<if
test=
"tConfigSalary.grantType != null "
>
AND GRANT_TYPE = #{tConfigSalary.grantType}
</if>
<if
test=
"tConfigSalary.annualBonusType != null "
>
AND ANNUAL_BONUS_TYPE = #{tConfigSalary.annualBonusType}
</if>
<!--数据权限判断-->
<if
test=
"depatIds != null and depatIds.size() > 0"
>
and DEPART_ID in
...
...
yifu-salary/yifu-salary-biz/src/main/resources/mapper/TStatistics
Annual
BonusMapper.xml
→
yifu-salary/yifu-salary-biz/src/main/resources/mapper/TStatisticsBonusMapper.xml
View file @
8765e70f
...
...
@@ -21,94 +21,84 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.salary.mapper.TStatistics
Annual
BonusMapper"
>
<mapper
namespace=
"com.yifu.cloud.plus.v1.yifu.salary.mapper.TStatisticsBonusMapper"
>
<resultMap
id=
"tStatisticsAnnualBonusMap"
type=
"com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsAnnualBonus"
>
<id
property=
"id"
column=
"id"
/>
<result
property=
"invoiceTitle"
column=
"INVOICE_TITLE"
/>
<result
property=
"settleDepartId"
column=
"SETTLE_DEPART_ID"
/>
<result
property=
"settleDepartNo"
column=
"SETTLE_DEPART_NO"
/>
<result
property=
"settleDepartName"
column=
"SETTLE_DEPART_NAME"
/>
<result
property=
"declareMonth"
column=
"declare_MONTH"
/>
<result
property=
"empId"
column=
"EMP_ID"
/>
<resultMap
id=
"tStatisticsBonusMap"
type=
"com.yifu.cloud.plus.v1.yifu.salary.entity.TStatisticsBonus"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"declareUnit"
column=
"DECLARE_UNIT"
/>
<result
property=
"declareMonth"
column=
"DECLARE_MONTH"
/>
<result
property=
"empName"
column=
"EMP_NAME"
/>
<result
property=
"empIdcard"
column=
"EMP_IDCARD"
/>
<result
property=
"annualBonus"
column=
"annual_bonus"
/>
<result
property=
"tax"
column=
"tax"
/>
<result
property=
"annualBonus"
column=
"ANNUAL_BONUS"
/>
<result
property=
"bonusTax"
column=
"BONUS_TAX"
/>
<result
property=
"deptId"
column=
"DEPT_ID"
/>
<result
property=
"deptNo"
column=
"DEPT_NO"
/>
<result
property=
"deptName"
column=
"DEPT_NAME"
/>
<result
property=
"unitId"
column=
"UNIT_ID"
/>
<result
property=
"unitNo"
column=
"UNIT_NO"
/>
<result
property=
"unitName"
column=
"UNIT_NAME"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
a.id,
a.INVOICE_TITLE,
a.SETTLE_DEPART_ID,
a.SETTLE_DEPART_NO,
a.SETTLE_DEPART_NAME,
a.declare_MONTH,
a.EMP_ID,
a.ID,
a.DECLARE_UNIT,
a.DECLARE_MONTH,
a.EMP_NAME,
a.EMP_IDCARD,
a.annual_bonus,
a.tax,
a.ANNUAL_BONUS,
a.BONUS_TAX,
a.DEPT_ID,
a.DEPT_NO,
a.DEPT_NAME,
a.UNIT_ID,
a.UNIT_NO,
a.UNIT_NAME
a.UNIT_NO
</sql>
<sql
id=
"tStatistics
Annual
Bonus_where"
>
<if
test=
"tStatistics
Annual
Bonus != null"
>
<if
test=
"tStatistics
AnnualBonus.id != null and tStatisticsAnnual
Bonus.id.trim() != ''"
>
AND a.
id = #{tStatisticsAnnual
Bonus.id}
<sql
id=
"tStatisticsBonus_where"
>
<if
test=
"tStatisticsBonus != null"
>
<if
test=
"tStatistics
Bonus.id != null and tStatistics
Bonus.id.trim() != ''"
>
AND a.
ID = #{tStatistics
Bonus.id}
</if>
<if
test=
"tStatistics
AnnualBonus.invoiceTitle != null and tStatisticsAnnualBonus.invoiceTitle
.trim() != ''"
>
AND a.
INVOICE_TITLE = #{tStatisticsAnnualBonus.invoiceTitle
}
<if
test=
"tStatistics
Bonus.declareUnit != null and tStatisticsBonus.declareUnit
.trim() != ''"
>
AND a.
DECLARE_UNIT = #{tStatisticsBonus.declareUnit
}
</if>
<if
test=
"tStatistics
AnnualBonus.settleDepartId != null and tStatisticsAnnualBonus.settleDepartId
.trim() != ''"
>
AND a.
SETTLE_DEPART_ID = #{tStatisticsAnnualBonus.settleDepartId
}
<if
test=
"tStatistics
Bonus.declareMonth != null and tStatisticsBonus.declareMonth
.trim() != ''"
>
AND a.
DECLARE_MONTH = #{tStatisticsBonus.declareMonth
}
</if>
<if
test=
"tStatistics
AnnualBonus.settleDepartNo != null and tStatisticsAnnualBonus.settleDepartNo
.trim() != ''"
>
AND a.
SETTLE_DEPART_NO = #{tStatisticsAnnualBonus.settleDepartNo
}
<if
test=
"tStatistics
Bonus.empName != null and tStatisticsBonus.empName
.trim() != ''"
>
AND a.
EMP_NAME = #{tStatisticsBonus.empName
}
</if>
<if
test=
"tStatistics
AnnualBonus.settleDepartName != null and tStatisticsAnnualBonus.settleDepartName
.trim() != ''"
>
AND a.
SETTLE_DEPART_NAME = #{tStatisticsAnnualBonus.settleDepartName
}
<if
test=
"tStatistics
Bonus.empIdcard != null and tStatisticsBonus.empIdcard
.trim() != ''"
>
AND a.
EMP_IDCARD = #{tStatisticsBonus.empIdcard
}
</if>
<if
test=
"tStatistics
AnnualBonus.declareMonth != null and tStatisticsAnnualBonus.declareMonth.trim() != ''
"
>
AND a.
declare_MONTH = #{tStatisticsAnnualBonus.declareMonth
}
<if
test=
"tStatistics
Bonus.annualBonus != null
"
>
AND a.
ANNUAL_BONUS = #{tStatisticsBonus.annualBonus
}
</if>
<if
test=
"tStatistics
AnnualBonus.empId != null and tStatisticsAnnualBonus.empId.trim() != ''
"
>
AND a.
EMP_ID = #{tStatisticsAnnualBonus.empId
}
<if
test=
"tStatistics
Bonus.bonusTax != null
"
>
AND a.
BONUS_TAX = #{tStatisticsBonus.bonusTax
}
</if>
<if
test=
"tStatistics
AnnualBonus.empName != null and tStatisticsAnnualBonus.empName
.trim() != ''"
>
AND a.
EMP_NAME = #{tStatisticsAnnualBonus.empName
}
<if
test=
"tStatistics
Bonus.deptId != null and tStatisticsBonus.deptId
.trim() != ''"
>
AND a.
DEPT_ID = #{tStatisticsBonus.deptId
}
</if>
<if
test=
"tStatistics
AnnualBonus.empIdcard != null and tStatisticsAnnualBonus.empIdcard
.trim() != ''"
>
AND a.
EMP_IDCARD = #{tStatisticsAnnualBonus.empIdcard
}
<if
test=
"tStatistics
Bonus.deptNo != null and tStatisticsBonus.deptNo
.trim() != ''"
>
AND a.
DEPT_NO = #{tStatisticsBonus.deptNo
}
</if>
<if
test=
"tStatistics
AnnualBonus.annualBonus != null
"
>
AND a.
annual_bonus = #{tStatisticsAnnualBonus.annualBonus
}
<if
test=
"tStatistics
Bonus.deptName != null and tStatisticsBonus.deptName.trim() != ''
"
>
AND a.
DEPT_NAME = #{tStatisticsBonus.deptName
}
</if>
<if
test=
"tStatistics
AnnualBonus.tax != null
"
>
AND a.
tax = #{tStatisticsAnnualBonus.tax
}
<if
test=
"tStatistics
Bonus.unitId != null and tStatisticsBonus.unitId.trim() != ''
"
>
AND a.
UNIT_ID = #{tStatisticsBonus.unitId
}
</if>
<if
test=
"tStatisticsAnnualBonus.unitId != null and tStatisticsAnnualBonus.unitId.trim() != ''"
>
AND a.UNIT_ID = #{tStatisticsAnnualBonus.unitId}
</if>
<if
test=
"tStatisticsAnnualBonus.unitNo != null and tStatisticsAnnualBonus.unitNo.trim() != ''"
>
AND a.UNIT_NO = #{tStatisticsAnnualBonus.unitNo}
</if>
<if
test=
"tStatisticsAnnualBonus.unitName != null and tStatisticsAnnualBonus.unitName.trim() != ''"
>
AND a.UNIT_NAME = #{tStatisticsAnnualBonus.unitName}
<if
test=
"tStatisticsBonus.unitNo != null and tStatisticsBonus.unitNo.trim() != ''"
>
AND a.UNIT_NO = #{tStatisticsBonus.unitNo}
</if>
</if>
</sql>
<!--tStatistics
Annual
Bonus简单分页查询-->
<select
id=
"getTStatistics
AnnualBonusPage"
resultMap=
"tStatisticsAnnual
BonusMap"
>
<!--tStatisticsBonus简单分页查询-->
<select
id=
"getTStatistics
BonusPage"
resultMap=
"tStatistics
BonusMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_statistics_
annual_
bonus a
FROM t_statistics_bonus a
<where>
1=1
<include
refid=
"tStatistics
Annual
Bonus_where"
/>
<include
refid=
"tStatisticsBonus_where"
/>
</where>
</select>
</mapper>
yifu-social/yifu-social-api/src/main/java/com/yifu/cloud/plus/v1/yifu/social/vo/TPaymentHeFeiVo.java
View file @
8765e70f
...
...
@@ -22,7 +22,7 @@ public class TPaymentHeFeiVo extends RowIndex implements Serializable {
* 员工姓名
*/
@Length
(
max
=
20
,
message
=
"员工姓名不能超过20个字符"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
20
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
20
,
isNotEmpty
=
true
)
@Schema
(
description
=
"员工姓名"
)
@ExcelProperty
(
"员工姓名"
)
private
String
empName
;
...
...
yifu-social/yifu-social-api/src/main/java/com/yifu/cloud/plus/v1/yifu/social/vo/TPaymentInfoVo.java
View file @
8765e70f
...
...
@@ -51,7 +51,7 @@ public class TPaymentInfoVo extends RowIndex implements Serializable {
* 员工姓名
*/
@Length
(
max
=
20
,
message
=
"员工姓名 不能超过20 个字符"
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
20
)
@ExcelAttribute
(
name
=
"员工姓名"
,
maxLength
=
20
,
isNotEmpty
=
true
)
@Schema
(
description
=
"员工姓名"
)
@ExcelProperty
(
"员工姓名"
)
private
String
empName
;
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/controller/TPreDispatchInfoController.java
View file @
8765e70f
...
...
@@ -44,10 +44,8 @@ import org.springframework.web.bind.annotation.*;
import
javax.servlet.http.HttpServletResponse
;
import
java.net.URLDecoder
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -226,8 +224,10 @@ public class TPreDispatchInfoController {
@SysLog
(
"预派单批量新增派增"
)
@PostMapping
(
"/analysisJsonStringImportAdd"
)
@PreAuthorize
(
"@pms.hasPermission('social_tpredispatchinfo_importAddList')"
)
public
R
analysisJsonStringImportAdd
(
@RequestBody
String
jsonString
,
@RequestParam
(
value
=
"socialHouse"
,
required
=
false
)
String
socialHouse
,
@RequestParam
(
value
=
"fundHouse"
,
required
=
false
)
String
fundHouse
,
@RequestParam
String
departId
)
{
public
R
analysisJsonStringImportAdd
(
@RequestBody
String
jsonString
,
@RequestParam
(
value
=
"socialHouse"
,
required
=
false
)
String
socialHouse
,
@RequestParam
(
value
=
"fundHouse"
,
required
=
false
)
String
fundHouse
,
@RequestParam
String
departId
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
if
(
null
==
user
||
null
==
user
.
getId
())
{
return
R
.
failed
(
CommonConstants
.
USER_FAIL
);
...
...
@@ -241,15 +241,19 @@ public class TPreDispatchInfoController {
//用于返回错误信息
List
<
ErrorMessage
>
errorInfo
=
new
ArrayList
<>();
if
(
null
!=
util1
.
getErrorInfo
()
&&
!
util1
.
getErrorInfo
().
isEmpty
())
{
return
R
.
failed
(
util1
.
getErrorInfo
(),
PreDispatchConstants
.
DATA_CHECK
);
}
else
{
for
(
ErrorMessage
errorMessage:
util1
.
getErrorInfo
())
{
errorInfo
.
add
(
errorMessage
);
}
}
if
(
null
!=
listInfo
&&
!
listInfo
.
isEmpty
())
{
errorInfo
=
tPreDispatchInfoService
.
batchSavePreDisPatchAdd
(
listInfo
,
user
,
socialHouse
,
fundHouse
,
departId
);
errorInfo
=
tPreDispatchInfoService
.
batchSavePreDisPatchAdd
(
listInfo
,
user
,
socialHouse
,
fundHouse
,
departId
,
errorInfo
);
}
else
{
errorInfo
.
add
(
new
ErrorMessage
(
null
,
CommonConstants
.
DATA_CAN_NOT_EMPTY
));
}
return
R
.
ok
(
errorInfo
);
}
List
<
ErrorMessage
>
newErrorList
=
errorInfo
.
stream
().
sorted
(
Comparator
.
comparing
(
ErrorMessage:
:
getLineNum
))
.
collect
(
Collectors
.
toList
());
return
R
.
ok
(
newErrorList
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
R
.
failed
(
PreDispatchConstants
.
DATA_IMPORT_ANALYSIS_ERROR
);
...
...
@@ -281,15 +285,18 @@ public class TPreDispatchInfoController {
//用于返回错误信息
List
<
ErrorMessage
>
errorInfo
=
new
ArrayList
<>();
if
(
null
!=
util1
.
getErrorInfo
()
&&
!
util1
.
getErrorInfo
().
isEmpty
())
{
return
R
.
failed
(
util1
.
getErrorInfo
());
}
else
{
for
(
ErrorMessage
errorMessage:
util1
.
getErrorInfo
())
{
errorInfo
.
add
(
errorMessage
);
}
}
if
(
null
!=
listInfo
&&
!
listInfo
.
isEmpty
())
{
errorInfo
=
tPreDispatchInfoService
.
batchSavePreDisPatchReduce
(
listInfo
,
user
);
tPreDispatchInfoService
.
batchSavePreDisPatchReduce
(
listInfo
,
user
,
errorInfo
);
}
else
{
errorInfo
.
add
(
new
ErrorMessage
(
null
,
CommonConstants
.
DATA_CAN_NOT_EMPTY
));
}
return
R
.
ok
(
errorInfo
);
}
List
<
ErrorMessage
>
newErrorList
=
errorInfo
.
stream
().
sorted
(
Comparator
.
comparing
(
ErrorMessage:
:
getLineNum
))
.
collect
(
Collectors
.
toList
());
return
R
.
ok
(
newErrorList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"预派单批量导入派减"
,
e
);
return
R
.
failed
(
PreDispatchConstants
.
DATA_IMPORT_ANALYSIS_ERROR
);
...
...
@@ -332,15 +339,18 @@ public class TPreDispatchInfoController {
//用于返回错误信息
List
<
ErrorMessage
>
errorInfo
=
new
ArrayList
<>();
if
(
null
!=
util1
.
getErrorInfo
()
&&
!
util1
.
getErrorInfo
().
isEmpty
())
{
return
R
.
failed
(
util1
.
getErrorInfo
(),
PreDispatchConstants
.
DATA_CHECK
);
}
else
{
for
(
ErrorMessage
errorMessage:
util1
.
getErrorInfo
())
{
errorInfo
.
add
(
errorMessage
);
}
}
if
(
null
!=
listInfo
&&
!
listInfo
.
isEmpty
())
{
errorInfo
=
tPreDispatchInfoService
.
batchUpdatePreDisPatch
(
listInfo
,
user
);
tPreDispatchInfoService
.
batchUpdatePreDisPatch
(
listInfo
,
user
,
errorInfo
);
}
else
{
errorInfo
.
add
(
new
ErrorMessage
(
null
,
CommonConstants
.
DATA_CAN_NOT_EMPTY
));
}
return
R
.
ok
(
errorInfo
);
}
List
<
ErrorMessage
>
newErrorList
=
errorInfo
.
stream
().
sorted
(
Comparator
.
comparing
(
ErrorMessage:
:
getLineNum
))
.
collect
(
Collectors
.
toList
());
return
R
.
ok
(
newErrorList
);
}
catch
(
Exception
e
)
{
log
.
error
(
"预派单批量更新"
,
e
);
return
R
.
failed
(
PreDispatchConstants
.
DATA_IMPORT_ANALYSIS_ERROR
);
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/TForecastLibraryService.java
View file @
8765e70f
...
...
@@ -89,7 +89,7 @@ public interface TForecastLibraryService extends IService<TForecastLibrary> {
R
<
String
>
updateForecastLibaryByDispatchReduce
(
TSocialFundInfo
socialFundInfo
,
int
forecastFlag
);
/**
* @Description: 基数变更,同步社保公积金查询、预估库
* @Description:
户调基-
基数变更,同步社保公积金查询、预估库
* @Author: hgw
* @Date: 2022/7/26 19:09
* @return: void
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/TPreDispatchInfoService.java
View file @
8765e70f
...
...
@@ -109,7 +109,8 @@ public interface TPreDispatchInfoService extends IService<TPreDispatchInfo> {
* @param departId
* @return
**/
List
<
ErrorMessage
>
batchSavePreDisPatchAdd
(
List
<
TPreDispatchInfo
>
listInfo
,
YifuUser
user
,
String
socialHouse
,
String
fundHouse
,
String
departId
);
List
<
ErrorMessage
>
batchSavePreDisPatchAdd
(
List
<
TPreDispatchInfo
>
listInfo
,
YifuUser
user
,
String
socialHouse
,
String
fundHouse
,
String
departId
,
List
<
ErrorMessage
>
errorInfo
);
/**
* 预派单批量新增派减
...
...
@@ -119,7 +120,8 @@ public interface TPreDispatchInfoService extends IService<TPreDispatchInfo> {
* @param user
* @return
**/
List
<
ErrorMessage
>
batchSavePreDisPatchReduce
(
List
<
TPreDispatchReduceVo
>
listInfo
,
YifuUser
user
);
List
<
ErrorMessage
>
batchSavePreDisPatchReduce
(
List
<
TPreDispatchReduceVo
>
listInfo
,
YifuUser
user
,
List
<
ErrorMessage
>
errorInfo
);
/**
* 预派单批量更新
...
...
@@ -129,7 +131,8 @@ public interface TPreDispatchInfoService extends IService<TPreDispatchInfo> {
* @param user
* @return
**/
List
<
ErrorMessage
>
batchUpdatePreDisPatch
(
List
<
TPreDispatchUpdateVo
>
listInfo
,
YifuUser
user
);
List
<
ErrorMessage
>
batchUpdatePreDisPatch
(
List
<
TPreDispatchUpdateVo
>
listInfo
,
YifuUser
user
,
List
<
ErrorMessage
>
messageList
);
/**
* 预派单导出
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/impl/TForecastLibraryServiceImpl.java
View file @
8765e70f
...
...
@@ -536,18 +536,10 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
TAgentConfig
configUnit
=
getAgentConfig
(
agentConfigMap
,
socialInfo
,
library
.
getSocialPayMonth
(),
CommonConstants
.
ZERO_STRING
);
TAgentConfig
configPersonal
=
getAgentConfig
(
agentConfigMap
,
socialInfo
,
library
.
getSocialPayMonth
(),
CommonConstants
.
ONE_STRING
);
// 基数配置
SysBaseSetInfo
sysBaseSetInfo
;
if
(
isOnly
)
{
sysBaseSetInfo
=
socialInfo
.
getSocialSetInfo
();
}
else
{
sysBaseSetInfo
=
this
.
getSysBaseSetInfo
(
CommonConstants
.
ZERO_STRING
,
socialInfo
.
getSocialHousehold
()
,
library
.
getSocialPayMonth
(),
socialInfo
.
getSocialProvince
(),
socialInfo
.
getSocialCity
(),
socialInfo
.
getSocialTown
());
}
// 初始化大病:
this
.
initLibraryBigMoneyBySocial
(
library
,
socialInfo
,
sysBaseSetInfo
);
this
.
initLibraryBigMoneyBySocial
(
library
,
socialInfo
);
initUnitAndPersonalLibrary
(
library
,
socialInfo
,
sysBaseSetInfo
,
historyLibrary
,
isOnly
);
initUnitAndPersonalLibrary
(
library
,
socialInfo
,
historyLibrary
,
isOnly
);
if
(
null
!=
configAll
||
null
!=
configUnit
||
null
!=
configPersonal
)
{
if
(
null
!=
configPersonal
)
{
initPersonalLibByConfig
(
library
,
configPersonal
);
...
...
@@ -681,85 +673,29 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
return
null
;
}
/**
* @param baseType 0.社保 1.公积金
* @param household (社保、公积金)户
* @param payMonth
* @param province
* @param city
* @param town
* @Description: 查找基数配置
* @Author: hgw
* @Date: 2021/1/4 15:58
* @return: com.yifu.cloud.v1.hrms.api.entity.SysBaseSetInfo
**/
private
SysBaseSetInfo
getSysBaseSetInfo
(
String
baseType
,
String
household
,
String
payMonth
,
String
province
,
String
city
,
String
town
)
{
// 基数配置
SysBaseSetInfo
sysBaseSetInfo
=
new
SysBaseSetInfo
();
sysBaseSetInfo
.
setBaseType
(
baseType
);
sysBaseSetInfo
.
setDeleteFlag
(
CommonConstants
.
ZERO_STRING
);
sysBaseSetInfo
.
setStatus
(
CommonConstants
.
ZERO_INT
);
sysBaseSetInfo
.
setDepartId
(
household
);
if
(
Common
.
isNotNull
(
payMonth
)
&&
payMonth
.
length
()
>
5
)
{
// 社保缴纳月
String
payMonthStr
=
payMonth
.
substring
(
0
,
4
).
concat
(
"-"
).
concat
(
payMonth
.
substring
(
4
,
6
)).
concat
(
"-01 00:00:00"
);
sysBaseSetInfo
.
setApplyStartDate
(
DateUtil
.
stringToDateByPatten
(
payMonthStr
,
DateUtil
.
DATETIME_PATTERN_SECOND
));
}
else
{
sysBaseSetInfo
.
setApplyStartDate
(
new
Date
());
}
sysBaseSetInfo
.
setProvince
(
Integer
.
parseInt
(
province
));
if
(
city
!=
null
)
{
sysBaseSetInfo
.
setCity
(
Integer
.
parseInt
(
city
));
}
else
{
sysBaseSetInfo
.
setCity
(-
1
);
}
if
(
town
!=
null
)
{
sysBaseSetInfo
.
setTown
(
Integer
.
parseInt
(
town
));
}
else
{
sysBaseSetInfo
.
setTown
(-
1
);
}
// 查询符合条件的基数列表
List
<
SysBaseSetInfo
>
sysBaseSetInfoList
=
sysBaseSetInfoMapper
.
getSysBaseSetInfoNoPage
(
sysBaseSetInfo
);
if
(
sysBaseSetInfoList
!=
null
&&
!
sysBaseSetInfoList
.
isEmpty
())
{
sysBaseSetInfo
=
sysBaseSetInfoList
.
get
(
0
);
}
else
{
// 如果没找到配置,取最新的一条:
sysBaseSetInfo
.
setApplyStartDate
(
null
);
sysBaseSetInfoList
=
sysBaseSetInfoMapper
.
getSysBaseSetInfoNoPage
(
sysBaseSetInfo
);
if
(
sysBaseSetInfoList
!=
null
&&
!
sysBaseSetInfoList
.
isEmpty
())
{
sysBaseSetInfo
=
sysBaseSetInfoList
.
get
(
0
);
}
}
return
sysBaseSetInfo
;
}
/**
* @param library 预估库
* @param socialInfo 社保
* @param sysBaseSetInfo 基数配置
* @Description: 从社保获取大病
* @Author: hgw
* @Date: 2020/11/25 15:51
* @return: void
**/
private
void
initLibraryBigMoneyBySocial
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
)
{
)
{
if
(
CommonConstants
.
ONE_STRING
.
equals
(
socialInfo
.
getPaymentType
()))
{
// 自定义类型大病随基数配置变化:0不随配置 1随配置 2.单位大病随配置 3个人大病随配置
// 2022-7-20 11:46:32 与房工沟通,派单没这个逻辑,所以都是随配置直接计算
// 直接计算单位大病
this
.
setBigMoneyBySelfForUnit
(
library
,
socialInfo
,
sysBaseSetInfo
);
// 直接计算个人大病
this
.
setBigMoneyBySelfForPerson
(
library
,
socialInfo
,
sysBaseSetInfo
);
library
.
setUnitBitailmentFee
(
socialInfo
.
getUnitBigailmentMoney
());
library
.
setPersonalBigailmentFee
(
socialInfo
.
getPersonalBigailmentMoney
());
// 非自定义,从社保基数配置取信息
}
else
{
// 大病处理: 0 收取 按派单的社保里的基数和比例来
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
s
ysBaseSet
Info
.
getIsIllness
()))
{
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
s
ocial
Info
.
getIsIllness
()))
{
// 大病收取方式 0.按年 判断当前月份是否收取大病 按年收大病起缴月份收取一次,非当年的 大病 按实际收取月份收取大病金额
this
.
setBigMoney
(
library
,
socialInfo
,
s
ysBaseSetInfo
,
s
ocialInfo
.
getPaymentType
());
this
.
setBigMoney
(
library
,
socialInfo
,
socialInfo
.
getPaymentType
());
// 大病处理: 1 不收取
}
else
{
library
.
setUnitBitailmentFee
(
BigDecimal
.
ZERO
);
...
...
@@ -778,13 +714,13 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
* @Date 2020-08-03
**/
private
void
initUnitAndPersonalLibrary
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
initLibrayOfPersonal
(
library
,
socialInfo
,
sysBaseSetInfo
,
historyLibrary
,
isOnly
);
initLibraryOfUnit
(
library
,
socialInfo
,
sysBaseSetInfo
,
historyLibrary
,
isOnly
);
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
initLibrayOfPersonal
(
library
,
socialInfo
,
historyLibrary
,
isOnly
);
initLibraryOfUnit
(
library
,
socialInfo
,
historyLibrary
,
isOnly
);
}
private
void
initLibrayOfPersonal
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
// 个人养老基数
BigDecimal
personalPersionBase
;
// 个人医疗基数
...
...
@@ -808,9 +744,9 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
if
(
socialInfo
!=
null
)
{
if
(
Common
.
isNotNull
(
socialInfo
.
getPaymentType
())
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
socialInfo
.
getPaymentType
()))
{
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
socialInfo
.
getPaymentType
()))
{
baseLimit
=
s
ysBaseSet
Info
.
getLowerLimit
();
baseLimit
=
s
ocial
Info
.
getLowerLimit
();
}
else
{
baseLimit
=
s
ysBaseSet
Info
.
getUpperLimit
();
baseLimit
=
s
ocial
Info
.
getUpperLimit
();
}
personalPersionBase
=
baseLimit
;
personalMedicalBase
=
baseLimit
;
...
...
@@ -872,7 +808,7 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
private
void
initLibraryOfUnit
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
,
TForecastLibrary
historyLibrary
,
boolean
isOnly
)
{
// 单位养老基数
BigDecimal
unitPersionBase
;
// 单位医疗基数
...
...
@@ -912,9 +848,9 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
// 需要从基数配置取数据:
if
(
Common
.
isNotNull
(
socialInfo
.
getPaymentType
())
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
socialInfo
.
getPaymentType
()))
{
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
socialInfo
.
getPaymentType
()))
{
baseLimit
=
s
ysBaseSet
Info
.
getLowerLimit
();
baseLimit
=
s
ocial
Info
.
getLowerLimit
();
}
else
{
baseLimit
=
s
ysBaseSet
Info
.
getUpperLimit
();
baseLimit
=
s
ocial
Info
.
getUpperLimit
();
}
unitPersionBase
=
baseLimit
;
unitMedicalBase
=
baseLimit
;
...
...
@@ -1084,66 +1020,25 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
}
/**
* @param library 预估主表
* @param socialInfo 社保
* @param sysBaseSetInfo 基数配置
* @Description: 直接计算单位大病
* @Author: hgw
* @Date: 2020/12/2 14:31
* @return: void
**/
private
void
setBigMoneyBySelfForUnit
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
)
{
if
(
socialInfo
.
getUnitBigailmentMoney
()
!=
null
)
{
library
.
setUnitBitailmentFee
(
socialInfo
.
getUnitBigailmentMoney
());
}
else
if
(
socialInfo
.
getUnitBigailmentCardinal
()
!=
null
&&
sysBaseSetInfo
.
getPayCompanyPro
()
!=
null
)
{
library
.
setUnitBitailmentFee
(
BigDecimalUtils
.
safeMultiply
(
socialInfo
.
getUnitBigailmentCardinal
(),
sysBaseSetInfo
.
getPayCompanyPro
(),
CommonConstants
.
ONE_OF_PERCENT
));
}
}
/**
* @param library 预估主表
* @param socialInfo 社保
* @param sysBaseSetInfo 基数配置
* @Description: 直接计算个人大病
* @Author: hgw
* @Date: 2020/12/2 14:31
* @return: void
**/
private
void
setBigMoneyBySelfForPerson
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
)
{
if
(
socialInfo
.
getPersonalBigailmentMoney
()
!=
null
)
{
library
.
setPersonalBigailmentFee
(
socialInfo
.
getPersonalBigailmentMoney
());
}
else
if
(
socialInfo
.
getPersonalBigailmentCardinal
()
!=
null
&&
sysBaseSetInfo
.
getPayPersonalPro
()
!=
null
)
{
library
.
setPersonalBigailmentFee
(
BigDecimalUtils
.
safeMultiply
(
socialInfo
.
getPersonalBigailmentCardinal
(),
sysBaseSetInfo
.
getPayPersonalPro
(),
CommonConstants
.
ONE_OF_PERCENT
));
}
}
/**
* @param library 预估库
* @param socialInfo 社保
* @param sysBaseSetInfo 基数配置
* @param paymentType 0最低缴纳、1自定义、2最高缴纳
* @Description: 塞大病金额
* @Author: hgw
* @Date: 2020/11/25 15:51
* @return: void
**/
private
void
setBigMoney
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
SysBaseSetInfo
sysBaseSetInfo
private
void
setBigMoney
(
TForecastLibrary
library
,
TSocialFundInfo
socialInfo
,
String
paymentType
)
{
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
s
ysBaseSet
Info
.
getCollectType
()))
{
if
((
null
!=
s
ysBaseSet
Info
.
getCollectMoth
()
&&
Integer
.
parseInt
(
library
.
getSocialPayMonth
().
substring
(
4
,
6
))
==
s
ysBaseSet
Info
.
getCollectMoth
()
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
s
ocial
Info
.
getCollectType
()))
{
if
((
null
!=
s
ocial
Info
.
getCollectMoth
()
&&
Integer
.
parseInt
(
library
.
getSocialPayMonth
().
substring
(
4
,
6
))
==
s
ocial
Info
.
getCollectMoth
()
&&
Integer
.
parseInt
(
library
.
getSocialPayMonth
().
substring
(
0
,
4
))
!=
socialInfo
.
getBigailmentStart
().
getYear
())
||
library
.
getSocialPayMonth
().
equals
(
DateUtil
.
formatDatePatten
(
socialInfo
.
getBigailmentStart
(),
null
)))
{
// 大病取值方式:0按定值
library
.
setUnitBitailmentFee
(
BigDecimalUtils
.
isNullToZero
(
sysBaseSetInfo
.
getPayCompany
()
));
library
.
setPersonalBigailmentFee
(
BigDecimalUtils
.
isNullToZero
(
sysBaseSetInfo
.
getPayPersonal
()
));
library
.
setUnitBitailmentFee
(
socialInfo
.
getUnitBigailmentMoney
(
));
library
.
setPersonalBigailmentFee
(
socialInfo
.
getPersonalBigailmentMoney
(
));
//第一次收取费用逻辑:新员工入职是否收费处理逻辑:先按第一次不收取费用 (只针对按年收)
if
(
library
.
getSocialPayMonth
().
equals
(
DateUtil
.
formatDatePatten
(
socialInfo
.
getBigailmentStart
(),
null
))
&&
CommonConstants
.
ONE_STRING
.
equals
(
socialInfo
.
getIsChargePersonal
()))
{
...
...
@@ -1152,36 +1047,33 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
}
}
//大病收取方式 : 1.按月
}
else
if
(
CommonConstants
.
ONE_STRING
.
equals
(
s
ysBaseSet
Info
.
getCollectType
()))
{
}
else
if
(
CommonConstants
.
ONE_STRING
.
equals
(
s
ocial
Info
.
getCollectType
()))
{
// 存储基数(最低或最高)
BigDecimal
baseLimit
=
s
ysBaseSet
Info
.
getLowerLimit
();
BigDecimal
baseLimit
=
s
ocial
Info
.
getLowerLimit
();
if
(
CommonConstants
.
TWO_STRING
.
equals
(
paymentType
))
{
baseLimit
=
s
ysBaseSet
Info
.
getUpperLimit
();
baseLimit
=
s
ocial
Info
.
getUpperLimit
();
}
// 大病取值方式:1 按比例 按派单的基数和比例来
if
(
CommonConstants
.
ONE_STRING
.
equals
(
s
ysBaseSet
Info
.
getValueType
()))
{
if
(
CommonConstants
.
ONE_STRING
.
equals
(
s
ocial
Info
.
getValueType
()))
{
library
.
setUnitBigailmentBase
(
baseLimit
);
library
.
setUnitBigailmentPro
(
s
ysBaseSetInfo
.
getPayCompanyPro
());
library
.
setUnitBigailmentPro
(
s
ocialInfo
.
getUnitBigailmentPer
());
library
.
setPersonalBigailmentBase
(
baseLimit
);
library
.
setPersonalBigailmentPro
(
sysBaseSetInfo
.
getPayPersonalPro
());
library
.
setPersonalBigailmentFee
(
BigDecimalUtils
.
safeMultiply
(
baseLimit
,
sysBaseSetInfo
.
getPayPersonalPro
(),
CommonConstants
.
ONE_OF_PERCENT
));
library
.
setUnitBitailmentFee
(
BigDecimalUtils
.
safeMultiply
(
baseLimit
,
sysBaseSetInfo
.
getPayCompanyPro
(),
CommonConstants
.
ONE_OF_PERCENT
));
library
.
setPersonalBigailmentPro
(
socialInfo
.
getPersonalBigailmentPer
());
library
.
setPersonalBigailmentFee
(
socialInfo
.
getPersonalBigailmentMoney
());
library
.
setUnitBitailmentFee
(
socialInfo
.
getUnitBigailmentMoney
());
}
else
{
// 大病取值方式:0按定值
library
.
setUnitBitailmentFee
(
BigDecimalUtils
.
isNullToZero
(
sysBaseSetInfo
.
getPayCompany
()
));
library
.
setPersonalBigailmentFee
(
BigDecimalUtils
.
isNullToZero
(
sysBaseSetInfo
.
getPayPersonal
()
));
library
.
setUnitBitailmentFee
(
socialInfo
.
getUnitBigailmentMoney
(
));
library
.
setPersonalBigailmentFee
(
socialInfo
.
getPersonalBigailmentMoney
(
));
}
}
}
private
void
changeFundInfoByBase
(
TSocialFundInfo
socialFund
,
SysBaseSetInfo
socialSet
)
{
if
(
Common
.
isNotNull
(
socialSet
)
&&
socialFund
.
getUnitFundSum
()
!=
null
)
{
socialFund
.
setLowerLimitFund
(
socialSet
.
getLowerLimit
());
socialFund
.
setUpperLimitFund
(
socialSet
.
getUpperLimit
());
socialFund
.
setFundPayPoint
(
String
.
valueOf
(
socialSet
.
getFundPayPoint
()));
if
(
socialFund
.
getUnitProvidengCardinal
().
compareTo
(
socialSet
.
getLowerLimit
())
<
CommonConstants
.
ZERO_INT
)
{
socialFund
.
setUnitProvidengCardinal
(
socialSet
.
getLowerLimit
());
socialFund
.
setPersonalProvidentCardinal
(
socialSet
.
getLowerLimit
());
...
...
@@ -1215,6 +1107,8 @@ public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMap
social
.
setIsIllness
(
socialSet
.
getIsIllness
());
social
.
setOverpayNumber
(
socialSet
.
getOverpayNumber
());
social
.
setValueType
(
socialSet
.
getValueType
());
social
.
setLowerLimit
(
socialSet
.
getLowerLimit
());
social
.
setUpperLimit
(
socialSet
.
getUpperLimit
());
// 比例初始化
// 按最低
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
social
.
getPaymentType
()))
{
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/impl/TPaymentInfoServiceImpl.java
View file @
8765e70f
...
...
@@ -35,9 +35,11 @@ import com.yifu.cloud.plus.v1.yifu.salary.vo.TPaymentVo;
import
com.yifu.cloud.plus.v1.yifu.social.concurrent.threadpool.YFSocialImportThreadPoolExecutor
;
import
com.yifu.cloud.plus.v1.yifu.social.constants.PaymentConstants
;
import
com.yifu.cloud.plus.v1.yifu.social.constants.SocialConstants
;
import
com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo
;
import
com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo
;
import
com.yifu.cloud.plus.v1.yifu.social.entity.TProvidentFund
;
import
com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo
;
import
com.yifu.cloud.plus.v1.yifu.social.mapper.SysHouseHoldInfoMapper
;
import
com.yifu.cloud.plus.v1.yifu.social.mapper.TPaymentInfoMapper
;
import
com.yifu.cloud.plus.v1.yifu.social.mapper.TProvidentFundMapper
;
import
com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialInfoMapper
;
...
...
@@ -56,7 +58,6 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.InputStream
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
import
java.text.NumberFormat
;
import
java.util.*
;
...
...
@@ -113,6 +114,9 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
@Autowired
private
ArchivesDaprUtil
archivesDaprUtil
;
@Autowired
private
SysHouseHoldInfoMapper
sysHouseHoldInfoMapper
;
/**
* 缴费库简单分页查询
*
...
...
@@ -217,9 +221,9 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
for
(
String
id
:
idList
)
{
paymentInfo
=
baseMapper
.
selectById
(
id
);
if
(
null
!=
paymentInfo
&&
Common
.
isNotNull
(
paymentInfo
.
getId
()))
{
if
((!
user
.
getId
().
equals
(
paymentInfo
.
getCreateBy
())
||
CommonConstants
.
ZERO_STRING
.
equals
(
paymentInfo
.
getPushStatus
()))
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
user
.
getId
()))
{
if
((!
user
.
getId
().
equals
(
paymentInfo
.
getCreateBy
())
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
user
.
getId
()))
||
CommonConstants
.
ZERO_STRING
.
equals
(
paymentInfo
.
getPushStatus
()))
{
return
R
.
failed
(
"存在不符合条件的数据(已推送至结算平台或非本人创建),禁止删除!"
);
}
baseMapper
.
deleteById
(
id
);
...
...
@@ -227,7 +231,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
}
return
R
.
ok
();
}
/**
* 通过ID获取缴费库 及社保、公积金明细
*
...
...
@@ -246,31 +249,18 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
String
socialCreateMonth
,
String
socialPayMonth
)
{
YifuUser
user
=
SecurityUtils
.
getUser
();
LambdaQueryWrapper
<
TPaymentInfo
>
wrapper
=
Wrappers
.
lambdaQuery
();
if
(
Common
.
isNotNull
(
empIdCard
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getEmpIdcard
,
empIdCard
);
}
if
(
Common
.
isNotNull
(
socialHouseId
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialHousehold
,
socialHouseId
);
}
if
(
Common
.
isNotNull
(
fundHouseId
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getProvidentHousehold
,
fundHouseId
);
}
if
(
Common
.
isNotNull
(
socialCreateMonth
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialCreateMonth
,
socialCreateMonth
);
}
if
(
Common
.
isNotNull
(
socialPayMonth
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialPayMonth
,
socialPayMonth
);
}
LambdaQueryWrapper
<
TPaymentInfo
>
wrapper
=
buildQueryWrapper
(
empIdCard
,
socialHouseId
,
fundHouseId
,
socialCreateMonth
,
socialPayMonth
);
List
<
TPaymentInfo
>
list
=
baseMapper
.
selectList
(
wrapper
);
List
<
String
>
idList
=
new
ArrayList
<>();
Boolean
delFlag
=
false
;
if
(
Common
.
isNotNull
(
list
))
{
for
(
TPaymentInfo
paymentInfo
:
list
)
{
if
((!
user
.
getId
().
equals
(
paymentInfo
.
getCreateBy
())
||
CommonConstants
.
ZERO_STRING
.
equals
(
paymentInfo
.
getPushStatus
()))
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
user
.
getId
()))
{
return
R
.
failed
(
"存在不符合条件的数据(已推送至结算平台或非本人创建),禁止删除!"
)
;
if
((!
user
.
getId
().
equals
(
paymentInfo
.
getCreateBy
())
&&
!
CommonConstants
.
ONE_STRING
.
equals
(
user
.
getId
()))
||
CommonConstants
.
ZERO_STRING
.
equals
(
paymentInfo
.
getPushStatus
()))
{
delFlag
=
true
;
}
else
{
idList
.
add
(
paymentInfo
.
getId
());
}
...
...
@@ -278,8 +268,42 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
}
else
{
return
R
.
failed
(
CommonConstants
.
NO_DATA_TO_HANDLE
);
}
if
(
Common
.
isNotNull
(
idList
))
{
baseMapper
.
deleteBatchIds
(
idList
);
return
R
.
ok
();
}
if
(
delFlag
)
{
return
R
.
ok
(
null
,
"存在不符合条件的数据(已推送至结算平台或非本人创建),禁止删除!"
);
}
return
R
.
ok
(
null
,
"批量删除成功"
);
}
private
LambdaQueryWrapper
buildQueryWrapper
(
String
empIdCard
,
String
socialHouseId
,
String
fundHouseId
,
String
socialCreateMonth
,
String
socialPayMonth
){
LambdaQueryWrapper
<
TPaymentInfo
>
wrapper
=
Wrappers
.
lambdaQuery
();
if
(
Common
.
isNotNull
(
empIdCard
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getEmpIdcard
,
empIdCard
);
}
if
(
Common
.
isNotNull
(
socialHouseId
))
{
SysHouseHoldInfo
info
=
sysHouseHoldInfoMapper
.
selectById
(
socialHouseId
);
if
(
Common
.
isNotNull
(
info
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialHousehold
,
info
.
getName
());
}
}
if
(
Common
.
isNotNull
(
fundHouseId
))
{
SysHouseHoldInfo
infoFund
=
sysHouseHoldInfoMapper
.
selectById
(
fundHouseId
);
if
(
Common
.
isNotNull
(
infoFund
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getProvidentHousehold
,
infoFund
.
getName
());
}
}
if
(
Common
.
isNotNull
(
socialCreateMonth
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialCreateMonth
,
socialCreateMonth
).
or
()
.
eq
(
TPaymentInfo:
:
getProvidentCreateMonth
,
socialCreateMonth
);
}
if
(
Common
.
isNotNull
(
socialPayMonth
))
{
wrapper
.
eq
(
TPaymentInfo:
:
getSocialPayMonth
,
socialPayMonth
).
or
()
.
eq
(
TPaymentInfo:
:
getProvidentPayMonth
,
socialPayMonth
);;
}
return
wrapper
;
}
@Override
...
...
@@ -296,7 +320,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
/**
* 单次缓存的数据量
*/
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
;
public
static
final
int
BATCH_COUNT
=
CommonConstants
.
BATCH_COUNT
1
;
/**
*临时存储
*/
...
...
@@ -480,17 +504,26 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
// -----------------------------线程池处理list,批量保存社保信息开始--------------------------------
List
<
TPaymentInfoVo
>
tempList
=
new
ArrayList
<>();
String
importSuccessKey
=
user
.
getId
()
+
CommonConstants
.
DOWN_LINE_STRING
+
CommonConstants
.
PAYMENT_SOCIAL_WAIT_EXPORT
;
AtomicInteger
atomicLine
=
new
AtomicInteger
(
CommonConstants
.
ZERO_INT
);
List
<
CompletableFuture
<
List
<
ErrorMessage
>>>
completableFutureList
=
new
ArrayList
<>();
try
{
// 1.list.size()不足partSize,直接执行
if
(
list
.
size
()
<
partSize
)
{
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialList
(
user
,
atomicLine
,
random
,
list
,
areaMap
,
areaMap2
,
executeImportSocialList
(
user
,
atomicLine
,
list
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoBigMap
,
paymentInfoBirMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
CommonConstants
.
ONE_INT
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
listCompletableFuture
);
// 创建一个数值格式化对象
NumberFormat
numberFormat
=
NumberFormat
.
getInstance
();
// 设置精确到小数点后2位
numberFormat
.
setMaximumFractionDigits
(
2
);
String
maerialRatio
=
numberFormat
.
format
((
float
)
atomicLine
.
get
()/(
float
)
list
.
size
()*
100
);
redisUtil
.
set
(
importSuccessKey
,
maerialRatio
,
180L
);
}
// 2.list.size()大于partSize,循环分批执行
...
...
@@ -499,7 +532,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
// 处理第一个0位元素
final
List
<
TPaymentInfoVo
>
finalList
=
list
.
subList
(
0
,
1
);
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialList
(
user
,
atomicLine
,
random
,
finalList
,
areaMap
,
areaMap2
,
executeImportSocialList
(
user
,
atomicLine
,
finalList
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoBigMap
,
paymentInfoBirMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
CommonConstants
.
ONE_INT
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
...
...
@@ -514,13 +547,19 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
List
<
TPaymentInfoVo
>
finalTempList
=
tempList
;
final
int
idx
=
i
-
partSize
+
2
;
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialList
(
user
,
atomicLine
,
random
,
finalTempList
,
areaMap
,
areaMap2
,
executeImportSocialList
(
user
,
atomicLine
,
finalTempList
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoBigMap
,
paymentInfoBirMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
idx
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
tempList
=
new
ArrayList
<>();
}
}
// 创建一个数值格式化对象
NumberFormat
numberFormat
=
NumberFormat
.
getInstance
();
// 设置精确到小数点后2位
numberFormat
.
setMaximumFractionDigits
(
2
);
String
maerialRatio
=
numberFormat
.
format
((
float
)
atomicLine
.
get
()/(
float
)
list
.
size
()*
100
);
redisUtil
.
set
(
importSuccessKey
,
maerialRatio
,
180L
);
}
// 3.第2种方式执行完后,有余数的情况下,执行3
...
...
@@ -540,11 +579,17 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
List
<
TPaymentInfoVo
>
finalTempList
=
tempList
;
int
finalLastIdx
=
lastIdx
+
1
;
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialList
(
user
,
atomicLine
,
random
,
finalTempList
,
areaMap
,
areaMap2
,
executeImportSocialList
(
user
,
atomicLine
,
finalTempList
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoBigMap
,
paymentInfoBirMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
finalLastIdx
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
listCompletableFuture
);
// 创建一个数值格式化对象
NumberFormat
numberFormat
=
NumberFormat
.
getInstance
();
// 设置精确到小数点后2位
numberFormat
.
setMaximumFractionDigits
(
2
);
String
maerialRatio
=
numberFormat
.
format
((
float
)
atomicLine
.
get
()/(
float
)
list
.
size
()*
100
);
redisUtil
.
set
(
importSuccessKey
,
maerialRatio
,
180L
);
}
// 阻塞当前线程,等待所有的线程执行完毕
...
...
@@ -558,15 +603,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
}
}
while
(
computeFlag
);
String
importSuccessKey
=
user
.
getId
()
+
CommonConstants
.
DOWN_LINE_STRING
+
CommonConstants
.
PAYMENT_SOCIAL_WAIT_EXPORT
;
// 创建一个数值格式化对象
NumberFormat
numberFormat
=
NumberFormat
.
getInstance
();
// 设置精确到小数点后2位
numberFormat
.
setMaximumFractionDigits
(
2
);
String
maerialRatio
=
numberFormat
.
format
((
float
)
atomicLine
.
get
()/(
float
)
list
.
size
()*
100
);
redisUtil
.
set
(
importSuccessKey
,
maerialRatio
,
1800L
);
}
catch
(
Exception
e
)
{
log
.
error
(
"社保缴费库数据批量导入异常:"
+
e
);
redisUtil
.
remove
(
key
);
...
...
@@ -631,7 +667,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
*/
private
List
<
ErrorMessage
>
executeImportSocialList
(
YifuUser
user
,
AtomicInteger
atomicLine
,
String
random
,
List
<
TPaymentInfoVo
>
list
,
HashMap
<
String
,
String
>
areaMap
,
HashMap
<
String
,
String
>
areaMap2
,
...
...
@@ -961,8 +996,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
paymentInfo
.
setSocialHousehold
(
socialInfo
.
getSocialHouseholdName
());
paymentInfo
.
setSocialPayMonth
(
infoVo
.
getSocialPayMonth
());
// 同时设置公积金缴纳日期方便导入处理
paymentInfo
.
setProvidentPayMonth
(
infoVo
.
getSocialPayMonth
());
if
(
null
!=
paymentInfo
.
getSocialProvince
())
{
temp
=
areaMap
.
get
(
paymentInfo
.
getSocialProvince
());
...
...
@@ -1480,8 +1513,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
paymentInfo
.
setTelecomNumber
(
fund
.
getTelecomNumber
());
}
paymentInfo
.
setProvidentPayMonth
(
infoVo
.
getProvidentPayMonth
());
//同时设置社保缴纳日期方便导入处理
paymentInfo
.
setSocialPayMonth
(
infoVo
.
getProvidentPayMonth
());
paymentInfo
.
setFundProvince
(
fund
.
getFundProvince
());
paymentInfo
.
setFundCity
(
fund
.
getFundCity
());
paymentInfo
.
setFundTown
(
fund
.
getFundTown
());
...
...
@@ -1656,6 +1687,19 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
+
PaymentConstants
.
MEDICAL
,
info
);
}
if
(
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
info
.
getPersonalBigmailmentMoney
()),
BigDecimalUtils
.
isNullToZero
(
info
.
getUnitBigmailmentMoney
())).
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
paymentInfoBigMap
.
put
(
info
.
getSocialPayAddr
()
+
CommonConstants
.
DOWN_LINE_STRING
+
info
.
getEmpIdcard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
info
.
getSocialPayMonth
()
+
CommonConstants
.
DOWN_LINE_STRING
+
info
.
getSocialCreateMonth
()
+
CommonConstants
.
DOWN_LINE_STRING
+
SocialConstants
.
DB
,
info
);
}
}
}
// -----------------------------生成paymentInfoMap本段结束--------------------------------
...
...
@@ -1675,7 +1719,8 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialListThree
(
user
,
atomicLine
,
random
,
list
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
CommonConstants
.
ONE_INT
,
type
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
paymentInfoBigMap
,
CommonConstants
.
ONE_INT
,
type
,
errorMessageList
),
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
listCompletableFuture
);
}
...
...
@@ -1687,8 +1732,8 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
CompletableFuture
<
List
<
ErrorMessage
>>
oneCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialListThree
(
user
,
atomicLine
,
random
,
finalList
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
CommonConstants
.
ONE_INT
,
type
,
errorMessageList
)
,
yfSocialImportThreadPoolExecutor
);
paymentInfoInjuryMap
,
paymentInfoBigMap
,
CommonConstants
.
ONE_INT
,
type
,
errorMessageList
)
,
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
oneCompletableFuture
);
lastIdx
=
1
;
for
(
int
i
=
1
;
i
<
list
.
size
();
i
++)
{
...
...
@@ -1701,8 +1746,8 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialListThree
(
user
,
atomicLine
,
random
,
finalTempList1
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
idx
,
type
,
errorMessageList
)
,
yfSocialImportThreadPoolExecutor
);
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
paymentInfoBigMap
,
idx
,
type
,
errorMessageList
)
,
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
listCompletableFuture
);
tempList
=
new
ArrayList
<>();
}
...
...
@@ -1728,7 +1773,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
CompletableFuture
<
List
<
ErrorMessage
>>
listCompletableFuture
=
CompletableFuture
.
supplyAsync
(()
->
executeImportSocialListThree
(
user
,
atomicLine
,
random
,
finalTempList
,
areaMap
,
areaMap2
,
paymentInfoPensionMap
,
paymentInfoMedicalMap
,
paymentInfoUnEmpMap
,
paymentInfoInjuryMap
,
finalLastIdx
,
type
,
errorMessageList
)
paymentInfoInjuryMap
,
paymentInfoBigMap
,
finalLastIdx
,
type
,
errorMessageList
)
,
yfSocialImportThreadPoolExecutor
);
completableFutureList
.
add
(
listCompletableFuture
);
}
...
...
@@ -1777,6 +1822,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
ConcurrentHashMap
<
String
,
TPaymentInfo
>
paymentInfoMedicalMap
,
ConcurrentHashMap
<
String
,
TPaymentInfo
>
paymentInfoUnEmpMap
,
ConcurrentHashMap
<
String
,
TPaymentInfo
>
paymentInfoInjuryMap
,
ConcurrentHashMap
<
String
,
TPaymentInfo
>
paymentInfoBigMap
,
int
idx
,
String
type
,
List
<
ErrorMessage
>
errorMessageList
)
{
int
i
=
idx
;
if
(
Common
.
isNotNull
(
list
))
{
...
...
@@ -1929,7 +1975,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
//存在社保缴费数据
if
(
null
!=
payExists
&&
BigDecimalUtils
.
safeMultiply
(
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getPersonalMoney
()),
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getUnit
Set
())),
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getUnit
Money
())),
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
payExists
.
getUnitPensionMoney
()),
BigDecimalUtils
.
isNullToZero
(
payExists
.
getPersonalPensionMoney
()))).
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
errorMessageList
.
add
(
new
ErrorMessage
(
infoVo
.
getRowIndex
(),
"已存在对应员工身份证"
+
infoVo
.
getEmpIdcard
()
...
...
@@ -1954,7 +2000,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
//存在社保缴费数据
if
(
null
!=
payExists
&&
BigDecimalUtils
.
safeMultiply
(
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getPersonalMoney
()),
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getUnit
Set
())),
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getUnit
Money
())),
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
payExists
.
getUnitUnemploymentMoney
()),
BigDecimalUtils
.
isNullToZero
(
payExists
.
getPersonalUnemploymentMoney
()))).
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
errorMessageList
.
add
(
new
ErrorMessage
(
infoVo
.
getRowIndex
(),
"已存在对应员工身份证"
+
infoVo
.
getEmpIdcard
()
...
...
@@ -2016,6 +2062,32 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
}
}
//判断是否存在医疗救助金缴费数据
if
(
CommonConstants
.
ONE_STRING
.
equals
(
type
))
{
payExists
=
paymentInfoBigMap
.
get
(
infoVo
.
getSocialPayAddr
()
+
CommonConstants
.
DOWN_LINE_STRING
+
infoVo
.
getEmpIdcard
().
trim
()
+
CommonConstants
.
DOWN_LINE_STRING
+
infoVo
.
getSocialPayMonth
().
trim
()
+
CommonConstants
.
DOWN_LINE_STRING
+
infoVo
.
getSocialCreateMonth
().
trim
()
+
CommonConstants
.
DOWN_LINE_STRING
+
SocialConstants
.
DB
);
//存在社保缴费数据
if
(
null
!=
payExists
&&
BigDecimalUtils
.
safeMultiply
(
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getUnitBigailmentMoney
()),
BigDecimalUtils
.
isNullToZero
(
infoVo
.
getPersonalBigailmentMoney
())),
BigDecimalUtils
.
safeAdd
(
BigDecimalUtils
.
isNullToZero
(
payExists
.
getUnitBigmailmentMoney
()),
BigDecimalUtils
.
isNullToZero
(
payExists
.
getPersonalBigmailmentMoney
()))).
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
errorMessageList
.
add
(
new
ErrorMessage
(
infoVo
.
getRowIndex
(),
"已存在对应员工身份证"
+
infoVo
.
getEmpIdcard
()
+
"的医疗救助金缴费数据,请勿重复导入!"
));
continue
;
}
else
{
payExists
=
null
;
}
}
if
(
null
==
payExists
)
{
payExists
=
new
TPaymentInfo
();
payExists
.
setLockStatus
(
CommonConstants
.
ZERO_STRING
);
...
...
@@ -2036,8 +2108,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
payExists
.
setSocialHousehold
(
socialInfo
.
getSocialHouseholdName
());
payExists
.
setSocialPayMonth
(
infoVo
.
getSocialPayMonth
());
// 同时设置公积金缴纳日期方便导入处理
payExists
.
setProvidentPayMonth
(
infoVo
.
getSocialPayMonth
());
if
(
null
!=
payExists
.
getSocialProvince
())
{
temp
=
areaMap
.
get
(
payExists
.
getSocialProvince
());
...
...
@@ -2061,9 +2131,7 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
payExists
.
setSocialCreateMonth
(
infoVo
.
getSocialCreateMonth
());
if
(
PaymentConstants
.
PENSION_RISK
.
equals
(
infoVo
.
getRiskType
()))
{
payExists
.
setUnitPensionMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setPersonalPensionMoney
(
infoVo
.
getPersonalMoney
());
payExists
.
setUnitPensionSet
(
infoVo
.
getUnitSet
());
payExists
.
setUnitPensionMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setPersonalPensionMoney
(
infoVo
.
getPersonalMoney
());
payExists
.
setUnitSocialSum
(
BigDecimalUtils
.
safeAdd
(
payExists
.
getUnitPensionMoney
()
,
payExists
.
getUnitSocialSum
()));
...
...
@@ -2071,9 +2139,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
,
payExists
.
getSocialSecurityPersonalSum
()));
}
if
(
PaymentConstants
.
UNEMPLOYEEMENT_RISK
.
equals
(
infoVo
.
getRiskType
()))
{
payExists
.
setUnitUnemploymentMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setPersonalUnemploymentMoney
(
infoVo
.
getPersonalMoney
());
payExists
.
setUnitUnemploymentSet
(
infoVo
.
getUnitSet
());
payExists
.
setUnitUnemploymentMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setPersonalUnemploymentMoney
(
infoVo
.
getPersonalMoney
());
payExists
.
setUnitUnemploymentSet
(
infoVo
.
getUnitSet
());
...
...
@@ -2083,8 +2148,6 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
,
payExists
.
getSocialSecurityPersonalSum
()));
}
if
(
PaymentConstants
.
INJURY_RISK
.
equals
(
infoVo
.
getRiskType
()))
{
payExists
.
setUnitInjuryMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setUnitInjurySet
(
infoVo
.
getUnitSet
());
payExists
.
setUnitInjuryMoney
(
infoVo
.
getUnitMoney
());
payExists
.
setUnitInjurySet
(
infoVo
.
getUnitSet
());
payExists
.
setUnitSocialSum
(
BigDecimalUtils
.
safeAdd
(
payExists
.
getUnitInjuryMoney
()
...
...
@@ -2092,15 +2155,10 @@ public class TPaymentInfoServiceImpl extends ServiceImpl<TPaymentInfoMapper, TPa
}
if
(
CommonConstants
.
ONE_STRING
.
equals
(
type
))
{
payExists
.
setUnitMedicalMoney
(
infoVo
.
getUnitMedicalMoney
());
payExists
.
setUnitMedicalSet
(
infoVo
.
getMedicalSet
());
payExists
.
setPersonalMedicalMoney
(
infoVo
.
getPersonalMedicalMoney
());
payExists
.
setPersonalBigmailmentMoney
(
infoVo
.
getPersonalBigailmentMoney
());
payExists
.
setUnitBigmailmentMoney
(
infoVo
.
getUnitBigailmentMoney
());
payExists
.
setUnitMedicalMoney
(
infoVo
.
getUnitMedicalMoney
());
payExists
.
setUnitMedicalSet
(
infoVo
.
getMedicalSet
());
payExists
.
setPersonalMedicalMoney
(
infoVo
.
getPersonalMedicalMoney
());
payExists
.
setPersonalBigmailmentMoney
(
infoVo
.
getPersonalBigailmentMoney
());
payExists
.
setUnitBigmailmentMoney
(
infoVo
.
getUnitBigailmentMoney
());
payExists
.
setSocialSecurityNo
(
infoVo
.
getSocialSecurityNo
());
payExists
.
setUnitSocialSum
(
BigDecimalUtils
.
safeAdd
(
payExists
.
getUnitMedicalMoney
()
...
...
yifu-social/yifu-social-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/social/service/impl/TPreDispatchInfoServiceImpl.java
View file @
8765e70f
...
...
@@ -641,17 +641,17 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
@Override
public
List
<
ErrorMessage
>
batchSavePreDisPatchAdd
(
List
<
TPreDispatchInfo
>
listInfo
,
YifuUser
user
,
String
socialHouse
,
String
fundHouse
,
String
departId
)
{
List
<
ErrorMessage
>
errorList
=
new
ArrayList
<>();
,
String
fundHouse
,
String
departId
,
List
<
ErrorMessage
>
errList
)
{
R
<
TSettleDomainSelectVo
>
domainR
=
archivesDaprUtil
.
getSettleDomainSelectVoById
(
departId
);
// 获取区域数据MAP
HashMap
<
String
,
SysArea
>
areaHashMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
HashMap
<
String
,
SysArea
>
areaIdMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
if
(
dataCheck
(
listInfo
,
err
or
List
,
areaHashMap
,
areaIdMap
))
{
return
err
or
List
;
if
(
dataCheck
(
listInfo
,
errList
,
areaHashMap
,
areaIdMap
))
{
return
errList
;
}
if
(
dataCheckDepart
(
err
or
List
,
domainR
))
{
return
err
or
List
;
if
(
dataCheckDepart
(
errList
,
domainR
))
{
return
errList
;
}
TSettleDomainSelectVo
selectVo
=
domainR
.
getData
();
// 获取基数配置信息
...
...
@@ -671,11 +671,11 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
i
++;
if
(
Common
.
isNotNull
(
info
.
getTelNotice
())
&&
(!
CommonConstants
.
IS_TRUE
.
equals
(
info
.
getTelNotice
())
&&
!
CommonConstants
.
IS_FALSE
.
equals
(
info
.
getTelNotice
())))
{
err
or
List
.
add
(
new
ErrorMessage
(
i
,
"是否电话通知不允许导入【是】和【否】之外的内容"
));
errList
.
add
(
new
ErrorMessage
(
i
,
"是否电话通知不允许导入【是】和【否】之外的内容"
));
continue
;
}
// 1.验重
if
(
checkAddRepeat
(
err
or
List
,
existsMap
,
i
,
info
))
{
if
(
checkAddRepeat
(
errList
,
existsMap
,
i
,
info
))
{
continue
;
}
// 基础封装 其他
...
...
@@ -698,11 +698,22 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
if
(!
Common
.
isEmpty
(
info
.
getExceptionContent
()))
{
info
.
setPreStatus
(
CommonConstants
.
ONE_STRING
);
}
int
finalI
=
i
;
if
(!
errList
.
stream
().
anyMatch
(
e
->
hasError
(
e
,
finalI
)))
{
baseMapper
.
insert
(
info
);
}
return
errorList
;
}
return
errList
;
}
public
Boolean
hasError
(
ErrorMessage
errorMessage
,
int
i
)
{
if
(
Common
.
isNotNull
(
errorMessage
.
getMessage
())
&&
errorMessage
.
getLineNum
()
==
i
)
{
return
true
;
}
return
false
;
}
/**
* 预派单批量新增派减
* @param list
...
...
@@ -713,9 +724,8 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
**/
@Transactional
@Override
public
List
<
ErrorMessage
>
batchSavePreDisPatchReduce
(
List
<
TPreDispatchReduceVo
>
list
,
YifuUser
user
)
{
List
<
ErrorMessage
>
errorList
=
new
ArrayList
<>();
public
List
<
ErrorMessage
>
batchSavePreDisPatchReduce
(
List
<
TPreDispatchReduceVo
>
list
,
YifuUser
user
,
List
<
ErrorMessage
>
errorList
)
{
// 获取区域数据MAP
HashMap
<
String
,
SysArea
>
areaIdMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
HashMap
<
String
,
SysArea
>
areaHashMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
...
...
@@ -768,8 +778,11 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
if
(!
Common
.
isEmpty
(
info
.
getExceptionContent
()))
{
info
.
setPreStatus
(
CommonConstants
.
ONE_STRING
);
}
int
finalI
=
i
;
if
(!
errorList
.
stream
().
anyMatch
(
e
->
hasError
(
e
,
finalI
)))
{
baseMapper
.
insert
(
info
);
}
}
return
errorList
;
}
...
...
@@ -782,8 +795,8 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
* @return
**/
@Override
public
List
<
ErrorMessage
>
batchUpdatePreDisPatch
(
List
<
TPreDispatchUpdateVo
>
list
,
YifuUser
user
)
{
List
<
ErrorMessage
>
errorList
=
new
ArrayList
<>();
public
List
<
ErrorMessage
>
batchUpdatePreDisPatch
(
List
<
TPreDispatchUpdateVo
>
list
,
YifuUser
user
,
List
<
ErrorMessage
>
errorList
)
{
// 获取区域数据MAP
HashMap
<
String
,
SysArea
>
areaHashMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
HashMap
<
String
,
SysArea
>
areaIdMap
=
new
HashMap
<>(
CommonConstants
.
SIXTEEN_INT
);
...
...
@@ -808,41 +821,44 @@ public class TPreDispatchInfoServiceImpl extends ServiceImpl<TPreDispatchInfoMap
TPreDispatchInfo
repeat
=
null
;
int
i
=
1
;
String
str
=
null
;
for
(
TPreDispatchInfo
info:
listInfo
){
for
(
TPreDispatchInfo
info:
listInfo
)
{
i
++;
if
(
Common
.
isNotNull
(
info
.
getTelNotice
())
&&
(!
CommonConstants
.
IS_TRUE
.
equals
(
info
.
getTelNotice
())
&&
!
CommonConstants
.
IS_FALSE
.
equals
(
info
.
getTelNotice
())))
{
errorList
.
add
(
new
ErrorMessage
(
i
,
"是否电话通知不允许导入【是】和【否】之外的内容"
));
errorList
.
add
(
new
ErrorMessage
(
i
,
"是否电话通知不允许导入【是】和【否】之外的内容"
));
continue
;
}
// 重置异常状态
info
.
setExceptionContent
(
""
);
info
.
setPreStatus
(
CommonConstants
.
ZERO_STRING
);
temp
=
existsMap
.
get
(
info
.
getId
());
repeat
=
repeatMap
.
get
(
info
.
getEmpIdcard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
info
.
getPayAddress
());
repeat
=
repeatMap
.
get
(
info
.
getEmpIdcard
()
+
CommonConstants
.
DOWN_LINE_STRING
+
info
.
getPayAddress
());
// 判重 及身份证不可更新
if
(
checkRepeatOrIdcard
(
errorList
,
temp
,
i
+
1
,
info
,
repeat
))
{
if
(
checkRepeatOrIdcard
(
errorList
,
temp
,
i
+
1
,
info
,
repeat
))
{
continue
;
}
// 验证派单类型
checkDispatchType
(
info
);
// 1.先校验已有数据
str
=
checkBatchSave
(
info
,
info
.
getType
());
str
=
checkBatchSave
(
info
,
info
.
getType
());
if
(
null
!=
str
)
{
info
.
setPreStatus
(
CommonConstants
.
ONE_STRING
);
info
.
setExceptionContent
(
str
);
}
// 2.封装 社保缴纳地 公积金缴纳地
initBatchUpdateArea
(
areaHashMap
,
areaIdMap
,
info
);
if
(
Common
.
isEmpty
(
info
.
getExceptionContent
())){
if
(
Common
.
isEmpty
(
info
.
getExceptionContent
()))
{
// 3.验证补缴时间是否异常 派增验证 派减日期不处理
checkStartTime
(
baseSocialSetMap
,
baseFundSetMap
,
temp
,
info
);
}
// 4.如果派增缴纳地有变更重新变更派单限制日期
initDayLimitForUpdate
(
dayConfMap
,
temp
,
info
);
// 5.更新
int
finalI
=
i
;
if
(!
errorList
.
stream
().
anyMatch
(
e
->
hasError
(
e
,
finalI
)))
{
updateInfoByIdSub
(
errorList
,
temp
,
i
,
info
);
}
}
return
errorList
;
}
...
...
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