Browse Source

20211115添加接口“查询工作日和非工作日”

yanyuan
zy_Java 4 years ago
parent
commit
f9f7a58a66
  1. 37
      signin/src/main/java/com/ccsens/signin/api/HolidaysController.java
  2. 17
      signin/src/main/java/com/ccsens/signin/bean/dto/HolidaysDto.java
  3. 106
      signin/src/main/java/com/ccsens/signin/bean/po/SysHolidays.java
  4. 711
      signin/src/main/java/com/ccsens/signin/bean/po/SysHolidaysExample.java
  5. 17
      signin/src/main/java/com/ccsens/signin/bean/vo/HolidaysVo.java
  6. 30
      signin/src/main/java/com/ccsens/signin/persist/mapper/SysHolidaysMapper.java
  7. 113
      signin/src/main/java/com/ccsens/signin/service/HolidaysService.java
  8. 13
      signin/src/main/java/com/ccsens/signin/service/IHolidaysService.java
  9. 6
      signin/src/main/resources/mapper_dao/ProjectDap.xml
  10. 258
      signin/src/main/resources/mapper_raw/SysHolidaysMapper.xml
  11. 91
      util/src/test/java/com/ccsens/util/OtherTest.java

37
signin/src/main/java/com/ccsens/signin/api/HolidaysController.java

@ -0,0 +1,37 @@
package com.ccsens.signin.api;
import com.ccsens.signin.bean.dto.HolidaysDto;
import com.ccsens.signin.bean.dto.ProjectDto;
import com.ccsens.signin.bean.vo.HolidaysVo;
import com.ccsens.signin.service.IHolidaysService;
import com.ccsens.util.JsonResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author
*/
@Slf4j
@Api(tags = "工作日", description = "")
@RestController
@RequestMapping("/holidays")
public class HolidaysController {
@Resource
private IHolidaysService holidaysService;
@ApiOperation(value = "查询工作日和非工作日", notes = "")
@RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
public JsonResponse<HolidaysVo.Holidays> getHolidays(@ApiParam @Validated @RequestBody HolidaysDto.GetHolidays getHolidays) throws Exception{
HolidaysVo.Holidays holidays = holidaysService.getHolidaysByTime(getHolidays);
return JsonResponse.newInstance().ok(holidays);
}
}

17
signin/src/main/java/com/ccsens/signin/bean/dto/HolidaysDto.java

@ -0,0 +1,17 @@
package com.ccsens.signin.bean.dto;
import lombok.Data;
import java.util.List;
/**
* @author
*/
@Data
public class HolidaysDto {
@Data
public static class GetHolidays{
private Long startTime;
private Long endTime;
}
}

106
signin/src/main/java/com/ccsens/signin/bean/po/SysHolidays.java

@ -0,0 +1,106 @@
package com.ccsens.signin.bean.po;
import java.io.Serializable;
import java.util.Date;
public class SysHolidays implements Serializable {
private Long id;
private String year;
private String holiday;
private String workday;
private Long operator;
private Date createdAt;
private Date updatedAt;
private Byte recStatus;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year == null ? null : year.trim();
}
public String getHoliday() {
return holiday;
}
public void setHoliday(String holiday) {
this.holiday = holiday == null ? null : holiday.trim();
}
public String getWorkday() {
return workday;
}
public void setWorkday(String workday) {
this.workday = workday == null ? null : workday.trim();
}
public Long getOperator() {
return operator;
}
public void setOperator(Long operator) {
this.operator = operator;
}
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getUpdatedAt() {
return updatedAt;
}
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Byte getRecStatus() {
return recStatus;
}
public void setRecStatus(Byte recStatus) {
this.recStatus = recStatus;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", year=").append(year);
sb.append(", holiday=").append(holiday);
sb.append(", workday=").append(workday);
sb.append(", operator=").append(operator);
sb.append(", createdAt=").append(createdAt);
sb.append(", updatedAt=").append(updatedAt);
sb.append(", recStatus=").append(recStatus);
sb.append("]");
return sb.toString();
}
}

711
signin/src/main/java/com/ccsens/signin/bean/po/SysHolidaysExample.java

@ -0,0 +1,711 @@
package com.ccsens.signin.bean.po;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class SysHolidaysExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public SysHolidaysExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andYearIsNull() {
addCriterion("year is null");
return (Criteria) this;
}
public Criteria andYearIsNotNull() {
addCriterion("year is not null");
return (Criteria) this;
}
public Criteria andYearEqualTo(String value) {
addCriterion("year =", value, "year");
return (Criteria) this;
}
public Criteria andYearNotEqualTo(String value) {
addCriterion("year <>", value, "year");
return (Criteria) this;
}
public Criteria andYearGreaterThan(String value) {
addCriterion("year >", value, "year");
return (Criteria) this;
}
public Criteria andYearGreaterThanOrEqualTo(String value) {
addCriterion("year >=", value, "year");
return (Criteria) this;
}
public Criteria andYearLessThan(String value) {
addCriterion("year <", value, "year");
return (Criteria) this;
}
public Criteria andYearLessThanOrEqualTo(String value) {
addCriterion("year <=", value, "year");
return (Criteria) this;
}
public Criteria andYearLike(String value) {
addCriterion("year like", value, "year");
return (Criteria) this;
}
public Criteria andYearNotLike(String value) {
addCriterion("year not like", value, "year");
return (Criteria) this;
}
public Criteria andYearIn(List<String> values) {
addCriterion("year in", values, "year");
return (Criteria) this;
}
public Criteria andYearNotIn(List<String> values) {
addCriterion("year not in", values, "year");
return (Criteria) this;
}
public Criteria andYearBetween(String value1, String value2) {
addCriterion("year between", value1, value2, "year");
return (Criteria) this;
}
public Criteria andYearNotBetween(String value1, String value2) {
addCriterion("year not between", value1, value2, "year");
return (Criteria) this;
}
public Criteria andHolidayIsNull() {
addCriterion("holiday is null");
return (Criteria) this;
}
public Criteria andHolidayIsNotNull() {
addCriterion("holiday is not null");
return (Criteria) this;
}
public Criteria andHolidayEqualTo(String value) {
addCriterion("holiday =", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayNotEqualTo(String value) {
addCriterion("holiday <>", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayGreaterThan(String value) {
addCriterion("holiday >", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayGreaterThanOrEqualTo(String value) {
addCriterion("holiday >=", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayLessThan(String value) {
addCriterion("holiday <", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayLessThanOrEqualTo(String value) {
addCriterion("holiday <=", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayLike(String value) {
addCriterion("holiday like", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayNotLike(String value) {
addCriterion("holiday not like", value, "holiday");
return (Criteria) this;
}
public Criteria andHolidayIn(List<String> values) {
addCriterion("holiday in", values, "holiday");
return (Criteria) this;
}
public Criteria andHolidayNotIn(List<String> values) {
addCriterion("holiday not in", values, "holiday");
return (Criteria) this;
}
public Criteria andHolidayBetween(String value1, String value2) {
addCriterion("holiday between", value1, value2, "holiday");
return (Criteria) this;
}
public Criteria andHolidayNotBetween(String value1, String value2) {
addCriterion("holiday not between", value1, value2, "holiday");
return (Criteria) this;
}
public Criteria andWorkdayIsNull() {
addCriterion("workday is null");
return (Criteria) this;
}
public Criteria andWorkdayIsNotNull() {
addCriterion("workday is not null");
return (Criteria) this;
}
public Criteria andWorkdayEqualTo(String value) {
addCriterion("workday =", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayNotEqualTo(String value) {
addCriterion("workday <>", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayGreaterThan(String value) {
addCriterion("workday >", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayGreaterThanOrEqualTo(String value) {
addCriterion("workday >=", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayLessThan(String value) {
addCriterion("workday <", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayLessThanOrEqualTo(String value) {
addCriterion("workday <=", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayLike(String value) {
addCriterion("workday like", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayNotLike(String value) {
addCriterion("workday not like", value, "workday");
return (Criteria) this;
}
public Criteria andWorkdayIn(List<String> values) {
addCriterion("workday in", values, "workday");
return (Criteria) this;
}
public Criteria andWorkdayNotIn(List<String> values) {
addCriterion("workday not in", values, "workday");
return (Criteria) this;
}
public Criteria andWorkdayBetween(String value1, String value2) {
addCriterion("workday between", value1, value2, "workday");
return (Criteria) this;
}
public Criteria andWorkdayNotBetween(String value1, String value2) {
addCriterion("workday not between", value1, value2, "workday");
return (Criteria) this;
}
public Criteria andOperatorIsNull() {
addCriterion("operator is null");
return (Criteria) this;
}
public Criteria andOperatorIsNotNull() {
addCriterion("operator is not null");
return (Criteria) this;
}
public Criteria andOperatorEqualTo(Long value) {
addCriterion("operator =", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotEqualTo(Long value) {
addCriterion("operator <>", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorGreaterThan(Long value) {
addCriterion("operator >", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorGreaterThanOrEqualTo(Long value) {
addCriterion("operator >=", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorLessThan(Long value) {
addCriterion("operator <", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorLessThanOrEqualTo(Long value) {
addCriterion("operator <=", value, "operator");
return (Criteria) this;
}
public Criteria andOperatorIn(List<Long> values) {
addCriterion("operator in", values, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotIn(List<Long> values) {
addCriterion("operator not in", values, "operator");
return (Criteria) this;
}
public Criteria andOperatorBetween(Long value1, Long value2) {
addCriterion("operator between", value1, value2, "operator");
return (Criteria) this;
}
public Criteria andOperatorNotBetween(Long value1, Long value2) {
addCriterion("operator not between", value1, value2, "operator");
return (Criteria) this;
}
public Criteria andCreatedAtIsNull() {
addCriterion("created_at is null");
return (Criteria) this;
}
public Criteria andCreatedAtIsNotNull() {
addCriterion("created_at is not null");
return (Criteria) this;
}
public Criteria andCreatedAtEqualTo(Date value) {
addCriterion("created_at =", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotEqualTo(Date value) {
addCriterion("created_at <>", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThan(Date value) {
addCriterion("created_at >", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("created_at >=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThan(Date value) {
addCriterion("created_at <", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
addCriterion("created_at <=", value, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtIn(List<Date> values) {
addCriterion("created_at in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotIn(List<Date> values) {
addCriterion("created_at not in", values, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtBetween(Date value1, Date value2) {
addCriterion("created_at between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
addCriterion("created_at not between", value1, value2, "createdAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNull() {
addCriterion("updated_at is null");
return (Criteria) this;
}
public Criteria andUpdatedAtIsNotNull() {
addCriterion("updated_at is not null");
return (Criteria) this;
}
public Criteria andUpdatedAtEqualTo(Date value) {
addCriterion("updated_at =", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotEqualTo(Date value) {
addCriterion("updated_at <>", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThan(Date value) {
addCriterion("updated_at >", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
addCriterion("updated_at >=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThan(Date value) {
addCriterion("updated_at <", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
addCriterion("updated_at <=", value, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtIn(List<Date> values) {
addCriterion("updated_at in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotIn(List<Date> values) {
addCriterion("updated_at not in", values, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtBetween(Date value1, Date value2) {
addCriterion("updated_at between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
addCriterion("updated_at not between", value1, value2, "updatedAt");
return (Criteria) this;
}
public Criteria andRecStatusIsNull() {
addCriterion("rec_status is null");
return (Criteria) this;
}
public Criteria andRecStatusIsNotNull() {
addCriterion("rec_status is not null");
return (Criteria) this;
}
public Criteria andRecStatusEqualTo(Byte value) {
addCriterion("rec_status =", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotEqualTo(Byte value) {
addCriterion("rec_status <>", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThan(Byte value) {
addCriterion("rec_status >", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
addCriterion("rec_status >=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThan(Byte value) {
addCriterion("rec_status <", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
addCriterion("rec_status <=", value, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusIn(List<Byte> values) {
addCriterion("rec_status in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotIn(List<Byte> values) {
addCriterion("rec_status not in", values, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusBetween(Byte value1, Byte value2) {
addCriterion("rec_status between", value1, value2, "recStatus");
return (Criteria) this;
}
public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
addCriterion("rec_status not between", value1, value2, "recStatus");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

17
signin/src/main/java/com/ccsens/signin/bean/vo/HolidaysVo.java

@ -0,0 +1,17 @@
package com.ccsens.signin.bean.vo;
import lombok.Data;
import java.util.List;
/**
* @author
*/
@Data
public class HolidaysVo {
@Data
public static class Holidays{
private List<String> workday;
private List<String> nonWorkday;
}
}

30
signin/src/main/java/com/ccsens/signin/persist/mapper/SysHolidaysMapper.java

@ -0,0 +1,30 @@
package com.ccsens.signin.persist.mapper;
import com.ccsens.signin.bean.po.SysHolidays;
import com.ccsens.signin.bean.po.SysHolidaysExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface SysHolidaysMapper {
long countByExample(SysHolidaysExample example);
int deleteByExample(SysHolidaysExample example);
int deleteByPrimaryKey(Long id);
int insert(SysHolidays record);
int insertSelective(SysHolidays record);
List<SysHolidays> selectByExample(SysHolidaysExample example);
SysHolidays selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") SysHolidays record, @Param("example") SysHolidaysExample example);
int updateByExample(@Param("record") SysHolidays record, @Param("example") SysHolidaysExample example);
int updateByPrimaryKeySelective(SysHolidays record);
int updateByPrimaryKey(SysHolidays record);
}

113
signin/src/main/java/com/ccsens/signin/service/HolidaysService.java

@ -0,0 +1,113 @@
package com.ccsens.signin.service;
import cn.hutool.core.collection.CollectionUtil;
import com.ccsens.signin.bean.dto.HolidaysDto;
import com.ccsens.signin.bean.po.SysHolidays;
import com.ccsens.signin.bean.po.SysHolidaysExample;
import com.ccsens.signin.bean.vo.HolidaysVo;
import com.ccsens.signin.persist.mapper.SysHolidaysMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* @author
*/
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public class HolidaysService implements IHolidaysService{
@Resource
private SysHolidaysMapper holidaysMapper;
@Override
public HolidaysVo.Holidays getHolidaysByTime(HolidaysDto.GetHolidays getHolidays) {
HolidaysVo.Holidays holidays = new HolidaysVo.Holidays();
//工作日
List<String> workday = new ArrayList<>();
//非工作日
List<String> nonWorkday = new ArrayList<>();
//开始时间
Calendar min = Calendar.getInstance();
min.setTime(new Date(getHolidays.getStartTime()));
min.set(Calendar.HOUR_OF_DAY, 0);
min.set(Calendar.MINUTE, 0);
min.set(Calendar.SECOND, 0);
min.set(Calendar.MILLISECOND, 0);
//结束时间
Calendar max = Calendar.getInstance();
max.setTime(new Date(getHolidays.getEndTime()));
max.set(Calendar.HOUR_OF_DAY, 0);
max.set(Calendar.MINUTE, 0);
max.set(Calendar.SECOND, 0);
max.set(Calendar.MILLISECOND, 0);
//获取开始时间所在年份的最后一天
int currentYear1 =min.get(Calendar.YEAR);
Calendar year = Calendar.getInstance();
year.clear();
year.set(Calendar.YEAR, currentYear1);
year.roll(Calendar.DAY_OF_YEAR, -1);
//分段的时间
List<Date> dateList = new ArrayList<>();
//将开始时间放到第一个
dateList.add(min.getTime());
while (max.after(year)){
dateList.add(year.getTime());
//如果结束时间大于当前年份的最后一天
Calendar x = Calendar.getInstance();
x.setTime(year.getTime());
x.add(Calendar.DAY_OF_YEAR,1);
dateList.add(x.getTime());
year.add(Calendar.YEAR, 1);
}
dateList.add(max.getTime());
//循环获取每年的工作日
for (int i = 0; i < dateList.size() - 1; i += 2) {
//获取开始结束时间
Calendar startTime = Calendar.getInstance();
Calendar endTime = Calendar.getInstance();
startTime.setTime(dateList.get(i));
endTime.setTime(dateList.get(i+1));
//根据开始时间获取是哪一年
int theYear = startTime.get(Calendar.YEAR);
DateFormat df = new SimpleDateFormat("MM-dd");
String isHoliday = "";
String overDay = "";
//获取假日调休信息
SysHolidaysExample holidaysExample = new SysHolidaysExample();
holidaysExample.createCriteria().andYearEqualTo(theYear + "");
List<SysHolidays> sysHolidays = holidaysMapper.selectByExample(holidaysExample);
if (CollectionUtil.isNotEmpty(sysHolidays)) {
isHoliday = sysHolidays.get(0).getHoliday();
overDay = sysHolidays.get(0).getWorkday();
}
while (endTime.getTimeInMillis() >= startTime.getTimeInMillis()) {
int a = startTime.get(Calendar.DAY_OF_WEEK);
//是调休 || (不是周末 && 不是节假日)
if (overDay.contains(df.format(startTime.getTime())) || ((a != 1 && a != 7) && !isHoliday.contains(df.format(startTime.getTime())))) {
workday.add(new SimpleDateFormat("yyyy-MM-dd").format(startTime.getTime()));
}else {
nonWorkday.add(new SimpleDateFormat("yyyy-MM-dd").format(startTime.getTime()));
}
startTime.add(Calendar.DATE, 1);
}
}
holidays.setWorkday(workday);
holidays.setNonWorkday(nonWorkday);
return holidays;
}
}

13
signin/src/main/java/com/ccsens/signin/service/IHolidaysService.java

@ -0,0 +1,13 @@
package com.ccsens.signin.service;
import com.ccsens.signin.bean.dto.HolidaysDto;
import com.ccsens.signin.bean.vo.HolidaysVo;
public interface IHolidaysService {
/**
* 通过开始结束时间查询时间段内的工作日和非工作日
* @param getHolidays 开始结束时间
* @return 时间段内的工作日和非工作日
*/
HolidaysVo.Holidays getHolidaysByTime(HolidaysDto.GetHolidays getHolidays);
}

6
signin/src/main/resources/mapper_dao/ProjectDap.xml

@ -29,7 +29,11 @@
p.rec_status = 0
AND u.user_id = #{userId}
and p.project_start_time &lt;= #{endTime}
and p.project_end_time &gt;= #{startTime}
and (
p.project_end_time &gt;= #{startTime}
or
p.project_end_time = 0
)
AND p.project_id NOT IN (
SELECT
sp.project_id

258
signin/src/main/resources/mapper_raw/SysHolidaysMapper.xml

@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccsens.signin.persist.mapper.SysHolidaysMapper">
<resultMap id="BaseResultMap" type="com.ccsens.signin.bean.po.SysHolidays">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="year" jdbcType="VARCHAR" property="year" />
<result column="holiday" jdbcType="VARCHAR" property="holiday" />
<result column="workday" jdbcType="VARCHAR" property="workday" />
<result column="operator" jdbcType="BIGINT" property="operator" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="rec_status" jdbcType="TINYINT" property="recStatus" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause">
<where>
<foreach collection="example.oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<foreach collection="criteria.criteria" item="criterion">
<choose>
<when test="criterion.noValue">
and ${criterion.condition}
</when>
<when test="criterion.singleValue">
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue">
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue">
and ${criterion.condition}
<foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List">
id, year, holiday, workday, operator, created_at, updated_at, rec_status
</sql>
<select id="selectByExample" parameterType="com.ccsens.signin.bean.po.SysHolidaysExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from t_sys_holidays
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from t_sys_holidays
where id = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from t_sys_holidays
where id = #{id,jdbcType=BIGINT}
</delete>
<delete id="deleteByExample" parameterType="com.ccsens.signin.bean.po.SysHolidaysExample">
delete from t_sys_holidays
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.ccsens.signin.bean.po.SysHolidays">
insert into t_sys_holidays (id, year, holiday,
workday, operator, created_at,
updated_at, rec_status)
values (#{id,jdbcType=BIGINT}, #{year,jdbcType=VARCHAR}, #{holiday,jdbcType=VARCHAR},
#{workday,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP},
#{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.signin.bean.po.SysHolidays">
insert into t_sys_holidays
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="year != null">
year,
</if>
<if test="holiday != null">
holiday,
</if>
<if test="workday != null">
workday,
</if>
<if test="operator != null">
operator,
</if>
<if test="createdAt != null">
created_at,
</if>
<if test="updatedAt != null">
updated_at,
</if>
<if test="recStatus != null">
rec_status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="year != null">
#{year,jdbcType=VARCHAR},
</if>
<if test="holiday != null">
#{holiday,jdbcType=VARCHAR},
</if>
<if test="workday != null">
#{workday,jdbcType=VARCHAR},
</if>
<if test="operator != null">
#{operator,jdbcType=BIGINT},
</if>
<if test="createdAt != null">
#{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
#{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
#{recStatus,jdbcType=TINYINT},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.signin.bean.po.SysHolidaysExample" resultType="java.lang.Long">
select count(*) from t_sys_holidays
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map">
update t_sys_holidays
<set>
<if test="record.id != null">
id = #{record.id,jdbcType=BIGINT},
</if>
<if test="record.year != null">
year = #{record.year,jdbcType=VARCHAR},
</if>
<if test="record.holiday != null">
holiday = #{record.holiday,jdbcType=VARCHAR},
</if>
<if test="record.workday != null">
workday = #{record.workday,jdbcType=VARCHAR},
</if>
<if test="record.operator != null">
operator = #{record.operator,jdbcType=BIGINT},
</if>
<if test="record.createdAt != null">
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
</if>
<if test="record.updatedAt != null">
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="record.recStatus != null">
rec_status = #{record.recStatus,jdbcType=TINYINT},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map">
update t_sys_holidays
set id = #{record.id,jdbcType=BIGINT},
year = #{record.year,jdbcType=VARCHAR},
holiday = #{record.holiday,jdbcType=VARCHAR},
workday = #{record.workday,jdbcType=VARCHAR},
operator = #{record.operator,jdbcType=BIGINT},
created_at = #{record.createdAt,jdbcType=TIMESTAMP},
updated_at = #{record.updatedAt,jdbcType=TIMESTAMP},
rec_status = #{record.recStatus,jdbcType=TINYINT}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.ccsens.signin.bean.po.SysHolidays">
update t_sys_holidays
<set>
<if test="year != null">
year = #{year,jdbcType=VARCHAR},
</if>
<if test="holiday != null">
holiday = #{holiday,jdbcType=VARCHAR},
</if>
<if test="workday != null">
workday = #{workday,jdbcType=VARCHAR},
</if>
<if test="operator != null">
operator = #{operator,jdbcType=BIGINT},
</if>
<if test="createdAt != null">
created_at = #{createdAt,jdbcType=TIMESTAMP},
</if>
<if test="updatedAt != null">
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
</if>
<if test="recStatus != null">
rec_status = #{recStatus,jdbcType=TINYINT},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.ccsens.signin.bean.po.SysHolidays">
update t_sys_holidays
set year = #{year,jdbcType=VARCHAR},
holiday = #{holiday,jdbcType=VARCHAR},
workday = #{workday,jdbcType=VARCHAR},
operator = #{operator,jdbcType=BIGINT},
created_at = #{createdAt,jdbcType=TIMESTAMP},
updated_at = #{updatedAt,jdbcType=TIMESTAMP},
rec_status = #{recStatus,jdbcType=TINYINT}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

91
util/src/test/java/com/ccsens/util/OtherTest.java

@ -16,7 +16,10 @@ import java.io.*;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -310,4 +313,92 @@ public class OtherTest {
}
@Test
public void test16() {
long s = 1642608000000L;
long e = 1642661444000L;
//开始时间
Calendar min = Calendar.getInstance();
min.setTime(new Date(s));
min.set(Calendar.HOUR_OF_DAY, 0);
min.set(Calendar.MINUTE, 0);
min.set(Calendar.SECOND, 0);
min.set(Calendar.MILLISECOND, 0);
//结束时间
Calendar max = Calendar.getInstance();
max.setTime(new Date(e));
max.set(Calendar.HOUR_OF_DAY, 0);
max.set(Calendar.MINUTE, 0);
max.set(Calendar.SECOND, 0);
max.set(Calendar.MILLISECOND, 0);
System.out.println(max.after(min));
//
// System.out.println("开始日期" + new SimpleDateFormat("yyyy-MM-dd").format(min.getTime()));
// System.out.println("结束日期" + new SimpleDateFormat("yyyy-MM-dd").format(max.getTime()));
//
// //获取开始时间所在年份的最后一天
// int currentYear1 =min.get(Calendar.YEAR);
// Calendar year = Calendar.getInstance();
// year.clear();
// year.set(Calendar.YEAR, currentYear1);
// year.roll(Calendar.DAY_OF_YEAR, -1);
//
// //分段的时间
// List<Date> dateList = new ArrayList<>();
// //将开始时间放到第一个
// dateList.add(min.getTime());
// while (max.after(year)){
// //如果结束时间大于当前年份的最后一天
// dateList.add(year.getTime());
// year.add(Calendar.YEAR, 1);
// System.out.println("开始时间:" + new SimpleDateFormat("yyyy-MM-dd").format(min.getTime()));
// System.out.println("结束时间:" + new SimpleDateFormat("yyyy-MM-dd").format(year.getTime()));
// }
// dateList.add(max.getTime());
//
// //循环获取每年的工作日
// for (int i = 0; i < dateList.size() - 1; i++) {
// ClockingInVo.Holidays holidays = new ClockingInVo.Holidays();
// //工作日
// List<String> workday = new ArrayList<>();
// List<String> nonWorkday = new ArrayList<>();
// DateFormat df = new SimpleDateFormat("MM-dd");
// String isHoliday = "";
// String overDay = "";
// //获取假日调休信息
// SysHolidaysExample holidaysExample = new SysHolidaysExample();
// holidaysExample.createCriteria().andYearEqualTo(new SimpleDateFormat("yyyy").format(new Date()));
// List<SysHolidays> sysHolidays = holidaysMapper.selectByExample(holidaysExample);
// if (CollectionUtil.isNotEmpty(sysHolidays)) {
// isHoliday = sysHolidays.get(0).getHoliday();
// overDay = sysHolidays.get(0).getWorkday();
// }
// Calendar min = Calendar.getInstance();
// Calendar max = Calendar.getInstance();
// min.setTime(new Date(startTime));
// max.setTime(new Date(endTime));
// max.add(Calendar.DATE, 1);
// while (max.after(min)) {
// int i = min.get(Calendar.DAY_OF_WEEK);
// //是调休 || (不是周末 && 不是节假日)
// if (overDay.contains(df.format(min.getTime())) || ((i != 1 && i != 7) && !isHoliday.contains(df.format(min.getTime())))) {
// workday.add(new SimpleDateFormat("yyyy-MM-dd").format(min.getTime()));
// }else {
// nonWorkday.add(new SimpleDateFormat("yyyy-MM-dd").format(min.getTime()));
// }
// min.add(Calendar.DATE, 1);
// }
// holidays.setWorkday(workday);
// holidays.setNonWorkday(nonWorkday);
// return holidays;
// }
}
}

Loading…
Cancel
Save