Commit 21543dfa authored by huyuchen's avatar huyuchen

Merge remote-tracking branch 'origin/MVP1.7.18' into MVP1.7.18

parents 16361db5 aa382cc8
...@@ -20,6 +20,7 @@ import lombok.Getter; ...@@ -20,6 +20,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @Description: 通用查询与返回的VO * @Description: 通用查询与返回的VO
...@@ -62,4 +63,6 @@ public class BaseSearchVO implements Serializable { ...@@ -62,4 +63,6 @@ public class BaseSearchVO implements Serializable {
private String type; private String type;
private Date startDate;
} }
...@@ -99,6 +99,18 @@ public class THouseHoldLimitController { ...@@ -99,6 +99,18 @@ public class THouseHoldLimitController {
return R.ok(tHouseHoldLimitService.getWorkDayByDeadLineDay(paramVo)); return R.ok(tHouseHoldLimitService.getWorkDayByDeadLineDay(paramVo));
} }
/**
* 获取派单发起时间
* @param paramVo:户名称 type: 0 社保、1 公积金 startDate 起缴日期
* @return R
*/
@Operation(summary = "获取派单发起时间", description = "获取派单发起时间")
@PostMapping("/getConfirmDate")
public R<String> getConfirmDate(@RequestBody BaseSearchVO paramVo) {
return R.ok(tHouseHoldLimitService.getConfirmDate(paramVo));
}
/** /**
* 通过户名称及类型查询到具体截止日期后判断是否为工作日,如果不是工作往前推,直到找到工作日, * 通过户名称及类型查询到具体截止日期后判断是否为工作日,如果不是工作往前推,直到找到工作日,
* 然后和当前日期进行比较,如果当前日期大于截止日期则返回false,否则返回true * 然后和当前日期进行比较,如果当前日期大于截止日期则返回false,否则返回true
......
...@@ -54,4 +54,6 @@ public interface THouseHoldLimitService extends IService<THouseHoldLimit> { ...@@ -54,4 +54,6 @@ public interface THouseHoldLimitService extends IService<THouseHoldLimit> {
void listExport(HttpServletResponse response, THouseHoldLimitSearchVo searchVo); void listExport(HttpServletResponse response, THouseHoldLimitSearchVo searchVo);
THouseHoldLimitInnerVo getWorkDayByDeadLineDay(BaseSearchVO paramVo); THouseHoldLimitInnerVo getWorkDayByDeadLineDay(BaseSearchVO paramVo);
String getConfirmDate(BaseSearchVO paramVo);
} }
...@@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TDispatchInfoPreVo;
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.util.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO; import com.yifu.cloud.plus.v1.yifu.common.core.vo.BaseSearchVO;
...@@ -49,6 +50,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -49,6 +50,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.text.ParseException;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.*; import java.util.*;
...@@ -422,4 +424,108 @@ public class THouseHoldLimitServiceImpl extends ServiceImpl<THouseHoldLimitMappe ...@@ -422,4 +424,108 @@ public class THouseHoldLimitServiceImpl extends ServiceImpl<THouseHoldLimitMappe
} }
return limitInnerVo; return limitInnerVo;
} }
@Override
public String getConfirmDate(BaseSearchVO paramVo) {
THouseHoldLimit houseHoldLimit = baseMapper.selectOne(Wrappers.<THouseHoldLimit>query().lambda()
.eq(THouseHoldLimit::getName,paramVo.getName())
.eq(THouseHoldLimit::getType,paramVo.getType())
.last(CommonConstants.LAST_ONE_SQL));
if (null == houseHoldLimit){
return null;
}
String deadLineDay = houseHoldLimit.getDeadLineDay();
if (Common.isNotNull(deadLineDay)) {
try {
TEmployeeInsuranceWorkDayVo vo = new TEmployeeInsuranceWorkDayVo();
// 设置RegistDate为当前月份对应的截止日期deadLineDay
Date registDate = DateUtil.setDayByDate(new Date(), Integer.parseInt(deadLineDay));
if (null == registDate) {
return null;
}
vo.setRegistDate(registDate);
vo.setType(CommonConstants.ONE_STRING);
holidayInfoService.selectBeforeOrAfterWorkDay(vo);
boolean canBeHandle = false;
String addHandleRule = houseHoldLimit.getAddHandleRule();
// 如果当前时间在截止日之后,则表示不可以办理,返回false,否则返回true
if (vo.getRegistDate() != null) {
LocalTime currentTime = LocalTime.now();
LocalTime thresholdTime = LocalTime.of(15, 20);
int dayOffset = (currentTime.isBefore(thresholdTime) || currentTime.equals(thresholdTime)) ? 0 : 1;
if (!DateUtil.isAfter(DateUtil.getDateByDayNum(dayOffset), vo.getRegistDate())) {
canBeHandle = true;
}
}
return initExpectedCollectionTime( paramVo.getStartDate(),canBeHandle,addHandleRule);
} catch (NumberFormatException e) {
// 截止日期不是有效数字,返回null表示无法确定
return null;
}
}
return null;
}
/**
* @Author fxj
* @Description 初始化预计派单发起时间、预计派单确认时间
* @Date 17:06 2025/12/12
**/
private String initExpectedCollectionTime(Date startDate,boolean canBeHandle,String addHandleRule) {
LocalTime currentTime = LocalTime.now();
LocalTime thresholdTime = LocalTime.of(15, 20);
boolean isBeforeThreshold = currentTime.isBefore(thresholdTime) || currentTime.equals(thresholdTime);
//获取次月1号日期
Date nextMonthFirstDay = DateUtil.addMonthByDate(DateUtil.getDateByDayNum(0), 1);
nextMonthFirstDay = DateUtil.setDayByDate(nextMonthFirstDay, 1);
//获取起缴月份1号
Date startDateFirstDay = DateUtil.addDayByDate(startDate, 0);
startDateFirstDay = DateUtil.setDayByDate(startDateFirstDay, 1);
//获取起缴月-1日期
Date startDatePrevMonth = DateUtil.addMonthByDate(startDateFirstDay, -1);
//获取次日
Date tomorrow = DateUtil.getDateByDayNum(1);
//1.起缴月份为当月及之前的月份
if (!DateUtil.isAfter(startDate, DateUtil.getDateByDayNum(0))){
if (canBeHandle){
//发起时间不看工作日
if (isBeforeThreshold) {
Date today = new Date();
return DateUtil.dateToString(today, DateUtil.ISO_EXPANDED_DATE_FORMAT);
} else {
return DateUtil.dateToString(tomorrow, DateUtil.ISO_EXPANDED_DATE_FORMAT);
}
} else {
return DateUtil.dateToString(nextMonthFirstDay, DateUtil.ISO_EXPANDED_DATE_FORMAT) ;
}
}
//2.起缴月份为次月
else if (startDate.getTime() == DateUtil.addMonthByDate(DateUtil.getDateByDayNum(0), 1).getTime()){
//当月办次月生效
if (CommonConstants.ONE_STRING.equals(addHandleRule)){
if (canBeHandle && isBeforeThreshold){
Date today = new Date();
return DateUtil.dateToString(today, DateUtil.ISO_EXPANDED_DATE_FORMAT);
} else {
return DateUtil.dateToString(nextMonthFirstDay, DateUtil.ISO_EXPANDED_DATE_FORMAT);
}
//当月办当月生效
} else if (CommonConstants.ZERO_STRING.equals(addHandleRule)){
return DateUtil.dateToString(nextMonthFirstDay, DateUtil.ISO_EXPANDED_DATE_FORMAT);
}
}
//3.起缴月份为次月之后的月份
else if (startDate.getTime() > DateUtil.addMonthByDate(DateUtil.getDateByDayNum(0), 1).getTime()){
//当月办次月生效
if (CommonConstants.ONE_STRING.equals(addHandleRule)){
return DateUtil.dateToString(startDatePrevMonth, DateUtil.ISO_EXPANDED_DATE_FORMAT);
} else if (CommonConstants.ZERO_STRING.equals(addHandleRule)){
return DateUtil.dateToString(startDateFirstDay, DateUtil.ISO_EXPANDED_DATE_FORMAT) ;
}
}
return null;
}
} }
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