Commit 162603a0 authored by huyuchen's avatar huyuchen

huych-合同自动化代码提交

parent 501c23f0
...@@ -105,7 +105,7 @@ public class TRegisteWarningEmployee extends BaseEntity { ...@@ -105,7 +105,7 @@ public class TRegisteWarningEmployee extends BaseEntity {
@Schema(description = "短信回执内容") @Schema(description = "短信回执内容")
private String message; private String message;
@Schema(description = "类型 1 待建档 2 带完整 3Offer收集短信") @Schema(description = "类型 1 待建档 2 带完整 3瓜子发送Offer提醒 4瓜子发送收集短信 5瓜子合同下载短信")
private String type; private String type;
} }
...@@ -50,7 +50,7 @@ public class TGzOfferInfoVo extends TGzOfferInfo { ...@@ -50,7 +50,7 @@ public class TGzOfferInfoVo extends TGzOfferInfo {
/** /**
* 批量发送短信使用 * 批量发送短信使用
*/ */
@Schema(description = "选中ID,id数组") @Schema(description = "瓜子状态数组")
private List<String> idList; private List<String> statusList;
} }
...@@ -170,9 +170,8 @@ public class TGzOfferInfoController { ...@@ -170,9 +170,8 @@ public class TGzOfferInfoController {
return tGzOfferInfoService.importDiy(file.getInputStream()); return tGzOfferInfoService.importDiy(file.getInputStream());
} }
/** /**
* 新增瓜子offer信息接收表 * 单个/批量发送Offer提醒
* @param tGzOfferInfo 瓜子offer信息接收表 * @param tGzOfferInfo 瓜子offer信息接收表
* @return R * @return R
*/ */
...@@ -183,6 +182,30 @@ public class TGzOfferInfoController { ...@@ -183,6 +182,30 @@ public class TGzOfferInfoController {
return tGzOfferInfoService.sendOfferAlert(tGzOfferInfo); return tGzOfferInfoService.sendOfferAlert(tGzOfferInfo);
} }
/**
* 单个/批量发送收集短信
* @param tGzOfferInfo 瓜子offer信息接收表
* @return R
*/
@Operation(summary = "单个/批量发送收集短信", description = "单个/批量发送收集短信")
@SysLog("单个/批量发送收集短信" )
@PostMapping("/sendCollectOfferMsg")
public R<String> sendCollectOfferMsg(@RequestBody TGzOfferInfoVo tGzOfferInfo) {
return tGzOfferInfoService.sendCollectOfferMsg(tGzOfferInfo);
}
/**
* 单个/批量发送合同下载短信
* @param tGzOfferInfo 瓜子offer信息接收表
* @return R
*/
@Operation(summary = "单个/批量发送合同下载短信", description = "单个/批量发送合同下载短信")
@SysLog("单个/批量发送合同下载短信" )
@PostMapping("/sendContractDownloadOfferMsg")
public R<String> sendContractDownloadOfferMsg(@RequestBody TGzOfferInfoVo tGzOfferInfo) {
return tGzOfferInfoService.sendContractDownloadOfferMsg(tGzOfferInfo);
}
/** /**
* 社保导出花名册记录表 批量导出 * 社保导出花名册记录表 批量导出
* @author hgw * @author hgw
......
...@@ -23,7 +23,6 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -23,7 +23,6 @@ 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.entity.TGzOfferInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoExportSearchVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoExportSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo; import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzOfferInfoVo;
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.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
...@@ -99,6 +98,10 @@ public interface TGzOfferInfoService extends IService<TGzOfferInfo> { ...@@ -99,6 +98,10 @@ public interface TGzOfferInfoService extends IService<TGzOfferInfo> {
R<String> sendOfferAlert(TGzOfferInfoVo tGzOfferInfo); R<String> sendOfferAlert(TGzOfferInfoVo tGzOfferInfo);
R<String> sendCollectOfferMsg(TGzOfferInfoVo tGzOfferInfo);
R<String> sendContractDownloadOfferMsg(TGzOfferInfoVo tGzOfferInfo);
/** /**
* @Description: 导出列表 * @Description: 导出列表
* @Author: hgw * @Author: hgw
......
...@@ -24,7 +24,6 @@ import com.alibaba.excel.context.AnalysisContext; ...@@ -24,7 +24,6 @@ import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.holder.ReadRowHolder; import com.alibaba.excel.read.metadata.holder.ReadRowHolder;
import com.alibaba.excel.util.ListUtils; import com.alibaba.excel.util.ListUtils;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -37,22 +36,16 @@ import com.yifu.cloud.plus.v1.yifu.archives.mapper.EmployeeRegistrationPreMapper ...@@ -37,22 +36,16 @@ 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.mapper.TGzOfferInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzOfferInfoService; 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.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.archives.vo.TGzOfferInfoVo;
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.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.archives.vo.*; import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CacheConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute; import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*; 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.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils; import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.social.entity.TDispatchExportLog;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.ArrayUtils;
...@@ -69,6 +62,8 @@ import java.util.ArrayList; ...@@ -69,6 +62,8 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* 瓜子offer信息接收表 * 瓜子offer信息接收表
...@@ -352,7 +347,6 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz ...@@ -352,7 +347,6 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
return R.ok(errorMessageList); return R.ok(errorMessageList);
} }
@Override @Override
public R<String> sendOfferAlert(TGzOfferInfoVo tGzOfferInfo) { public R<String> sendOfferAlert(TGzOfferInfoVo tGzOfferInfo) {
//获取所有满足条件的未发送offer提醒的数据 //获取所有满足条件的未发送offer提醒的数据
...@@ -383,7 +377,7 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz ...@@ -383,7 +377,7 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
smsEmployee.setType(CommonConstants.THREE_STRING); smsEmployee.setType(CommonConstants.THREE_STRING);
employeeService.save(smsEmployee); employeeService.save(smsEmployee);
params.add(paramVo); params.add(paramVo);
res = sendMessage(phones, params); res = sendMessage(phones, params,CommonConstants.TWO_STRING);
if (null != res && null != res.getBizId()) { if (null != res && null != res.getBizId()) {
//发送成功 //发送成功
smsEmployee.setBizId(res.getBizId()); smsEmployee.setBizId(res.getBizId());
...@@ -391,19 +385,80 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz ...@@ -391,19 +385,80 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
employeeService.updateById(smsEmployee); employeeService.updateById(smsEmployee);
//更新Offer信息接收表发送状态为已发送 //更新Offer信息接收表发送状态为已发送
LambdaUpdateWrapper<TGzOfferInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<TGzOfferInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(TGzOfferInfo::getId, sendVo.getId()) updateWrapper.eq(TGzOfferInfo::getId, sendVo.getId())
.in(TGzOfferInfo::getOfferSendStatus, CommonConstants.ONE_STRING) .eq(TGzOfferInfo::getOfferSendStatus, CommonConstants.ONE_STRING)
.set(TGzOfferInfo::getOfferSendStatus, CommonConstants.ZERO_STRING); .set(TGzOfferInfo::getOfferSendStatus, CommonConstants.ZERO_STRING);
// 执行更新操作 // 执行更新操作
this.update(updateWrapper); this.update(updateWrapper);
} else { } else {
smsEmployee.setMessage("短信发送失败"); 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);
}
@Override
public R<String> sendCollectOfferMsg(TGzOfferInfoVo tGzOfferInfo) {
//获取所有满足条件的信息待收集、候选人填写信息的offer提醒的数据
if (Common.isNotNull(tGzOfferInfo)) {
tGzOfferInfo.setStatusList(Stream.of("9","98").collect(Collectors.toList()));
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.FOUR_STRING);
employeeService.save(smsEmployee);
paramVo.setLink(smsEmployee.getId().toString());
params.add(paramVo);
res = sendMessage(phones, params,CommonConstants.THREE_STRING);
if (null != res && null != res.getBizId()) {
//发送成功
smsEmployee.setBizId(res.getBizId());
smsEmployee.setMessage(res.getMessage());
employeeService.updateById(smsEmployee);
//如果状态是信息待收集更新Offer状态为候选人填写信息
LambdaUpdateWrapper<TGzOfferInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TGzOfferInfo::getId, sendVo.getId())
.eq(TGzOfferInfo::getOfferStatus, "98")
.set(TGzOfferInfo::getOfferStatus, "9");
// 执行更新操作
this.update(updateWrapper);
} else {
smsEmployee.setMessage("瓜子发送收集短信失败");
employeeService.updateById(smsEmployee); employeeService.updateById(smsEmployee);
errorList.add("短信发送失败"); errorList.add("瓜子发送收集短信失败");
} }
} }
if (!errorList.isEmpty() && errorList.stream().allMatch(e->e.equals("短信发送失败"))) { if (!errorList.isEmpty() && errorList.stream().allMatch(e->e.equals("瓜子发送收集短信失败"))) {
return R.ok("短信发送失败"); return R.ok("瓜子发送收集短信失败");
} }
return R.ok(); return R.ok();
} else { } else {
...@@ -413,6 +468,58 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz ...@@ -413,6 +468,58 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR); return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
} }
@Override
public R<String> sendContractDownloadOfferMsg(TGzOfferInfoVo tGzOfferInfo) {
//获取所有满足条件的信息待收集、候选人填写信息的offer提醒的数据
if (Common.isNotNull(tGzOfferInfo)) {
tGzOfferInfo.setOfferStatus("99");
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.FIVE_STRING);
employeeService.save(smsEmployee);
params.add(paramVo);
res = sendMessage(phones, params,CommonConstants.FOUR_STRING);
if (null != res && null != res.getBizId()) {
//发送成功
smsEmployee.setBizId(res.getBizId());
smsEmployee.setMessage(res.getMessage());
employeeService.updateById(smsEmployee);
} 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: 批量发送短信 * @Description: 批量发送短信
...@@ -420,9 +527,9 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz ...@@ -420,9 +527,9 @@ public class TGzOfferInfoServiceImpl extends ServiceImpl<TGzOfferInfoMapper, TGz
* @Date: 2025/3/18 17:02 * @Date: 2025/3/18 17:02
* @return: * @return:
**/ **/
public AliSmsResult sendMessage (List<String> phones,List<RegistParamVo> params ) { public AliSmsResult sendMessage (List<String> phones,List<RegistParamVo> params,String type ) {
List<String> signNames = new ArrayList<>(); List<String> signNames = new ArrayList<>();
MessageTempleteVo templeteVo = registrationPreMapper.selectTempleteVo(CommonConstants.TWO_STRING); MessageTempleteVo templeteVo = registrationPreMapper.selectTempleteVo(type);
for (int i=0;i<phones.size();i++){ for (int i=0;i<phones.size();i++){
signNames.add(templeteVo.getSignName()); signNames.add(templeteVo.getSignName());
} }
......
...@@ -118,12 +118,6 @@ ...@@ -118,12 +118,6 @@
<if test="tGzOfferInfo.id != null"> <if test="tGzOfferInfo.id != null">
AND a.id = #{tGzOfferInfo.id} AND a.id = #{tGzOfferInfo.id}
</if> </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() != ''"> <if test="tGzOfferInfo.bizId != null and tGzOfferInfo.bizId.trim() != ''">
AND a.biz_id = #{tGzOfferInfo.bizId} AND a.biz_id = #{tGzOfferInfo.bizId}
</if> </if>
...@@ -143,6 +137,12 @@ ...@@ -143,6 +137,12 @@
<if test="tGzOfferInfo.offerSendStatus != null and tGzOfferInfo.offerSendStatus.trim() != ''"> <if test="tGzOfferInfo.offerSendStatus != null and tGzOfferInfo.offerSendStatus.trim() != ''">
AND a.offer_send_status = #{tGzOfferInfo.offerSendStatus} AND a.offer_send_status = #{tGzOfferInfo.offerSendStatus}
</if> </if>
<if test="tGzOfferInfo.statusList != null and tGzOfferInfo.statusList.size() > 0">
AND a.offer_status in
<foreach item="item" index="index" collection="tGzOfferInfo.statusList" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="tGzOfferInfo.updateBy != null and tGzOfferInfo.updateBy.trim() != ''"> <if test="tGzOfferInfo.updateBy != null and tGzOfferInfo.updateBy.trim() != ''">
AND a.update_by = #{tGzOfferInfo.updateBy} AND a.update_by = #{tGzOfferInfo.updateBy}
</if> </if>
......
...@@ -183,7 +183,6 @@ public class THolidayInfoController { ...@@ -183,7 +183,6 @@ public class THolidayInfoController {
public R getInitBeforeOrAfterWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) { public R getInitBeforeOrAfterWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) {
return R.ok(tHolidayInfoService.getInitBeforeOrAfterWorkDay(vo)); return R.ok(tHolidayInfoService.getInitBeforeOrAfterWorkDay(vo));
} }
/** /**
* @Author huyc * @Author huyc
* @Description 商险派单预计派单日期使用:查询日期的前一个/后一个工作日 * @Description 商险派单预计派单日期使用:查询日期的前一个/后一个工作日
...@@ -193,7 +192,6 @@ public class THolidayInfoController { ...@@ -193,7 +192,6 @@ public class THolidayInfoController {
public R selectBeforeOrAfterWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) { public R selectBeforeOrAfterWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) {
return R.ok(tHolidayInfoService.selectBeforeOrAfterWorkDay(vo)); return R.ok(tHolidayInfoService.selectBeforeOrAfterWorkDay(vo));
} }
/** /**
* @Author huyc * @Author huyc
* @Description 商险派单预计派单日期使用:查询日期的前一个/后一个工作日 * @Description 商险派单预计派单日期使用:查询日期的前一个/后一个工作日
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment