Commit e3e335cb authored by huyuchen's avatar huyuchen

huych-入职登记商险待办提交

parent 6bbfd057
......@@ -2,6 +2,7 @@ package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -119,4 +120,7 @@ public class EmployeeRegistrationPreVo implements Serializable {
@Schema(description = "身份证合集")
private List<String> idcardList;
@Schema(description = "商险待派单信息集合")
private List<TEmployeeInsurancePreVo> employeeInsurancePreVos;
}
......@@ -117,6 +117,12 @@
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yifu.cloud.plus.v1</groupId>
<artifactId>yifu-insurances-api</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!-- 二维码生成JAR结束 -->
</dependencies>
......
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprInsurancesProperties;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo;
import lombok.extern.log4j.Log4j2;
......@@ -31,4 +34,16 @@ public class InsuranceDaprUtil {
, Object.class, SecurityConstants.FROM_IN);
}
/**
* @Author huyc
* @Description 新增商险待购买信息
* @Date 14:34 2025/4/3
* @Param
* @return
**/
public R<Boolean> saveInsurancePreInfo(EmployeeRegistrationPreVo preVo) {
return HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId(),
"/temployeeinsurancepre/inner/saveInsurancePreInfo", JSON.toJSONString(preVo), Boolean.class, SecurityConstants.FROM_IN);
}
}
......@@ -35,9 +35,11 @@ import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.InsuranceDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.util.ValidityUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -49,6 +51,7 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -82,6 +85,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
@Autowired
private UpmsDaprUtils upmsDaprUtils;
@Autowired
private InsuranceDaprUtil insuranceDaprUtil;
private final TOperationLogService logService;
/**
......@@ -557,9 +563,20 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
baseMapper.updateById(registration);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING, RegistConstants.CONFIRM_SUBMIT, LocalDateTime.now(),
user.getNickname(), null);
try {
//生成档案待建档数据
initRegistPreInfo(registration,preVo, user);
initRegistPreInfo(registration, preVo, user, CommonConstants.ZERO_STRING);
archivesDaprUtil.saveRegistPreInfo(preVo);
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
initInsruancePreInfo(registration, insurancePreVo, user, CommonConstants.ZERO_STRING);
}
insuranceDaprUtil.saveInsurancePreInfo(preVo);
}
} catch (Exception e) {
log.error("执行异常", e);
}
return R.ok();
}
......@@ -612,9 +629,20 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
baseMapper.updateById(registration);
logService.saveLog(registration.getId(), CommonConstants.ZERO_STRING, RegistConstants.CONFIRM_SUBMIT, LocalDateTime.now(),
user.getNickname(), null);
try {
//生成档案待建档数据
initRegistPreInfo(registration, preVo, user);
initRegistPreInfo(registration, preVo, user, CommonConstants.ZERO_STRING);
archivesDaprUtil.saveRegistPreInfo(preVo);
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
initInsruancePreInfo(registration, insurancePreVo, user, CommonConstants.ZERO_STRING);
}
insuranceDaprUtil.saveInsurancePreInfo(preVo);
}
}catch (Exception e) {
log.error("执行异常", e);
}
}
if (!receiveVoList.isEmpty() && Common.isNotNull(receiveVoList)) {
return R.ok(receiveVoList);
......@@ -1060,9 +1088,10 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return false;
}
//数据初始化
private void initRegistPreInfo(EmployeeRegistration registration,EmployeeRegistrationPreVo preVo,YifuUser user) {
try {
//入职待建档数据初始化
private void initRegistPreInfo(EmployeeRegistration registration,EmployeeRegistrationPreVo preVo,
YifuUser user,String status) throws ParseException {
preVo.setId(registration.getId());
preVo.setCustomerUsername(registration.getCustomerUsername());
preVo.setCustomerUserLoginname(registration.getCustomerUserLoginname());
preVo.setDeptName(registration.getDeptName());
......@@ -1070,7 +1099,6 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.setDataSource(registration.getDataSource());
preVo.setPosition(registration.getPosition());
preVo.setJoinLeaveDate(registration.getJoinLeaveDate());
preVo.setProcessStatus(CommonConstants.ZERO_STRING);
preVo.setConfirmTime(DateUtil.getCurrentDateTime());
preVo.setDeptNo(registration.getDeptNo());
preVo.setConfirmUser(user.getNickname());
......@@ -1082,12 +1110,34 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.setCreateName(user.getNickname());
preVo.setUpdateBy(user.getId());
preVo.setEmpIdcard(registration.getEmpIdcard());
preVo.setProcessStatus(status);
if (Common.isNotNull(preVo.getPushDate())) {
preVo.setExpectedCollectionTime(DateUtil.parseDate(DateUtil.dateToString(
registration.getJoinLeaveDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT) + " " + preVo.getPushDate(), DateUtil.DATETIME_PATTERN_MINUTE));
}
}catch (Exception e) {
log.error("执行异常", e);
}
//商险待购买数据初始化
private void initInsruancePreInfo(EmployeeRegistration registration,TEmployeeInsurancePreVo preVo,
YifuUser user,String status) throws ParseException {
preVo.setRegisterId(registration.getId());
preVo.setCustomerUsername(registration.getCustomerUsername());
preVo.setCustomerUserLoginname(registration.getCustomerUserLoginname());
preVo.setDeptName(registration.getDeptName());
preVo.setDeptId(registration.getDeptId());
preVo.setDataSource(registration.getDataSource());
preVo.setPosition(registration.getPosition());
preVo.setJoinLeaveDate(registration.getJoinLeaveDate());
preVo.setDeptNo(registration.getDeptNo());
preVo.setEmpPhone(registration.getEmpPhone());
preVo.setEmployeeName(registration.getEmployeeName());
preVo.setEmpIdcard(registration.getEmpIdcard());
preVo.setCreateBy(user.getId());
preVo.setCreateName(user.getNickname());
preVo.setUpdateBy(user.getId());
preVo.setEmpIdcard(registration.getEmpIdcard());
preVo.setProcessStatus(status);
preVo.setExpectedCollectionTime(DateUtil.parseDate(DateUtil.dateToString(
registration.getJoinLeaveDate(), DateUtil.ISO_EXPANDED_DATE_FORMAT) + " 14:00", DateUtil.DATETIME_PATTERN_MINUTE));
}
}
......@@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
......@@ -60,16 +61,13 @@ public class TEmployeeInsurancePre extends BaseEntity {
private String deptId;
@Schema(description = "预计派单时间")
private Date expectedCollectionTime;
private LocalDateTime expectedCollectionTime;
@Schema(description = "登记人")
private String registUser;
@Schema(description = "登记时间")
private Date registTime;
@Schema(description = "最新的客服名称")
private String customerUsernameNew;
private LocalDateTime registTime;
@Schema(description = "保险公司名称")
private String insuranceCompanyName;
......
......@@ -112,14 +112,6 @@ public class TEmployeeInsurancePreVo implements Serializable {
@ExcelProperty("登记时间")
private Date registTime;
/**
* 最新的客服名称
*/
@ExcelAttribute(name = "最新的客服名称")
@Schema(description = "最新的客服名称")
@ExcelProperty("最新的客服名称")
private String customerUsernameNew;
/**
* 保险公司名称
*/
......@@ -176,6 +168,14 @@ public class TEmployeeInsurancePreVo implements Serializable {
@ExcelProperty("保单结束时间")
private Date policyEnd;
/**
* 保单号
*/
@ExcelAttribute(name = "保单号")
@Schema(description = "保单号")
@ExcelProperty("保单号")
private String policyNo;
/**
* 是否地市自购0是 1 否
*/
......@@ -264,4 +264,13 @@ public class TEmployeeInsurancePreVo implements Serializable {
@ExcelProperty("替换项目编码")
private String replaceDeptNo;
@Schema(description = "创建人-姓名")
private String createName;
@Schema(description = "创建人")
private String createBy;
@Schema(description = "更新人")
private String updateBy;
}
package com.yifu.cloud.plus.v1.yifu.insurances.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
@Configuration
public class TaskSchedulerConfig {
@Bean
public TaskScheduler taskScheduler() {
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
scheduler.setThreadNamePrefix("scheduled-task-insurances");
scheduler.initialize();
return scheduler;
}
}
......@@ -131,4 +131,5 @@ public class TEmployeeInsurancePreController {
public R batchDispatcherInsurance(@RequestBody List<String> idList) {
return tEmployeeInsurancePreService.batchDispatcherInsurance(idList);
}
}
package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
public interface ScheduleService {
void scheduleTask(TEmployeeInsurancePre record);
void executeTask(String aId);
}
......@@ -20,6 +20,7 @@ package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance;
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.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreSearchVo;
......@@ -62,4 +63,19 @@ public interface TEmployeeInsurancePreService extends IService<TEmployeeInsuranc
*/
R batchDispatcherInsurance(List<String> idList);
/**
* 新增商险待购买信息
* @param preVo
* @return
*/
Boolean saveInsurancePreInfo(EmployeeRegistrationPreVo preVo);
/**
* 更新商险待购买状态
* @param id
* @param status 状态
* @return
*/
void saveInsurancePreInfo(String id,String status);
}
package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.ScheduleService;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TEmployeeInsurancePreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.stereotype.Service;
import org.springframework.transaction.support.TransactionTemplate;
import javax.annotation.PostConstruct;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.List;
@Service
public class ScheduleServiceImpl implements ScheduleService {
@Autowired
private TEmployeeInsurancePreService insurancePreService;
@Autowired
private TaskScheduler taskScheduler;
@Autowired
private TransactionTemplate transactionTemplate;
// 应用启动时初始化未处理的任务
@PostConstruct
public void initSchedule() {
List<TEmployeeInsurancePre> records = insurancePreService.list(Wrappers.<TEmployeeInsurancePre>query()
.lambda().ge(TEmployeeInsurancePre::getExpectedCollectionTime,LocalDateTime.now())
.eq(TEmployeeInsurancePre::getProcessStatus,CommonConstants.ONE_STRING));
records.forEach(this::scheduleTask);
}
// 调度单个任务
@Override
public void scheduleTask(TEmployeeInsurancePre record) {
Instant triggerTime = record.getExpectedCollectionTime().atZone(ZoneId.systemDefault()).toInstant();
taskScheduler.schedule(() -> executeTask(record.getId()), triggerTime);
}
// 执行发送短信操作(事务内处理)
@Override
public void executeTask(String aId) {
transactionTemplate.execute(status -> {
List<String> idList = new ArrayList<>();
idList.add(aId);
insurancePreService.batchDispatcherInsurance(idList);
return null;
});
}
}
......@@ -8,29 +8,38 @@ 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.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainRegistListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
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.LocalDateTimeUtils;
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.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TEmployeeInsurancePreMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.ScheduleService;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TEmployeeInsurancePreService;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceDetailService;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -50,7 +59,13 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
@Autowired
private ArchivesDaprUtil archivesDaprUtil;
private final TInsuranceDetailService detailService;
@Autowired
@Lazy
private TInsuranceDetailService detailService;
@Autowired
@Lazy
private ScheduleService scheduleService;
/**
* 商险待办任务表简单分页查询
......@@ -226,6 +241,61 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
return R.ok(autoAddParamList);
}
@Override
@Transactional
public Boolean saveInsurancePreInfo(EmployeeRegistrationPreVo registrationPreVo) {
List<TEmployeeInsurancePreVo> employeeInsurancePreVos = registrationPreVo.getEmployeeInsurancePreVos();
TEmployeeInsurancePre preExit;
if (null != employeeInsurancePreVos && !employeeInsurancePreVos.isEmpty()) {
for (TEmployeeInsurancePreVo preVo : employeeInsurancePreVos) {
//判断是否存在商险待购买信息
preExit = baseMapper.selectOne(Wrappers.<TEmployeeInsurancePre>query().lambda()
.eq(TEmployeeInsurancePre::getEmpIdcard, preVo.getEmpIdcard())
.eq(TEmployeeInsurancePre::getDeptNo, preVo.getDeptNo())
.eq(TEmployeeInsurancePre::getBuyType, preVo.getBuyType())
.last(CommonConstants.LAST_ONE_SQL));
TEmployeeInsurancePre pre = new TEmployeeInsurancePre();
BeanUtils.copyProperties(preVo, pre);
if (Common.isNotNull(preVo.getExpectedCollectionTime())) {
pre.setExpectedCollectionTime(LocalDateTimeUtils.dateToLocalDateTime(preVo.getExpectedCollectionTime()));
}
if (Common.isNotNull(preExit)) {
pre.setId(preExit.getId());
baseMapper.insert(pre);
baseMapper.deleteById(preExit);
//todo 操作记录
} else {
baseMapper.insert(pre);
if (Common.isNotNull(pre.getExpectedCollectionTime())) {
// 事务提交后触发调度
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
LocalDateTime now = LocalDateTime.now();
if (pre.getExpectedCollectionTime().isEqual(now)) {
scheduleService.executeTask(pre.getId());
} else if (preVo.getExpectedCollectionTime().compareTo(LocalDateTimeUtils.convertLDTToDate(now)) > 0){
scheduleService.scheduleTask(pre);
}
}
});
}
}
}
}
return true;
}
@Override
public void saveInsurancePreInfo(String id, String status) {
if (Common.isNotNull(id) && Common.isNotNull(status)) {
TEmployeeInsurancePre preExit = baseMapper.selectById(id);
if (Common.isNotNull(preExit)) {
preExit.setProcessStatus(status);
baseMapper.updateById(preExit);
}
}
}
/**
* @Description: 获取前端客服的所有项目权限
......
package com.yifu.cloud.plus.v1.yifu.social.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 查询工作日vo
*
* @author huych
* @date 2025-04-07 10:30:13
*/
@Data
public class TEmployeeInsuranceWorkDayVo implements Serializable {
@Schema(description = "日期")
private Date registDate;
@Schema(description = "类型 1 前一个工作日 2 后一个工作日")
private String type;
}
......@@ -25,6 +25,7 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
......@@ -172,4 +173,14 @@ public class THolidayInfoController {
public void createHolidayInfo() {
tHolidayInfoService.createHolidayInfo();
}
/**
* @Author huyc
* @Description 查询日期的前一个/后一个工作日
* @Date 10:27 2025/4/7
**/
@PostMapping("/selectBeforeOrAfterWorkDay")
public R selectBeforeOrAfterWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) {
return tHolidayInfoService.selectBeforeOrAfterWorkDay(vo);
}
}
......@@ -23,6 +23,7 @@ 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.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
import javax.servlet.http.HttpServletResponse;
......@@ -49,4 +50,6 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
List<THolidayInfo> noPageDiy(THolidayInfoSearchVo searchVo);
void createHolidayInfo();
R selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo);
}
......@@ -17,7 +17,6 @@
package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
......@@ -33,12 +32,11 @@ 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.core.vo.YifuUser;
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.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.mapper.THolidayInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoVo;
import lombok.extern.log4j.Log4j2;
......@@ -50,10 +48,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author fxj
......@@ -284,4 +279,31 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
}
log.info(DateUtil.getYear(new Date())+"年假期表初始化完成:");
}
@Override
public R selectBeforeOrAfterWorkDay(TEmployeeInsuranceWorkDayVo vo) {
//获取当年所有假期配置表
Date date = new Date();
List<THolidayInfo> holidayInfos = baseMapper.selectList(Wrappers.<THolidayInfo>query().lambda()
.eq(THolidayInfo::getYear,DateUtil.getYear(date)));
Map<Date,String> holidayMap = new HashMap<>();
if (Common.isNotNull(holidayInfos)){
for (THolidayInfo h:holidayInfos){
holidayMap.put(h.getDate(),h.getDay());
}
}
getWorkDay(holidayMap,vo);
return R.ok(vo);
}
private void getWorkDay(Map<Date, String> holidayMap, TEmployeeInsuranceWorkDayVo vo) {
String day= holidayMap.get(vo.getRegistDate());
if (Common.isNotNull(day)){
vo.setRegistDate(DateUtil.addDayByDate(vo.getRegistDate(), vo.getType().equals(CommonConstants.ONE_STRING)
? CommonConstants.ONE_INT_NEGATE : CommonConstants.ONE_INT));
}else {
return;
}
getWorkDay(holidayMap,vo);
}
}
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