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
1e321e22
Commit
1e321e22
authored
Jun 17, 2025
by
huyuchen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
huych-合同自动化代码提交
parent
fea597b5
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
159 additions
and
44 deletions
+159
-44
TEmployeeContractPre.java
...ud/plus/v1/yifu/archives/entity/TEmployeeContractPre.java
+2
-2
TRegisteWarningEmployee.java
...plus/v1/yifu/archives/entity/TRegisteWarningEmployee.java
+1
-1
TEmployeeContractPreExportVo.java
...lus/v1/yifu/archives/vo/TEmployeeContractPreExportVo.java
+7
-9
TGzOfferInfoVo.java
...m/yifu/cloud/plus/v1/yifu/archives/vo/TGzOfferInfoVo.java
+7
-0
TGzOfferInfoController.java
...s/v1/yifu/archives/controller/TGzOfferInfoController.java
+13
-0
TGzOfferInfoMapper.java
...loud/plus/v1/yifu/archives/mapper/TGzOfferInfoMapper.java
+9
-0
TGzOfferInfoService.java
...ud/plus/v1/yifu/archives/service/TGzOfferInfoService.java
+3
-2
TGzOfferInfoServiceImpl.java
...1/yifu/archives/service/impl/TGzOfferInfoServiceImpl.java
+91
-16
TEmployeeContractPreMapper.xml
.../src/main/resources/mapper/TEmployeeContractPreMapper.xml
+8
-14
TGzOfferInfoMapper.xml
...ives-biz/src/main/resources/mapper/TGzOfferInfoMapper.xml
+18
-0
No files found.
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/TEmployeeContractPre.java
View file @
1e321e22
...
...
@@ -123,10 +123,10 @@ public class TEmployeeContractPre extends BaseEntity {
private
String
contractTerm
;
@Schema
(
description
=
"合同年限-年"
)
private
String
contractDuratioYear
;
private
String
contractDuratio
n
Year
;
@Schema
(
description
=
"合同年限-月"
)
private
String
contractDuratioMonth
;
private
String
contractDuratio
n
Month
;
@Schema
(
description
=
"合同试用期开始时间"
)
private
Date
periodStart
;
...
...
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/entity/TRegisteWarningEmployee.java
View file @
1e321e22
...
...
@@ -105,7 +105,7 @@ public class TRegisteWarningEmployee extends BaseEntity {
@Schema
(
description
=
"短信回执内容"
)
private
String
message
;
@Schema
(
description
=
"类型 1 待建档 2 带完整"
)
@Schema
(
description
=
"类型 1 待建档 2 带完整
3Offer收集短信
"
)
private
String
type
;
}
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TEmployeeContractPreExportVo.java
View file @
1e321e22
...
...
@@ -2,12 +2,10 @@ package com.yifu.cloud.plus.v1.yifu.archives.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
java.io.Serializable
;
import
java.util.Date
;
/**
* 合同待签订任务记录表
...
...
@@ -16,7 +14,7 @@ import java.util.Date;
* @date 2025-06-11 14:15:53
*/
@Data
public
class
TEmployeeContractPreExportVo
extends
RowIndex
implements
Serializable
{
public
class
TEmployeeContractPreExportVo
implements
Serializable
{
@ExcelAttribute
(
name
=
"项目名称"
)
...
...
@@ -52,10 +50,10 @@ public class TEmployeeContractPreExportVo extends RowIndex implements Serializab
/**
* 入职日期
*/
@ExcelAttribute
(
name
=
"入职日期"
,
isDate
=
true
)
@ExcelAttribute
(
name
=
"入职日期"
)
@Schema
(
description
=
"入职日期"
)
@ExcelProperty
(
"入职日期"
)
private
Date
joinLeaveDate
;
private
String
joinLeaveDate
;
@ExcelAttribute
(
name
=
"合同类型"
)
@Schema
(
description
=
"合同类型"
)
...
...
@@ -85,17 +83,17 @@ public class TEmployeeContractPreExportVo extends RowIndex implements Serializab
/**
* 预计确认时间
*/
@ExcelAttribute
(
name
=
"预计确认时间"
,
isDate
=
true
)
@ExcelAttribute
(
name
=
"预计确认时间"
)
@Schema
(
description
=
"预计确认时间"
)
@ExcelProperty
(
"预计确认时间"
)
private
Date
expectedConfirmTime
;
private
String
expectedConfirmTime
;
/**
* 预计发起时间
*/
@ExcelAttribute
(
name
=
"预计发起时间"
,
isDate
=
true
)
@ExcelAttribute
(
name
=
"预计发起时间"
)
@Schema
(
description
=
"预计发起时间"
)
@ExcelProperty
(
"预计发起时间"
)
private
Date
expectedCollectionTime
;
private
String
expectedCollectionTime
;
@ExcelAttribute
(
name
=
"状态"
)
@Schema
(
description
=
"状态"
)
...
...
yifu-archives/yifu-archives-api/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/vo/TGzOfferInfoVo.java
View file @
1e321e22
...
...
@@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import
lombok.Data
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* 瓜子offer信息接收表
...
...
@@ -46,4 +47,10 @@ public class TGzOfferInfoVo extends TGzOfferInfo {
*/
private
LocalDate
createTimeEnd
;
/**
* 批量发送短信使用
*/
@Schema
(
description
=
"选中ID,id数组"
)
private
List
<
String
>
idList
;
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/controller/TGzOfferInfoController.java
View file @
1e321e22
...
...
@@ -127,4 +127,17 @@ public class TGzOfferInfoController {
return
tGzOfferInfoService
.
importDiy
(
file
.
getInputStream
());
}
/**
* 新增瓜子offer信息接收表
* @param tGzOfferInfo 瓜子offer信息接收表
* @return R
*/
@Operation
(
summary
=
"单个/批量发送Offer提醒"
,
description
=
"单个/批量发送Offer提醒"
)
@SysLog
(
"单个/批量发送Offer提醒"
)
@PostMapping
(
"/sendOfferAlert"
)
public
R
<
Boolean
>
sendOfferAlert
(
@RequestBody
TGzOfferInfoVo
tGzOfferInfo
)
{
return
tGzOfferInfoService
.
sendOfferAlert
(
tGzOfferInfo
);
}
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/mapper/TGzOfferInfoMapper.java
View file @
1e321e22
...
...
@@ -25,6 +25,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 瓜子offer信息接收表
*
...
...
@@ -39,4 +41,11 @@ public interface TGzOfferInfoMapper extends BaseMapper<TGzOfferInfo> {
* @return IPage<TGzOfferInfoVo>
*/
IPage
<
TGzOfferInfoVo
>
getTGzOfferInfoPage
(
Page
<
TGzOfferInfoVo
>
page
,
@Param
(
"tGzOfferInfo"
)
TGzOfferInfoVo
tGzOfferInfo
);
/**
* 瓜子offer信息接收表简单分页查询
* @param tGzOfferInfo 瓜子offer信息接收表
* @return IPage<TGzOfferInfoVo>
*/
List
<
TGzOfferInfoVo
>
getTGzOfferInfoSendAlertList
(
@Param
(
"tGzOfferInfo"
)
TGzOfferInfoVo
tGzOfferInfo
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/TGzOfferInfoService.java
View file @
1e321e22
...
...
@@ -19,10 +19,9 @@ package com.yifu.cloud.plus.v1.yifu.archives.service;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TGzOfferInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
...
...
@@ -62,4 +61,6 @@ public interface TGzOfferInfoService extends IService<TGzOfferInfo> {
R
<
List
<
ErrorMessage
>>
importDiy
(
InputStream
inputStream
);
R
sendOfferAlert
(
TGzOfferInfoVo
tGzOfferInfo
);
}
yifu-archives/yifu-archives-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/archives/service/impl/TGzOfferInfoServiceImpl.java
View file @
1e321e22
...
...
@@ -22,26 +22,25 @@ 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.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
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.admin.api.entity.SysDict
;
import
com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysOutEmpFormInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TGzOfferInfo
;
import
com.yifu.cloud.plus.v1.yifu.archives.entity.TRegisteWarningEmployee
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.EmployeeRegistrationPreMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.mapper.TGzOfferInfoMapper
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TGzOfferInfoService
;
import
com.yifu.cloud.plus.v1.yifu.archives.service.TRegisteWarningEmployeeService
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.MessageTempleteVo
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoImportVo
;
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.ErrorMessage
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.R
;
import
com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo
;
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.R
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.*
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.alisms.AliSmsResult
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.alisms.RegistParamVo
;
import
com.yifu.cloud.plus.v1.yifu.common.core.util.alisms.YiFuSmsUtil
;
import
com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser
;
import
com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils
;
import
lombok.RequiredArgsConstructor
;
...
...
@@ -50,14 +49,9 @@ import org.apache.commons.lang.ArrayUtils;
import
org.springframework.stereotype.Service
;
import
java.io.InputStream
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* 瓜子offer信息接收表
...
...
@@ -70,6 +64,10 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public
class
TGzOfferInfoServiceImpl
extends
ServiceImpl
<
TGzOfferInfoMapper
,
TGzOfferInfo
>
implements
TGzOfferInfoService
{
private
final
TRegisteWarningEmployeeService
employeeService
;
private
final
EmployeeRegistrationPreMapper
registrationPreMapper
;
/**
* 瓜子offer信息接收表简单分页查询
* @param tGzOfferInfo 瓜子offer信息接收表
...
...
@@ -261,6 +259,83 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
}
return
R
.
ok
(
errorMessageList
);
}
@Override
public
R
sendOfferAlert
(
TGzOfferInfoVo
tGzOfferInfo
)
{
//获取所有满足条件的未发送offer提醒的数据
if
(
Common
.
isNotNull
(
tGzOfferInfo
))
{
tGzOfferInfo
.
setOfferSendStatus
(
CommonConstants
.
ONE_STRING
);
List
<
TGzOfferInfoVo
>
offerList
=
baseMapper
.
getTGzOfferInfoSendAlertList
(
tGzOfferInfo
);
if
(
Common
.
isNotNull
(
offerList
)
&&
!
offerList
.
isEmpty
())
{
if
(
Common
.
isNotNull
(
offerList
)
&&
offerList
.
size
()
>
200
)
{
return
R
.
failed
(
"短信批量发送单次最多两百条"
);
}
//获取短信待发放和信息待填写的数据
List
<
String
>
errorList
=
new
ArrayList
<>();
List
<
RegistParamVo
>
params
=
new
ArrayList
<>();
List
<
String
>
phones
=
new
ArrayList
<>();
for
(
TGzOfferInfoVo
sendVo
:
offerList
)
{
RegistParamVo
paramVo
=
new
RegistParamVo
();
AliSmsResult
res
;
paramVo
.
setName
(
sendVo
.
getName
());
phones
.
add
(
sendVo
.
getPhone
());
//生成短信发送的记录
TRegisteWarningEmployee
smsEmployee
=
new
TRegisteWarningEmployee
();
smsEmployee
.
setEmpName
(
sendVo
.
getName
());
smsEmployee
.
setEmpPhone
(
sendVo
.
getPhone
());
smsEmployee
.
setEmpIdcard
(
sendVo
.
getNationalId
());
smsEmployee
.
setSendDate
(
DateUtil
.
getCurrentDateTime
());
smsEmployee
.
setSendMethod
(
CommonConstants
.
ONE_INT
);
smsEmployee
.
setWarningId
(
sendVo
.
getId
().
toString
());
smsEmployee
.
setType
(
CommonConstants
.
THREE_STRING
);
employeeService
.
save
(
smsEmployee
);
params
.
add
(
paramVo
);
res
=
sendMessage
(
phones
,
params
);
if
(
null
!=
res
&&
null
!=
res
.
getBizId
())
{
//发送成功
smsEmployee
.
setBizId
(
res
.
getBizId
());
smsEmployee
.
setMessage
(
res
.
getMessage
());
employeeService
.
updateById
(
smsEmployee
);
//更新Offer信息接收表发送状态为已发送
LambdaUpdateWrapper
<
TGzOfferInfo
>
updateWrapper
=
new
LambdaUpdateWrapper
<>();
updateWrapper
.
in
(
TGzOfferInfo:
:
getId
,
sendVo
.
getId
())
.
in
(
TGzOfferInfo:
:
getOfferSendStatus
,
CommonConstants
.
ONE_STRING
)
.
set
(
TGzOfferInfo:
:
getOfferSendStatus
,
CommonConstants
.
ZERO_STRING
);
// 执行更新操作
this
.
update
(
updateWrapper
);
}
else
{
smsEmployee
.
setMessage
(
"短信发送失败"
);
employeeService
.
updateById
(
smsEmployee
);
errorList
.
add
(
"短信发送失败"
);
}
}
if
(!
errorList
.
isEmpty
()
&&
errorList
.
stream
().
allMatch
(
e
->
e
.
equals
(
"短信发送失败"
)))
{
return
R
.
ok
(
"短信发送失败"
);
}
return
R
.
ok
();
}
else
{
return
R
.
failed
(
CommonConstants
.
NO_DATA_TO_HANDLE
);
}
}
return
R
.
failed
(
CommonConstants
.
PARAM_IS_NOT_ERROR
);
}
/**
* @Description: 批量发送短信
* @Author: huych
* @Date: 2025/3/18 17:02
* @return:
**/
public
AliSmsResult
sendMessage
(
List
<
String
>
phones
,
List
<
RegistParamVo
>
params
)
{
List
<
String
>
signNames
=
new
ArrayList
<>();
MessageTempleteVo
templeteVo
=
registrationPreMapper
.
selectTempleteVo
(
CommonConstants
.
TWO_STRING
);
for
(
int
i
=
0
;
i
<
phones
.
size
();
i
++){
signNames
.
add
(
templeteVo
.
getSignName
());
}
return
YiFuSmsUtil
.
sendRegistBatchSms
(
phones
,
params
,
signNames
,
templeteVo
.
getTempleteCode
());
}
private
void
importTDispatchExportLog
(
List
<
TGzOfferInfoImportVo
>
excelVOList
,
List
<
ErrorMessage
>
errorMessageList
)
{
// 个性化校验逻辑
ErrorMessage
errorMsg
;
...
...
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TEmployeeContractPreMapper.xml
View file @
1e321e22
...
...
@@ -30,8 +30,8 @@
<result
property=
"contractStart"
column=
"contract_start"
/>
<result
property=
"contractEnd"
column=
"contract_end"
/>
<result
property=
"situation"
column=
"situation"
/>
<result
property=
"contractDuratioYear"
column=
"contract_duration_year"
/>
<result
property=
"contractDuratioMonth"
column=
"contract_duration_month"
/>
<result
property=
"contractDuratio
n
Year"
column=
"contract_duration_year"
/>
<result
property=
"contractDuratio
n
Month"
column=
"contract_duration_month"
/>
<result
property=
"contractTerm"
column=
"CONTRACT_TERM"
/>
<result
property=
"periodStart"
column=
"period_start"
/>
<result
property=
"periodEnd"
column=
"period_end"
/>
...
...
@@ -233,11 +233,11 @@
<if
test=
"tEmployeeContractPre.situation != null and tEmployeeContractPre.situation.trim() != ''"
>
AND a.situation = #{tEmployeeContractPre.situation}
</if>
<if
test=
"tEmployeeContractPre.contractDuratio
Year != null and tEmployeeContractPre.contractDuratio
Year.trim() != ''"
>
AND a.contract_duration_year = #{tEmployeeContractPre.contractDuratioYear}
<if
test=
"tEmployeeContractPre.contractDuratio
nYear != null and tEmployeeContractPre.contractDuration
Year.trim() != ''"
>
AND a.contract_duration_year = #{tEmployeeContractPre.contractDuratio
n
Year}
</if>
<if
test=
"tEmployeeContractPre.contractDuratio
Month != null and tEmployeeContractPre.contractDuratio
Month.trim() != ''"
>
AND a.contract_duration_month = #{tEmployeeContractPre.contractDuratioMonth}
<if
test=
"tEmployeeContractPre.contractDuratio
nMonth != null and tEmployeeContractPre.contractDuration
Month.trim() != ''"
>
AND a.contract_duration_month = #{tEmployeeContractPre.contractDuratio
n
Month}
</if>
<if
test=
"tEmployeeContractPre.periodStart != null"
>
AND a.period_start = #{tEmployeeContractPre.periodStart}
...
...
@@ -392,14 +392,8 @@
a.emp_idcard,
a.emp_phone,
a.position,
a.join_leave_date,
CASE WHEN a.contract_type=0 THEN "标准合同"
WHEN a.contract_type =1 THEN "劳务协议"
WHEN a.contract_type =2 THEN "实习协议"
WHEN a.contract_type =3 THEN "劳务派遣合同"
WHEN a.contract_type =4 THEN "非全日制"
WHEN a.contract_type =5 THEN "其他合同"
ELSE a.contract_type END as contract_type,
DATE_FORMAT(a.join_leave_date,'%Y-%m-%d') join_leave_date,
a.contract_type,
a.signatory,
a.customer_username,
if(a.sign_type = '0','线下签','电子签') sign_type,
...
...
yifu-archives/yifu-archives-biz/src/main/resources/mapper/TGzOfferInfoMapper.xml
View file @
1e321e22
...
...
@@ -118,6 +118,12 @@
<if
test=
"tGzOfferInfo.id != null"
>
AND a.id = #{tGzOfferInfo.id}
</if>
<if
test=
"tGzOfferInfo.idList != null"
>
AND a.id in
<foreach
item=
"idStr"
index=
"index"
collection=
"tGzOfferInfo.idList"
open=
"("
separator=
","
close=
")"
>
#{idStr}
</foreach>
</if>
<if
test=
"tGzOfferInfo.bizId != null and tGzOfferInfo.bizId.trim() != ''"
>
AND a.biz_id = #{tGzOfferInfo.bizId}
</if>
...
...
@@ -252,4 +258,16 @@
</where>
ORDER by a.create_time desc,a.id desc
</select>
<!--tGzOfferInfo待发送短信数据查询-->
<select
id=
"getTGzOfferInfoSendAlertList"
resultMap=
"tGzOfferInfoMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM t_gz_offer_info a
<where>
a.del_flag = '0'
<include
refid=
"tGzOfferInfo_where"
/>
</where>
ORDER by a.create_time desc,a.id desc
</select>
</mapper>
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