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
4593f2a3
Commit
4593f2a3
authored
Aug 19, 2025
by
hongguangwu
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/MVP1.7.14' into MVP1.7.14
parents
f6218156
4a941b16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
914 additions
and
319 deletions
+914
-319
SysConfig.java
...om/yifu/cloud/plus/v1/yifu/archives/entity/SysConfig.java
+90
-0
ProjectCustomerServiceVo.java
...ud/plus/v1/yifu/archives/vo/ProjectCustomerServiceVo.java
+35
-0
EmployeeContractConstants.java
...v1/yifu/archives/constants/EmployeeContractConstants.java
+2
-0
TEmpContractAlertController.java
...yifu/archives/controller/TEmpContractAlertController.java
+12
-0
SysConfigMapper.java
...u/cloud/plus/v1/yifu/archives/mapper/SysConfigMapper.java
+41
-0
TEmployeeContractInfoMapper.java
.../v1/yifu/archives/mapper/TEmployeeContractInfoMapper.java
+2
-0
TSettleDomainMapper.java
...oud/plus/v1/yifu/archives/mapper/TSettleDomainMapper.java
+1
-0
TEmpContractAlertService.java
...us/v1/yifu/archives/service/TEmpContractAlertService.java
+1
-0
EmployeeRegistrationPreServiceImpl.java
...ives/service/impl/EmployeeRegistrationPreServiceImpl.java
+28
-29
TEmpContractAlertServiceImpl.java
...u/archives/service/impl/TEmpContractAlertServiceImpl.java
+151
-4
TEmployeePreLogServiceImpl.java
...ifu/archives/service/impl/TEmployeePreLogServiceImpl.java
+56
-9
TGzEmpInfoServiceImpl.java
.../v1/yifu/archives/service/impl/TGzEmpInfoServiceImpl.java
+8
-7
SysConfigMapper.xml
...rchives-biz/src/main/resources/mapper/SysConfigMapper.xml
+40
-0
TEmployeeContractInfoMapper.xml
...src/main/resources/mapper/TEmployeeContractInfoMapper.xml
+10
-0
TSettleDomainMapper.xml
...ves-biz/src/main/resources/mapper/TSettleDomainMapper.xml
+16
-0
Common.java
.../com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java
+16
-0
EmployeeRegistrationServiceImpl.java
.../v1/csp/service/impl/EmployeeRegistrationServiceImpl.java
+8
-1
TEmployeeInsurancePre.java
...plus/v1/yifu/insurances/entity/TEmployeeInsurancePre.java
+3
-0
TInsurancePreDetail.java
...d/plus/v1/yifu/insurances/entity/TInsurancePreDetail.java
+26
-0
EmployeePreInsuranceListVo.java
...lus/v1/yifu/insurances/vo/EmployeePreInsuranceListVo.java
+1
-3
InsuranceAddParam.java
...u/cloud/plus/v1/yifu/insurances/vo/InsuranceAddParam.java
+3
-0
InsuranceAutoParam.java
.../cloud/plus/v1/yifu/insurances/vo/InsuranceAutoParam.java
+10
-0
InsuranceBatchParam.java
...cloud/plus/v1/yifu/insurances/vo/InsuranceBatchParam.java
+6
-5
InsuranceReplaceParam.java
...oud/plus/v1/yifu/insurances/vo/InsuranceReplaceParam.java
+3
-0
TEmployeeInsurancePreController.java
...nsurances/controller/TEmployeeInsurancePreController.java
+15
-2
TEmployeeInsurancePreService.java
...ances/service/insurance/TEmployeeInsurancePreService.java
+8
-0
TEmployeeInsurancePreServiceImpl.java
...vice/insurance/impl/TEmployeeInsurancePreServiceImpl.java
+44
-2
TInsuranceDetailServiceImpl.java
...s/service/insurance/impl/TInsuranceDetailServiceImpl.java
+261
-256
TInsuranceDetailMapper.xml
...in/resources/mapper/insurances/TInsuranceDetailMapper.xml
+3
-1
ArchiveTask.java
.../java/com/yifu/cloud/plus/v1/job/compont/ArchiveTask.java
+14
-0
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/SysConfig.java
0 → 100644
View file @
4593f2a3
/*
* 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
.
archives
.
entity
;
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
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.Length
;
import
javax.validation.constraints.NotBlank
;
/**
* @Author fxj
* @Description 系统配置表
* @Date 9:38 2025/3/13
* @Param
* @return
**/
@Data
@TableName
(
"sys_config"
)
@Schema
(
description
=
"系统配置表"
)
public
class
SysConfig
{
/**
* id
*/
@TableId
(
type
=
IdType
.
ASSIGN_ID
)
@ExcelProperty
(
"id"
)
@Schema
(
description
=
"id"
)
private
String
id
;
/**
* 配置键
*/
@ExcelAttribute
(
name
=
"配置键"
,
isNotEmpty
=
true
,
errorInfo
=
"配置键不能为空"
,
maxLength
=
32
)
@NotBlank
(
message
=
"配置键不能为空"
)
@Length
(
max
=
32
,
message
=
"配置键不能超过32个字符"
)
@ExcelProperty
(
"配置键"
)
@Schema
(
description
=
"配置键"
)
private
String
configKey
;
/**
* 配置值
*/
@ExcelAttribute
(
name
=
"配置值"
,
isNotEmpty
=
true
,
errorInfo
=
"配置值不能为空"
)
@NotBlank
(
message
=
"配置值不能为空"
)
@ExcelProperty
(
"配置值"
)
@Schema
(
description
=
"配置值"
)
private
String
configValue
;
/**
* 配置值1
*/
@ExcelAttribute
(
name
=
"配置值1"
)
@ExcelProperty
(
"配置值1"
)
@Schema
(
description
=
"配置值1"
)
private
String
configValue1
;
/**
* 配置值2
*/
@ExcelAttribute
(
name
=
"配置值2"
)
@ExcelProperty
(
"配置值2"
)
@Schema
(
description
=
"配置值2"
)
private
String
configValue2
;
/**
* 备注
*/
@ExcelAttribute
(
name
=
"备注"
,
maxLength
=
255
)
@Length
(
max
=
255
,
message
=
"备注不能超过255个字符"
)
@ExcelProperty
(
"备注"
)
@Schema
(
description
=
"备注"
)
private
String
remark
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/ProjectCustomerServiceVo.java
0 → 100644
View file @
4593f2a3
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
vo
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author fxj
* @Description 项目客服信息
* @Date 17:35 2025/8/14
* @Param
* @return
**/
@Data
public
class
ProjectCustomerServiceVo
implements
Serializable
{
/**
* 项目编码
*/
@Schema
(
description
=
"项目编码"
)
private
String
departNo
;
/**
* 项目名称
*/
@Schema
(
description
=
"项目名称"
)
private
String
departName
;
/**
* 前端客服-登录账号
*/
@Schema
(
description
=
"登录账号"
)
private
String
csLoginName
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/constants/EmployeeContractConstants.java
View file @
4593f2a3
...
...
@@ -11,4 +11,6 @@ public class EmployeeContractConstants {
public
static
final
String
NOT_AUDIT
=
"未审核通过,无法更新"
;
public
static
final
String
INVALID
=
"作废、终止,无法更新"
;
public
static
final
String
CONTRACT_ALERT_DEFAULT_PERSON
=
"CONTRACT_ALERT_DEFAULT_PERSON"
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/TEmpContractAlertController.java
View file @
4593f2a3
...
...
@@ -236,4 +236,16 @@ public class TEmpContractAlertController {
public
R
<
List
<
ErrorMessage
>>
importListAdd
(
@RequestBody
MultipartFile
file
)
{
return
tEmpContractAlertService
.
importDiy
(
file
.
getInputStream
());
}
/**
* @Author fxj
* @Description 每日09:00推送一条整合的续签代码信息给配置的人员
* @Date 16:03 2025/8/15
**/
@Operation
(
description
=
"每天10:00推送整合后的待办商险数据给对应项目的前端客服信息"
)
@Inner
@PostMapping
(
"/inner/pushContractAlertToWx"
)
public
void
pushInsuranceAlertToWx
()
{
tEmpContractAlertService
.
pushContractAlertToWx
();
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/SysConfigMapper.java
0 → 100644
View file @
4593f2a3
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
archives
.
mapper
;
/*
* 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)
*/
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
/**
* @Author fxj
* @Description 系统配置表
* @Date 9:40 2025/3/13
* @Param
* @return
**/
@Mapper
public
interface
SysConfigMapper
extends
BaseMapper
<
SysConfig
>
{
/**
* 系统限制配置表简单分页查询
*
* @param configKey 键
* @return
*/
SysConfig
getSysConfigLimitByKey
(
@Param
(
"configKey"
)
String
configKey
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/TEmployeeContractInfoMapper.java
View file @
4593f2a3
...
...
@@ -110,4 +110,6 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac
String
getMinDateByCardAndDeptId
(
@Param
(
"vo"
)
IdNameNoVo
vo
);
void
updateContractEnd
(
@Param
(
"tEmployeeContractInfo"
)
TEmployeeContractInfo
tEmployeeContractInfo
);
List
<
TEmployeeContractInfo
>
getContractAlertDeptNosList
();
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/TSettleDomainMapper.java
View file @
4593f2a3
...
...
@@ -115,4 +115,5 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> {
List
<
String
>
getAllDeptByCustomerLoginName
(
@Param
(
value
=
"userLoginName"
)
String
userLoginName
);
List
<
ProjectCustomerServiceVo
>
getServiceInfoByCodes
(
@Param
(
value
=
"codes"
)
List
<
String
>
deptNos
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/TEmpContractAlertService.java
View file @
4593f2a3
...
...
@@ -68,4 +68,5 @@ public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
);
void
pushContractAlertToWx
();
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/EmployeeRegistrationPreServiceImpl.java
View file @
4593f2a3
...
...
@@ -567,12 +567,13 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
// 1:存在商险,判断合规性+日期+五个不同等:
if
(
Common
.
isNotNull
(
employeeRegistrationPre
.
getServerItem
())
&&
employeeRegistrationPre
.
getServerItem
().
contains
(
"商险"
))
{
//商险是否购买为
否
时增加校验
//商险是否购买为
是
时增加校验
if
(
Common
.
isNotNull
(
employeeRegistrationPre
.
getInsuranceIsBuy
())
&&
employeeRegistrationPre
.
getInsuranceIsBuy
().
equals
(
CommonConstants
.
ZERO_STRING
)
&&
!
employeeRegistrationPre
.
getExitInsuranceInfoList
().
isEmpty
())
{
//判断带出的流程中或者已完结的商险数据是否准确
//商险是否存在判断
employeeRegistrationPre
.
getExitInsuranceInfoList
().
forEach
(
e
->
e
.
setCreateTime
(
null
));
boolean
isTrue
=
checkInsuranceIsProcess
(
employeeRegistrationPre
);
if
(
isTrue
)
{
return
R
.
failed
(
"带出的商险已购买数据状态或条数发生变更,请重新确认!"
);
...
...
@@ -1425,36 +1426,34 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
EmployeeRegistrationPre
pre
=
this
.
getById
(
id
);
if
(
pre
!=
null
)
{
//判断合同是否已签订 是的话展示商险明细 否的话查询商险待购买数据
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
pre
.
getInsuranceIsBuy
()))
{
// 查已购买商险明细
R
<
EmployeePreInsuranceListVo
>
sdr
=
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
()
,
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/getExitInsuranceListByEmpPreId"
,
id
,
EmployeePreInsuranceListVo
.
class
,
SecurityConstants
.
FROM_IN
);
if
(
sdr
!=
null
&&
sdr
.
getData
()
!=
null
&&
sdr
.
getData
().
getPreList
()
!=
null
&&
!
sdr
.
getData
().
getPreList
().
isEmpty
())
{
pre
.
setExitInsuranceInfoList
(
sdr
.
getData
().
getPreList
());
}
}
else
{
// 查原商险
R
<
EmployeePreLogListVo
>
sdr
=
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
()
,
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/getListByEmpPreId"
,
id
,
EmployeePreLogListVo
.
class
,
SecurityConstants
.
FROM_IN
);
List
<
TEmployeeInsurancePre
>
oldList
;
if
(
sdr
!=
null
&&
sdr
.
getData
()
!=
null
&&
sdr
.
getData
().
getPreList
()
!=
null
&&
!
sdr
.
getData
().
getPreList
().
isEmpty
())
{
oldList
=
sdr
.
getData
().
getPreList
();
for
(
TEmployeeInsurancePre
oldInsurance
:
oldList
)
{
if
(
Common
.
isNotNull
(
oldInsurance
.
getProcessStatus
())
&&
(
CommonConstants
.
THREE_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())
||
CommonConstants
.
FOUR_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())
||
CommonConstants
.
SIX_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())))
{
oldInsurance
.
setModelType
(
CommonConstants
.
FOUR_STRING
);
}
// 查已购买商险明细
R
<
EmployeePreInsuranceListVo
>
sdr
=
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
()
,
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/getExitInsuranceListByEmpPreId"
,
id
,
EmployeePreInsuranceListVo
.
class
,
SecurityConstants
.
FROM_IN
);
if
(
sdr
!=
null
&&
sdr
.
getData
()
!=
null
&&
sdr
.
getData
().
getPreList
()
!=
null
&&
!
sdr
.
getData
().
getPreList
().
isEmpty
())
{
pre
.
setExitInsuranceInfoList
(
sdr
.
getData
().
getPreList
());
}
// 查原商险
R
<
EmployeePreLogListVo
>
sdrOld
=
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
()
,
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/getListByEmpPreId"
,
id
,
EmployeePreLogListVo
.
class
,
SecurityConstants
.
FROM_IN
);
List
<
TEmployeeInsurancePre
>
oldList
;
if
(
sdrOld
!=
null
&&
sdrOld
.
getData
()
!=
null
&&
sdrOld
.
getData
().
getPreList
()
!=
null
&&
!
sdrOld
.
getData
().
getPreList
().
isEmpty
())
{
oldList
=
sdrOld
.
getData
().
getPreList
();
for
(
TEmployeeInsurancePre
oldInsurance
:
oldList
)
{
if
(
Common
.
isNotNull
(
oldInsurance
.
getProcessStatus
())
&&
(
CommonConstants
.
THREE_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())
||
CommonConstants
.
FOUR_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())
||
CommonConstants
.
SIX_STRING
.
equals
(
oldInsurance
.
getProcessStatus
())))
{
oldInsurance
.
setModelType
(
CommonConstants
.
FOUR_STRING
);
}
pre
.
setInsurancePreList
(
oldList
);
}
pre
.
setInsurancePreList
(
oldList
);
}
//获取合同待签订数据
TEmployeeContractPre
contract
=
contractPreMapper
.
selectOne
(
Wrappers
.<
TEmployeeContractPre
>
query
().
lambda
()
...
...
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TEmpContractAlertServiceImpl.java
View file @
4593f2a3
...
...
@@ -31,24 +31,31 @@ 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.ekp.vo.EkpDeptInfoVo
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.config.WxConfig
;
import
com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants
;
import
com.yifu.cloud.plus.v1.yifu.archives.constants.EmployeeContractConstants
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.*
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.*
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.FeedBackDetailService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmpContractAlertUpdateVO
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractCheckVO
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants
;
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.dapr.util.UpmsDaprUtils
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.client.RestTemplate
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
...
...
@@ -57,6 +64,7 @@ import java.io.InputStream;
import
java.net.URLEncoder
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 员工合同续签待办
...
...
@@ -79,6 +87,17 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private
final
FeedBackDetailService
feedBackDetailService
;
private
final
TSettleDomainMapper
settleDomainMapper
;
@Autowired
private
UpmsDaprUtils
upmsDaprUtils
;
@Autowired
private
SysConfigMapper
sysConfigMapper
;
@Autowired
private
WxConfig
wxConfig
;
@Override
public
IPage
<
TEmpContractAlert
>
pageDiy
(
Page
page
,
ContractAlertSearchVo
searchVo
)
{
LambdaQueryWrapper
<
TEmpContractAlert
>
wrapper
=
buildQueryWrapper
(
searchVo
);
...
...
@@ -789,4 +808,132 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
}
return
null
;
}
/**
* @Author fxj
* @Description 获取合同续签但前端客服异常的数据发送给柳毅晨(可配置)
* @Date 17:05 2025/8/14
* @Param
* @return
**/
@Override
public
void
pushContractAlertToWx
()
{
try
{
//获取所有合同提醒的数据--去重
List
<
TEmployeeContractInfo
>
contractAlertList
=
contractInfoMapper
.
getContractAlertDeptNosList
();
//从contractAlertList 对象的 中获取所有元素的 deptNo 属性,要去空和去重。放到 deptNos 中
List
<
String
>
deptNos
=
new
ArrayList
<>();
if
(
contractAlertList
!=
null
)
{
for
(
TEmployeeContractInfo
contract
:
contractAlertList
)
{
if
(
Common
.
isNotNull
(
contract
)
&&
!
Common
.
isEmpty
(
contract
.
getDeptNo
()))
{
deptNos
.
add
(
contract
.
getDeptNo
());
}
}
}
//通过项目获取所有项目的前端客服信息
List
<
ProjectCustomerServiceVo
>
deptInfoVos
=
settleDomainMapper
.
getServiceInfoByCodes
(
deptNos
);
//需要提醒的项目信息
StringBuilder
sb
=
new
StringBuilder
();
if
(!
Common
.
isEmpty
(
deptInfoVos
)){
StringBuilder
userNames
=
new
StringBuilder
();
//获取所有项目对应的客服信息
initUserNames
(
deptInfoVos
,
sb
,
userNames
);
Map
<
String
,
SysUser
>
sysUserMap
=
getSysUserMap
(
userNames
);
if
(
Common
.
isNotKong
(
sysUserMap
)){
SysUser
user
;
for
(
ProjectCustomerServiceVo
dept
:
deptInfoVos
)
{
if
(
Common
.
isEmpty
(
dept
.
getCsLoginName
())){
continue
;
}
user
=
sysUserMap
.
get
(
dept
.
getCsLoginName
());
if
(!
Common
.
isNotNull
(
user
)){
Common
.
appendStr
(
sb
,
dept
.
getDepartNo
(),
CommonConstants
.
DUNHAO_STRING
);
}
else
if
(!
CommonConstants
.
ZERO_STRING
.
equals
(
user
.
getLockFlag
())
||
!
CommonConstants
.
ZERO_STRING
.
equals
(
user
.
getDelFlag
())){
//锁定标识:lockFlag != 0 都算作异常 删除标识:deleteFlag != 0 算作异常
Common
.
appendStr
(
sb
,
dept
.
getDepartNo
(),
CommonConstants
.
DUNHAO_STRING
);
}
}
}
if
(
sb
.
length
()
>
0
){
// 获取默认提醒人
SysConfig
sysConfig
=
sysConfigMapper
.
getSysConfigLimitByKey
(
EmployeeContractConstants
.
CONTRACT_ALERT_DEFAULT_PERSON
);
if
(
Common
.
isNotNull
(
sysConfig
)
&&
Common
.
isNotKong
(
sysConfig
.
getConfigValue2
())){
sendMessageToWx
(
sysConfig
.
getConfigValue2
(),
sb
);
}
}
}
}
catch
(
Exception
e
){
// 记录日志或进行适当异常处理
log
.
error
(
"推送合同提醒到企业微信时发生异常"
,
e
);
}
}
//发送企业微信待办
private
void
sendMessageToWx
(
String
useruserWx
,
StringBuilder
content
)
{
if
(
Common
.
isEmpty
(
useruserWx
)
||
Common
.
isEmpty
(
content
))
{
return
;
}
StringBuilder
sendUser
=
null
;
if
(
Common
.
isNotKong
(
useruserWx
))
{
sendUser
=
new
StringBuilder
(
useruserWx
);
}
if
(
sendUser
!=
null
)
{
RestTemplate
restTemplate
=
new
RestTemplate
();
Map
<
String
,
Object
>
requestMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
textcard
=
new
HashMap
<>();
textcard
.
put
(
"title"
,
"合同到期提醒"
);
textcard
.
put
(
"url"
,
String
.
format
(
SecurityConstants
.
WX_GET_MESSAGE_AUTH_URL
,
wxConfig
.
getCorpid
(),
wxConfig
.
getDomainName
()
+
"/auth/oauth/wxLogin"
,
"66"
));
content
.
append
(
"的所属前端客服当前状态异常,请及时更新服务手册数据,跟进项目情况。"
);
textcard
.
put
(
"description"
,
"项目编码为"
+
content
);
requestMap
.
put
(
"touser"
,
sendUser
);
requestMap
.
put
(
"agentid"
,
wxConfig
.
getAgentid
());
requestMap
.
put
(
"msgtype"
,
"textcard"
);
requestMap
.
put
(
"textcard"
,
textcard
);
// 必须加上header说明
if
(!
wxConfig
.
sendTextCard
(
restTemplate
,
requestMap
))
{
wxConfig
.
sendTextCard
(
restTemplate
,
requestMap
);
}
}
}
private
Map
<
String
,
SysUser
>
getSysUserMap
(
StringBuilder
userNames
)
{
Map
<
String
,
SysUser
>
sysUserMap
=
null
;
if
(!
Common
.
isEmpty
(
userNames
.
toString
()))
{
try
{
R
<
SysUserListVo
>
res
=
upmsDaprUtils
.
getUserIdsByUserNames
(
userNames
.
toString
());
List
<
SysUser
>
users
=
null
;
if
(
Common
.
isNotNull
(
res
)
&&
Common
.
isNotNull
(
res
.
getData
())
&&
Common
.
isNotNull
(
res
.
getData
().
getUserList
()))
{
users
=
res
.
getData
().
getUserList
();
}
if
(
Common
.
isNotKong
(
users
))
{
sysUserMap
=
users
.
stream
().
collect
(
Collectors
.
toMap
(
k
->
k
.
getUsername
(),
v
->
v
));
}
}
catch
(
Exception
e
){
log
.
error
(
"获取用户映射时发生异常"
,
e
);
}
}
return
sysUserMap
;
}
private
void
initUserNames
(
List
<
ProjectCustomerServiceVo
>
deptInfoVos
,
StringBuilder
sb
,
StringBuilder
userNames
)
{
// 使用 Set 来确保用户名唯一性
Set
<
String
>
uniqueUserNames
=
new
HashSet
<>();
for
(
ProjectCustomerServiceVo
deptInfoVo
:
deptInfoVos
)
{
if
(
Common
.
isNotNull
(
deptInfoVo
))
{
// 不为空后面要查询对应账号状态异常的
if
(
Common
.
isNotNull
(
deptInfoVo
.
getCsLoginName
()))
{
uniqueUserNames
.
add
(
deptInfoVo
.
getCsLoginName
());
}
else
{
Common
.
appendStr
(
sb
,
deptInfoVo
.
getDepartNo
(),
CommonConstants
.
DUNHAO_STRING
);
}
}
}
// 将去重后的用户名添加到 userNames 中
for
(
String
userName
:
uniqueUserNames
)
{
Common
.
appendStr
(
userNames
,
userName
,
CommonConstants
.
COMMA_STRING
);
}
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TEmployeePreLogServiceImpl.java
View file @
4593f2a3
...
...
@@ -209,12 +209,18 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
newInfo
.
setAttaIdList
(
null
);
oldInfo
.
setAttaList
(
null
);
newInfo
.
setAttaList
(
null
);
//商险是否已购买list不做比较
oldInfo
.
setExitInsuranceInfoList
(
newInfo
.
getExitInsuranceInfoList
());
//比较记录不影响业务逻辑,用try套住
//记录商险是否已购买日志
String
isBuyOld
=
oldInfo
.
getInsuranceIsBuy
();
String
isBuyNew
=
newInfo
.
getInsuranceIsBuy
();
oldInfo
.
setInsuranceIsBuy
(
newInfo
.
getInsuranceIsBuy
());
//比较差异
String
differenceKey
=
HrEquator
.
comparisonValue
(
oldInfo
,
newInfo
);
//如果有差异保存差异
List
<
TEmployeeInsurancePre
>
newList
=
newInfo
.
getInsurancePreList
();
String
diffTitle
=
null
;
String
logId
=
String
.
valueOf
(
UUID
.
randomUUID
()).
replaceAll
(
"-"
,
""
);
// 要保存的明细
...
...
@@ -225,7 +231,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
&&
!
"attaIdList"
.
equals
(
differenceKey
)
&&
!
"employeeContractPre"
.
equals
(
differenceKey
))
{
differenceKey
=
differenceKey
.
replace
(
"insurancePreList"
,
""
);
differenceKey
=
differenceKey
.
replace
(
"employeeContractPre"
,
""
);
differenceKey
=
differenceKey
.
replace
(
"exitInsuranceInfoList"
,
""
);
diffTitle
=
"档案信息"
;
detailEmpLog
=
new
TEmployeePreLogDetail
();
detailEmpLog
.
setModelType
(
CommonConstants
.
TWO_STRING
);
...
...
@@ -238,18 +243,41 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
oldMap
=
new
HashMap
<>();
}
List
<
TEmployeeInsurancePre
>
saveOrUpdateList
=
new
ArrayList
<>();
// 是否修改了商险
boolean
isModifyInsurance
=
false
;
TEmployeeInsurancePre
oldInsurance
;
String
differenceInsuranceKey
;
TEmployeePreLogDetail
detailInsuranceLog
;
if
(
Common
.
isEmpty
(
isBuyOld
)
||
(
Common
.
isNotNull
(
isBuyOld
)
&&
!
isBuyOld
.
equals
(
isBuyNew
)))
{
//单独记录是否已购买商险的变更记录
differenceInsuranceKey
=
"insuranceIsBuy"
;
detailInsuranceLog
=
new
TEmployeePreLogDetail
();
detailInsuranceLog
.
setModelType
(
CommonConstants
.
TWO_STRING
);
detailInsuranceLog
.
setType
(
CommonConstants
.
TWO_STRING
);
Map
<
String
,
Object
>
old
=
new
HashMap
<>();
old
.
put
(
"insuranceIsBuy"
,
isBuyOld
);
Map
<
String
,
Object
>
simNew
=
new
HashMap
<>();
simNew
.
put
(
"insuranceIsBuy"
,
isBuyNew
);
this
.
setLogBaseInfo
(
empPreId
,
old
,
simNew
,
user
,
differenceInsuranceKey
,
logId
,
detailInsuranceLog
);
isModifyInsurance
=
true
;
detailList
.
add
(
detailInsuranceLog
);
}
//如果服务类型包含商险处理商险明细数据
if
(
Common
.
isNotNull
(
newInfo
.
getServerItem
())
&&
newInfo
.
getServerItem
().
contains
(
"商险"
))
{
newInfo
.
setId
(
empPreId
);
if
(!
newInfo
.
getExitInsuranceInfoList
().
isEmpty
())
{
newInfo
.
getExitInsuranceInfoList
().
forEach
(
insurancePreVo
->
insurancePreVo
.
setRegisterId
(
empPreId
));
}
HttpDaprUtil
.
invokeMethodPost
(
daprInsurancesProperties
.
getAppUrl
(),
daprInsurancesProperties
.
getAppId
()
,
"/temployeeinsurancepre/inner/updateInfoSaveInsurancePreInfo"
,
newInfo
,
Boolean
.
class
,
SecurityConstants
.
FROM_IN
);
}
if
(
newList
!=
null
&&
!
newList
.
isEmpty
())
{
// 是否修改了商险
boolean
isModifyInsurance
=
false
;
TEmployeeInsurancePre
oldInsurance
;
String
differenceInsuranceKey
;
TEmployeePreLogDetail
detailInsuranceLog
;
for
(
TEmployeeInsurancePre
newInsurance
:
newList
)
{
differenceInsuranceKey
=
null
;
if
(
Common
.
isNotNull
(
newInsurance
.
getModelType
()))
{
// 1:新增
if
(
CommonConstants
.
ONE_STRING
.
equals
(
newInsurance
.
getModelType
()))
{
saveOrUpdateList
.
add
(
newInsurance
);
detailInsuranceLog
=
new
TEmployeePreLogDetail
();
detailInsuranceLog
.
setModelType
(
newInsurance
.
getModelType
());
...
...
@@ -403,6 +431,12 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
newInfo
.
setAttaIdList
(
null
);
oldInfo
.
setAttaList
(
null
);
newInfo
.
setAttaList
(
null
);
//记录商险是否已购买日志
String
isBuyOld
=
oldInfo
.
getInsuranceIsBuy
();
String
isBuyNew
=
newInfo
.
getInsuranceIsBuy
();
//商险是否已购买list不做比较
oldInfo
.
setExitInsuranceInfoList
(
newInfo
.
getExitInsuranceInfoList
());
oldInfo
.
setInsuranceIsBuy
(
newInfo
.
getInsuranceIsBuy
());
//比较记录不影响业务逻辑,用try套住
//比较差异
String
differenceKey
=
HrEquator
.
comparisonValue
(
oldInfo
,
newInfo
);
...
...
@@ -419,7 +453,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
&&
!
"attaIdList"
.
equals
(
differenceKey
)
&&
!
"employeeContractPre"
.
equals
(
differenceKey
))
{
differenceKey
=
differenceKey
.
replace
(
"insurancePreList"
,
""
);
differenceKey
=
differenceKey
.
replace
(
"employeeContractPre"
,
""
);
differenceKey
=
differenceKey
.
replace
(
"exitInsuranceInfoList"
,
""
);
diffTitle
=
"档案信息二次确认"
;
detailEmpLog
=
new
TEmployeePreLogDetail
();
detailEmpLog
.
setModelType
(
CommonConstants
.
TWO_STRING
);
...
...
@@ -433,6 +466,20 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
TEmployeeInsurancePre
oldInsurance
;
String
differenceInsuranceKey
;
TEmployeePreLogDetail
detailInsuranceLog
;
if
(
Common
.
isEmpty
(
isBuyOld
)
||(
Common
.
isNotNull
(
isBuyOld
)
&&
!
isBuyOld
.
equals
(
isBuyNew
)))
{
//单独记录是否已购买商险的变更记录
differenceInsuranceKey
=
"insuranceIsBuy"
;
detailInsuranceLog
=
new
TEmployeePreLogDetail
();
detailInsuranceLog
.
setModelType
(
CommonConstants
.
TWO_STRING
);
detailInsuranceLog
.
setType
(
CommonConstants
.
TWO_STRING
);
Map
<
String
,
Object
>
old
=
new
HashMap
<>();
old
.
put
(
"insuranceIsBuy"
,
isBuyOld
);
Map
<
String
,
Object
>
simNew
=
new
HashMap
<>();
simNew
.
put
(
"insuranceIsBuy"
,
isBuyNew
);
this
.
setPreLogBaseInfo
(
empPreId
,
old
,
simNew
,
userId
,
nickName
,
differenceInsuranceKey
,
logId
,
detailInsuranceLog
);
isModifyInsurance
=
true
;
detailList
.
add
(
detailInsuranceLog
);
}
for
(
TEmployeeInsurancePre
newInsurance
:
newList
)
{
differenceInsuranceKey
=
null
;
if
(
CommonConstants
.
THREE_STRING
.
equals
(
newInsurance
.
getModelType
()))
{
...
...
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TGzEmpInfoServiceImpl.java
View file @
4593f2a3
...
...
@@ -543,6 +543,7 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
if
(
Common
.
isEmpty
(
gzEmpId
))
{
tGzEmpInfo
.
setCreateBy
(
user
.
getId
());
tGzEmpInfo
.
setCreateName
(
user
.
getNickname
());
tGzEmpInfo
.
setCreateTime
(
null
);
// 1.7.14: 档案状态是提交,才存 创建时间(提交时间)
if
(
CommonConstants
.
ZERO_STRING
.
equals
(
tGzEmpInfoVo
.
getEmpStatus
())){
tGzEmpInfo
.
setCreateTime
(
LocalDateTime
.
now
());
...
...
@@ -552,9 +553,9 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
}
else
{
tGzEmpInfo
.
setUpdateBy
(
user
.
getId
());
tGzEmpInfo
.
setUpdateTime
(
LocalDateTime
.
now
());
// 1.7.14: 档案状态是
暂存,清除
创建时间(提交时间)
if
(
CommonConstants
.
ONE
_STRING
.
equals
(
tGzEmpInfoVo
.
getEmpStatus
())){
tGzEmpInfo
.
setCreateTime
(
null
);
// 1.7.14: 档案状态是
提交,更新
创建时间(提交时间)
if
(
CommonConstants
.
ZERO
_STRING
.
equals
(
tGzEmpInfoVo
.
getEmpStatus
())){
tGzEmpInfo
.
setCreateTime
(
LocalDateTime
.
now
()
);
}
this
.
updateById
(
tGzEmpInfo
);
}
...
...
@@ -861,16 +862,16 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
// 41(瓜子申明签名)42(瓜子确认签名)NID_A(证件正面) NID_B(证件反面)
// 附件类型转化:声明签字:21;确认签字:22; 9身份证;24 身份证国徽
if
(
"41"
.
equals
(
atta
.
getRelationType
())){
atta
.
setRelationType
(
"21"
);
atta
Emp
.
setRelationType
(
"21"
);
}
if
(
"42"
.
equals
(
atta
.
getRelationType
())){
atta
.
setRelationType
(
"22"
);
atta
Emp
.
setRelationType
(
"22"
);
}
if
(
"NID_A"
.
equals
(
atta
.
getRelationType
())){
atta
.
setRelationType
(
"9"
);
atta
Emp
.
setRelationType
(
"9"
);
}
if
(
"NID_B"
.
equals
(
atta
.
getRelationType
())){
atta
.
setRelationType
(
"24"
);
atta
Emp
.
setRelationType
(
"24"
);
}
attaEmp
.
setDomainId
(
empId
);
...
...
yifu-archives/yifu-archives-biz/src/main/resources/mapper/SysConfigMapper.xml
0 → 100644
View file @
4593f2a3
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ 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)
~
-->
<!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.archives.mapper.SysConfigMapper"
>
<resultMap
id=
"sysConfigLimitMap"
type=
"com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig"
>
<id
property=
"id"
column=
"ID"
/>
<result
property=
"configKey"
column=
"CONFIG_KEY"
/>
<result
property=
"configValue"
column=
"CONFIG_VALUE"
/>
<result
property=
"configValue1"
column=
"CONFIG_VALUE_1"
/>
<result
property=
"configValue2"
column=
"CONFIG_VALUE_2"
/>
<result
property=
"remark"
column=
"REMARK"
/>
</resultMap>
<!-- 根据key获取value -->
<select
id=
"getSysConfigLimitByKey"
resultType=
"com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig"
>
SELECT a.CONFIG_VALUE,CONFIG_VALUE_1,CONFIG_VALUE_2
FROM sys_config a
where a.CONFIG_KEY = #{configKey} limit 1
</select>
</mapper>
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TEmployeeContractInfoMapper.xml
View file @
4593f2a3
...
...
@@ -851,4 +851,14 @@
from t_employee_contract_info e
where e.EMP_IDCARD = #{vo.no} and e.SETTLE_DOMAIN = #{vo.id} and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2'
</select>
<!--list-->
<select
id=
"getContractAlertDeptNosList"
resultMap=
"tEmployeeContrctInfoMap"
>
SELECT
distinct a.DEPT_NO
FROM t_employee_contract_info a
<where>
a.DELETE_FLAG = 0
</where>
</select>
</mapper>
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TSettleDomainMapper.xml
View file @
4593f2a3
...
...
@@ -667,4 +667,20 @@
t_settle_domain a
where a.DELETE_FLAG = '0' and a.CS_LOGIN_NAME = #{userLoginName}
</select>
<select
id=
"getServiceInfoByCodes"
resultType=
"com.yifu.cloud.plus.v1.yifu.archives.vo.ProjectCustomerServiceVo"
>
SELECT
a.DEPART_NO as 'departNo',
a.DEPART_NAME as 'departName',
a.cs_login_name as 'csLoginName'
FROM t_settle_domain a
where 1=1
and a.DELETE_FLAG = '0'
<if
test=
"codes != null and codes.size() > 0"
>
and a.DEPART_NO in
<foreach
collection=
"codes"
item=
"param"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{param}
</foreach>
</if>
</select>
</mapper>
yifu-common/yifu-common-core/src/main/java/com/yifu/cloud/plus/v1/yifu/common/core/util/Common.java
View file @
4593f2a3
...
...
@@ -735,4 +735,20 @@ public class Common {
}
return
true
;
}
/**
* @Author fxj
* @Description
* @Date 17:43 2025/8/14
**/
public
static
void
appendStr
(
StringBuilder
sb
,
String
str
,
String
split
){
if
(
Common
.
isNotNull
(
sb
)
&&
Common
.
isNotNull
(
str
)){
if
(
sb
.
length
()>
0
){
sb
.
append
(
Common
.
isEmpty
(
split
)?
","
:
split
);
sb
.
append
(
str
);
}
else
{
sb
.
append
(
str
);
}
}
}
}
yifu-csp/yifu-csp-biz/src/main/java/com/yifu/cloud/plus/v1/csp/service/impl/EmployeeRegistrationServiceImpl.java
View file @
4593f2a3
...
...
@@ -626,6 +626,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
&&
!
preVo
.
getExitInsuranceInfoList
().
isEmpty
())
{
//判断带出的流程中或者已完结的商险数据是否准确
//商险是否存在判断
preVo
.
setEmpIdcard
(
registration
.
getEmpIdcard
());
preVo
.
getExitInsuranceInfoList
().
forEach
(
e
->
e
.
setCreateTime
(
null
));
boolean
isTrue
=
checkInsuranceIsProcess
(
preVo
);
if
(
isTrue
)
{
return
R
.
other
(
CommonConstants
.
TWO_INT
,
null
,
"带出的商险已购买数据状态或条数发生变更,请重新确认接收!"
);
...
...
@@ -665,7 +667,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo
.
getExitInsuranceInfoList
().
forEach
(
insurancePreVo
->
insurancePreVo
.
setRegisterId
(
domainR
.
getData
()));
//生成入职确认信息商险明细数据
insuranceDaprUtil
.
saveInsurancePreInfo
(
preVo
);
}
else
if
(
preVo
.
getServerItem
().
contains
(
"商险"
)
&&
!
preVo
.
getEmployeeInsurancePreVos
().
isEmpty
())
{
}
else
if
(
preVo
.
getServerItem
().
contains
(
"商险"
)
&&
preVo
.
getInsuranceIsBuy
().
equals
(
CommonConstants
.
ONE_STRING
)
&&
!
preVo
.
getEmployeeInsurancePreVos
().
isEmpty
())
{
//生成商险待购买的数据
for
(
TEmployeeInsurancePreVo
insurancePreVo
:
preVo
.
getEmployeeInsurancePreVos
())
{
initInsruancePreInfo
(
registration
,
insurancePreVo
,
user
,
domainR
.
getData
());
...
...
@@ -978,6 +982,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if
(
preVo
.
getServerItem
().
contains
(
"商险"
)
&&
!
preVo
.
getEmployeeInsurancePreVos
().
isEmpty
())
{
//生成商险待购买的数据
TEmployeeInsurancePreVo
insurancePreVo
=
preVo
.
getEmployeeInsurancePreVos
().
get
(
0
);
//批量的商险是否已购买默认为否
preVo
.
setInsuranceIsBuy
(
CommonConstants
.
ONE_STRING
);
initInsruancePreInfo
(
registration
,
insurancePreVo
,
user
,
domainR
.
getData
());
insuranceDaprUtil
.
saveInsurancePreInfo
(
preVo
);
}
...
...
@@ -1121,6 +1127,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if
(
preVo
.
getServerItem
().
contains
(
"商险"
)
&&
Common
.
isNotNull
(
preVo
.
getInsuranceIsBuy
())
&&
preVo
.
getInsuranceIsBuy
().
equals
(
CommonConstants
.
ZERO_STRING
)
&&
!
preVo
.
getExitInsuranceInfoList
().
isEmpty
())
{
preVo
.
getExitInsuranceInfoList
().
forEach
(
e
->
e
.
setCreateTime
(
null
));
preVo
.
getExitInsuranceInfoList
().
forEach
(
insurancePreVo
->
insurancePreVo
.
setRegisterId
(
domainR
.
getData
()));
//生成入职确认信息商险明细数据
insuranceDaprUtil
.
saveInsurancePreInfo
(
preVo
);
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TEmployeeInsurancePre.java
View file @
4593f2a3
...
...
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
...
...
@@ -151,6 +152,8 @@ public class TEmployeeInsurancePre extends BaseEntity {
private
String
errorInfo
;
@Schema
(
description
=
"发起失败时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonIgnore
private
LocalDateTime
errorTime
;
@TableField
(
exist
=
false
)
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/entity/TInsurancePreDetail.java
View file @
4593f2a3
...
...
@@ -2,8 +2,10 @@ package com.yifu.cloud.plus.v1.yifu.insurances.entity;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
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
;
...
...
@@ -96,6 +98,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute
(
name
=
"保单开始时间"
,
isDate
=
true
)
@ExcelProperty
(
"保单开始时间"
)
@Schema
(
description
=
"保单开始时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+08:00"
)
private
Date
policyStart
;
/**
* 保单结束时间
...
...
@@ -103,6 +106,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute
(
name
=
"保单结束时间"
,
isDate
=
true
)
@ExcelProperty
(
"保单结束时间"
)
@Schema
(
description
=
"保单结束时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+08:00"
)
private
Date
policyEnd
;
/**
* 保单生效日期
...
...
@@ -110,6 +114,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute
(
name
=
"保单生效日期"
,
isDate
=
true
)
@ExcelProperty
(
"保单生效日期"
)
@Schema
(
description
=
"保单生效日期"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+08:00"
)
private
Date
policyEffect
;
/**
* 投保类型, 1新增、3批增、4替换
...
...
@@ -166,4 +171,25 @@ public class TInsurancePreDetail extends BaseEntity {
@Schema
(
description
=
"入离职登记id"
)
private
String
registerId
;
/**
* 商险购买地省
*/
@Schema
(
description
=
"商险购买地省"
)
private
String
insuranceProvinceName
;
/**
* 商险购买地市
*/
@Schema
(
description
=
"商险购买地市"
)
private
String
insuranceCityName
;
/**
* 派单时间
*/
@ExcelAttribute
(
name
=
"派单时间"
,
isDate
=
true
)
@ExcelProperty
(
"派单时间"
)
@Schema
(
description
=
"派单时间"
)
@TableField
(
exist
=
false
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+08:00"
)
private
Date
disTime
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/EmployeePreInsuranceListVo.java
View file @
4593f2a3
package
com
.
yifu
.
cloud
.
plus
.
v1
.
yifu
.
insurances
.
vo
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -18,6 +16,6 @@ import java.util.List;
@Schema
(
description
=
"商险自动化已购买商险明细VO"
)
public
class
EmployeePreInsuranceListVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
628032758008497542L
;
private
List
<
TInsurancePreDetail
>
preList
=
new
ArrayList
<>()
;
private
List
<
TInsurancePreDetail
>
preList
;
}
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceAddParam.java
View file @
4593f2a3
...
...
@@ -202,6 +202,9 @@ public class InsuranceAddParam implements Serializable {
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
@Schema
(
description
=
"投标类型"
)
private
Integer
buyType
;
@Schema
(
description
=
"客户id"
)
private
String
unitId
;
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceAutoParam.java
View file @
4593f2a3
...
...
@@ -27,6 +27,16 @@ public class InsuranceAutoParam implements Serializable {
*/
@Schema
(
description
=
"项目编码"
)
private
String
deptNo
;
/**
* 项目名称
*/
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
/**
* 投标类型
*/
@Schema
(
description
=
"投标类型"
)
private
Integer
buyType
;
/**
* 员工姓名
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceBatchParam.java
View file @
4593f2a3
...
...
@@ -190,15 +190,19 @@ public class InsuranceBatchParam implements Serializable {
/**
* 保单开始时间
*/
@JsonIgnore
private
LocalDate
policyStart
;
/**
* 保单结束时间
*/
@JsonIgnore
private
LocalDate
policyEnd
;
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
@Schema
(
description
=
"投标类型"
)
private
Integer
buyType
;
/**
* EKP的 是否BPO: 是 否
*/
...
...
@@ -206,9 +210,6 @@ public class InsuranceBatchParam implements Serializable {
@ExcelIgnore
private
String
bpoFlag
;
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
@Schema
(
description
=
"客户id"
)
private
String
unitId
;
...
...
yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceReplaceParam.java
View file @
4593f2a3
...
...
@@ -138,6 +138,9 @@ public class InsuranceReplaceParam implements Serializable {
@Schema
(
description
=
"项目名称"
)
private
String
deptName
;
@Schema
(
description
=
"投标类型"
)
private
Integer
buyType
;
@Schema
(
description
=
"客户id"
)
private
String
unitId
;
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TEmployeeInsurancePreController.java
View file @
4593f2a3
...
...
@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
...
...
@@ -159,8 +160,8 @@ public class TEmployeeInsurancePreController {
**/
@Operation
(
description
=
"商险派单信息单个/批量派单"
)
@PostMapping
(
"/batchDispatcherInsurance"
)
public
R
batchDispatcherInsurance
(
@RequestBody
List
<
String
>
idList
)
{
return
tEmployeeInsurancePreService
.
batchDispatcherInsurance
(
idList
,
null
,
false
);
public
R
batchDispatcherInsurance
(
@RequestBody
List
<
String
>
idList
,
@RequestParam
(
required
=
false
)
String
isExit
)
{
return
tEmployeeInsurancePreService
.
batchDispatcherInsurance
(
idList
,
isExit
,
false
);
}
/**
...
...
@@ -187,6 +188,18 @@ public class TEmployeeInsurancePreController {
return
tEmployeeInsurancePreService
.
saveInsurancePreInfo
(
preVo
);
}
/**
* 信息修改入口新增商险已购买明细
* @author huych
* @date 2025-08-14 11:46:16
**/
@Operation
(
description
=
"信息修改入口新增商险已购买明细"
)
@Inner
@PostMapping
(
"/inner/updateInfoSaveInsurancePreInfo"
)
public
Boolean
updateInfoSaveInsurancePreInfo
(
@RequestBody
EmployeeRegistrationPre
pre
)
{
return
tEmployeeInsurancePreService
.
updateInfoSaveInsurancePreInfo
(
pre
);
}
/**
* 商险状态是否正常判断
* @author huych
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/TEmployeeInsurancePreService.java
View file @
4593f2a3
...
...
@@ -4,6 +4,7 @@ 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.csp.vo.EmployeeRegistrationCustomerUserUpdateVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre
;
...
...
@@ -68,6 +69,13 @@ public interface TEmployeeInsurancePreService extends IService<TEmployeeInsuranc
*/
Boolean
saveInsurancePreInfo
(
EmployeeRegistrationPreVo
preVo
);
/**
* 信息修改入口新增商险待购买信息
* @param pre
* @return
*/
Boolean
updateInfoSaveInsurancePreInfo
(
EmployeeRegistrationPre
pre
);
Boolean
checkExitInsuanceIsProcess
(
EmployeeRegistrationPreVo
preVo
);
TEmployeeInsuranceSelectVo
selectInsurancePreInfoList
(
TEmployeeInsurancePreVo
preVo
);
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TEmployeeInsurancePreServiceImpl.java
View file @
4593f2a3
...
...
@@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import
com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.
TSettleDomain
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.
EmployeeRegistrationPre
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainRegistListVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants
;
...
...
@@ -572,6 +572,9 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
TEmployeeInsurancePre
preExit
;
if
(
null
!=
employeeInsurancePreVos
&&
!
employeeInsurancePreVos
.
isEmpty
())
{
try
{
//删除已存在的入职确认信息对应的商险明细
preDetailService
.
remove
(
Wrappers
.<
TInsurancePreDetail
>
lambdaQuery
()
.
eq
(
TInsurancePreDetail:
:
getRegisterId
,
employeeInsurancePreVos
.
get
(
0
).
getRegisterId
()));
for
(
TEmployeeInsurancePreVo
preVo
:
employeeInsurancePreVos
)
{
//判断是否存在商险待购买信息
preExit
=
baseMapper
.
selectOne
(
Wrappers
.<
TEmployeeInsurancePre
>
query
().
lambda
()
...
...
@@ -620,6 +623,27 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
return
true
;
}
@Override
public
Boolean
updateInfoSaveInsurancePreInfo
(
EmployeeRegistrationPre
registrationPre
)
{
if
(
Common
.
isNotNull
(
registrationPre
.
getInsuranceIsBuy
())
&&
registrationPre
.
getInsuranceIsBuy
().
equals
(
CommonConstants
.
ZERO_STRING
)
&&
!
registrationPre
.
getExitInsuranceInfoList
().
isEmpty
())
{
//删除已存在的入职确认信息对应的商险明细
preDetailService
.
remove
(
Wrappers
.<
TInsurancePreDetail
>
lambdaQuery
()
.
eq
(
TInsurancePreDetail:
:
getRegisterId
,
registrationPre
.
getId
()));
//批量新增
preDetailService
.
saveBatch
(
registrationPre
.
getExitInsuranceInfoList
());
}
//如果商险是否已购买为否,删除商险已购买明细
if
(
Common
.
isNotNull
(
registrationPre
.
getInsuranceIsBuy
())
&&
registrationPre
.
getInsuranceIsBuy
().
equals
(
CommonConstants
.
ONE_STRING
))
{
//删除已存在的入职确认信息对应的商险明细
preDetailService
.
remove
(
Wrappers
.<
TInsurancePreDetail
>
lambdaQuery
()
.
eq
(
TInsurancePreDetail:
:
getRegisterId
,
registrationPre
.
getId
()));
}
return
true
;
}
@Override
public
Boolean
checkExitInsuanceIsProcess
(
EmployeeRegistrationPreVo
preVo
)
{
//如果状态有变动就会拦截
...
...
@@ -644,7 +668,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
.
or
().
eq
(
TInsuranceDetail:
:
getBuyHandleStatus
,
CommonConstants
.
ONE_INT
)));
return
count
==
preVo
.
getExitInsuranceInfoList
().
size
();
}
return
fals
e
;
return
tru
e
;
}
@Override
...
...
@@ -768,6 +792,8 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam
.
setInsurancePreId
(
addParam
.
getInsurancePreId
());
autoParam
.
setCustomerUserName
(
addParam
.
getCustomerUserName
());
autoParam
.
setIsExit
(
addParam
.
getIsExit
());
autoParam
.
setDeptName
(
addParam
.
getDeptName
());
autoParam
.
setBuyType
(
addParam
.
getBuyType
());
autoParam
.
setInProgressList
(
addParam
.
getInProgressList
());
return
autoParam
;
}
...
...
@@ -791,7 +817,11 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam
.
setInsurancePreId
(
batchParam
.
getInsurancePreId
());
autoParam
.
setCustomerUserName
(
batchParam
.
getCustomerUserName
());
autoParam
.
setIsExit
(
batchParam
.
getIsExit
());
autoParam
.
setDeptName
(
batchParam
.
getDeptName
());
autoParam
.
setBuyType
(
batchParam
.
getBuyType
());
autoParam
.
setInProgressList
(
batchParam
.
getInProgressList
());
autoParam
.
setPolicyEnd
(
LocalDateUtil
.
getDateSrt
(
batchParam
.
getPolicyEnd
()));
autoParam
.
setPolicyStart
(
LocalDateUtil
.
getDateSrt
(
batchParam
.
getPolicyStart
()));
return
autoParam
;
}
...
...
@@ -814,6 +844,8 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam
.
setInsurancePreId
(
replaceParam
.
getInsurancePreId
());
autoParam
.
setCustomerUserName
(
replaceParam
.
getCustomerUserName
());
autoParam
.
setIsExit
(
replaceParam
.
getIsExit
());
autoParam
.
setDeptName
(
replaceParam
.
getDeptName
());
autoParam
.
setBuyType
(
replaceParam
.
getBuyType
());
autoParam
.
setInProgressList
(
replaceParam
.
getInProgressList
());
return
autoParam
;
}
...
...
@@ -867,6 +899,9 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
public
EmployeePreLogListVo
getListByEmpPreId
(
String
empPreId
)
{
EmployeePreLogListVo
vo
=
new
EmployeePreLogListVo
();
List
<
TEmployeeInsurancePre
>
preList
=
baseMapper
.
getListByEmpPreId
(
empPreId
);
if
(
Common
.
isNotNull
(
preList
)
&&
!
preList
.
isEmpty
())
{
preList
.
forEach
(
e
->
e
.
setErrorTime
(
null
));
}
vo
.
setPreList
(
preList
);
return
vo
;
}
...
...
@@ -901,6 +936,13 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
EmployeePreInsuranceListVo
vo
=
new
EmployeePreInsuranceListVo
();
List
<
TInsurancePreDetail
>
preList
=
preDetailService
.
list
(
Wrappers
.<
TInsurancePreDetail
>
query
().
lambda
()
.
eq
(
TInsurancePreDetail:
:
getRegisterId
,
empPreId
));
if
(
Common
.
isNotNull
(
preList
)
&&
!
preList
.
isEmpty
())
{
preList
.
forEach
(
e
->
{
e
.
setDisTime
(
DateUtil
.
convertToDateByLocalDateTime
(
e
.
getCreateTime
()));
e
.
setCreateTime
(
null
);
e
.
setUpdateTime
(
null
);
});
}
vo
.
setPreList
(
preList
);
return
vo
;
}
...
...
yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/insurance/impl/TInsuranceDetailServiceImpl.java
View file @
4593f2a3
This diff is collapsed.
Click to expand it.
yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/insurances/TInsuranceDetailMapper.xml
View file @
4593f2a3
...
...
@@ -614,7 +614,9 @@
a.CREATE_NAME as createName,
a.UNIT_NAME as unitName,
a.UNIT_NO as unitNo,
a.IS_ADRESS as isAdress
a.IS_ADRESS as isAdress,
a.INSURANCE_PROVINCE_NAME as insuranceProvinceName,
a.INSURANCE_CITY_NAME as insuranceCityName
from
t_insurance_detail a
where
...
...
yifu-job/yifu-job-api/src/main/java/com/yifu/cloud/plus/v1/job/compont/ArchiveTask.java
View file @
4593f2a3
...
...
@@ -109,4 +109,18 @@ public class ArchiveTask {
log
.
info
(
"-------------每日刷新运营风险管控数据-定时任务开始------------"
);
}
/**
* @Author fxj
* @Description 每天10点刷新合同续签待办信息到微信
* @Date 16:06 2025/8/15
* @Param
* @return
**/
public
void
everyDaypushContractAlertToWx
()
{
log
.
info
(
"-------------每天刷新合同续签待办信息到微信-定时任务开始------------"
);
HttpDaprUtil
.
invokeMethodPost
(
daprArchivesProperties
.
getAppUrl
(),
daprArchivesProperties
.
getAppId
(),
"/tempcontractalert/inner/pushContractAlertToWx"
,
""
,
Void
.
class
,
SecurityConstants
.
FROM_IN
);
log
.
info
(
"-------------每天刷新合同续签待待办信息到微信-定时任务结束------------"
);
}
}
\ No newline at end of file
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