Browse Source

滞留天数

dev_shibei_match
yinzuomei 5 years ago
parent
commit
46d7aa095e
  1. 2
      epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java
  2. 6
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java
  3. 68
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java
  4. 3
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java
  5. 20
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java
  6. 2
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java
  7. 3
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java
  8. 4
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java
  9. 96
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java
  10. 71
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java
  11. 20
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java
  12. 1
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java
  13. 2
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java
  14. 5
      epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperLanguageDao.xml

2
epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java

@ -61,7 +61,7 @@ public class FieldMetaObjectHandler implements MetaObjectHandler {
setFieldValByName(FieldConstant.DEL_FLAG_HUMP, EpmetDelFlagEnum.NORMAL.value(), metaObject);
// 数据权限标志
//setInsertFieldValByName(DEPT_ID, deptId, metaObject);
} else {
} else if (metaObject.getOriginalObject() instanceof BaseEntity) {
UserDetail user = SecurityUser.getUser();
// renren自带的
if (user == null) {

6
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java

@ -19,7 +19,10 @@ package com.epmet.dto;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
@ -51,6 +54,7 @@ public class CalenderDTO implements Serializable {
/**
* 查询的日期:20200510
*/
@JsonFormat(pattern="yyyy-MM-dd")
private Date queryDate;
/**
@ -61,11 +65,13 @@ public class CalenderDTO implements Serializable {
/**
* 节日或周末开始时间如果是工作日此字段为空串
*/
@Length(max = 8)
private String begin;
/**
* 节日或周末结束时间如果是工作日此字段为空串
*/
@Length(max = 8)
private String end;
/**

68
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java

@ -0,0 +1,68 @@
package com.epmet.dto.form;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import java.io.Serializable;
import java.util.Date;
/**
* @Description TODO
* @Author yinzuomei
* @Date 2020/5/12 14:09
*/
@Data
public class CalenderFormDTO implements Serializable {
private static final long serialVersionUID = -62868343447396944L;
/**
* 查询的日期:20200510
*/
@JsonFormat(pattern="yyyy-MM-dd")
private Date queryDate;
/**
* 星期几的数字
*/
private Integer weekday;
/**
* 节日或周末开始时间如果是工作日此字段为空串
*/
@Length(max = 8)
private String begin;
/**
* 节日或周末结束时间如果是工作日此字段为空串
*/
@Length(max = 8)
private String end;
/**
* 节日备注
*/
private String holidayRemark;
/**
* 1为工作日2为周末3为节假日
*/
private String type;
/**
* 节日名称工作日时显示周末时显示周末节日时显示节日名称
*/
private String holiday;
/**
* 星期几的英文名
*/
private String en;
/**
* 星期几的中文名
*/
private String cn;
}

3
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java

@ -25,6 +25,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.CalenderDTO;
import com.epmet.dto.form.CalenderFormDTO;
import com.epmet.service.CalenderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -58,7 +59,7 @@ public class CalenderController {
}
@PostMapping
public Result save(@RequestBody CalenderDTO dto){
public Result save(@RequestBody CalenderFormDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
calenderService.save(dto);

20
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java

@ -21,11 +21,11 @@ public class ShowApiController {
private ShowApiService showApiService;
/**
* @return com.epmet.commons.tools.utils.Result
* @param year
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 初始化日历插入数据库
* @Date 2020/5/11 23:23
* @Date 2020/5/11 23:23
**/
@PostMapping("init/{year}")
public Result initYearCalender(@PathVariable("year") String year) {
@ -46,11 +46,11 @@ public class ShowApiController {
}
/**
* @return com.epmet.commons.tools.utils.Result
* @param year
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 根据年份查询当年的节假日列表(调用api同步到本地)
* @Date 2020/5/11 23:24
* @Date 2020/5/11 23:24
**/
@PostMapping("holidayList/{year}")
public Result holidayList(@PathVariable("year") String year) {
@ -58,5 +58,17 @@ public class ShowApiController {
return new Result();
}
/**
* @param day yyyyMMdd
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 拉取某一天的日历详情
* @Date 2020/5/12 14:45
**/
@PostMapping("initWorkDay/{day}")
public Result initWorkDay(@PathVariable("day") String day) {
showApiService.initWorkDay(day);
return new Result();
}
}

2
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java

@ -36,7 +36,7 @@ public interface CalenderDao extends BaseDao<CalenderEntity> {
int updateHoliday(HolidayDetailDTO holidayDetail);
CalenderEntity selectByDay(String day);
List<CalenderEntity> selectByDay(String day);
List<CalenderEntity> selectList(String year);

3
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java

@ -20,6 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.CalenderDTO;
import com.epmet.dto.form.CalenderFormDTO;
import com.epmet.entity.CalenderEntity;
import java.util.List;
@ -71,7 +72,7 @@ public interface CalenderService extends BaseService<CalenderEntity> {
* @author generator
* @date 2020-05-11
*/
void save(CalenderDTO dto);
void save(CalenderFormDTO dto);
/**
* 默认更新

4
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java

@ -1,5 +1,7 @@
package com.epmet.service;
import java.util.Date;
/**
* @Description 工作日信息维护
* @Author yinzuomei
@ -13,4 +15,6 @@ public interface ShowApiService {
void holidayList(String year);
void initWorkDay(String currentDate);
}

96
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java

@ -25,13 +25,16 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.CalenderDao;
import com.epmet.dto.CalenderDTO;
import com.epmet.dto.form.CalenderFormDTO;
import com.epmet.entity.CalenderEntity;
import com.epmet.service.CalenderService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -60,9 +63,11 @@ public class CalenderServiceImpl extends BaseServiceImpl<CalenderDao, CalenderEn
private QueryWrapper<CalenderEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String day = (String) params.get("day");
QueryWrapper<CalenderEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id)
.like(StringUtils.isNotBlank(day),"day",day);
wrapper.orderByAsc("QUERY_DATE");
return wrapper;
}
@ -75,18 +80,91 @@ public class CalenderServiceImpl extends BaseServiceImpl<CalenderDao, CalenderEn
@Override
@Transactional(rollbackFor = Exception.class)
public void save(CalenderDTO dto) {
public void save(CalenderFormDTO dto) {
CalenderEntity entity = ConvertUtils.sourceToTarget(dto, CalenderEntity.class);
SimpleDateFormat format=new SimpleDateFormat("yyyyMMdd");
entity.setDay(format.format(dto.getQueryDate()));
entity.setTypeName(this.getTypeName(dto.getType()));
entity.setCn(this.getCnValue(dto.getWeekday()));
entity.setEn(this.getEnValue(dto.getWeekday()));
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(CalenderDTO dto) {
dto.setTypeName(this.getTypeName(dto.getType()));
dto.setCn(this.getCnValue(dto.getWeekday()));
dto.setEn(this.getEnValue(dto.getWeekday()));
CalenderEntity entity = ConvertUtils.sourceToTarget(dto, CalenderEntity.class);
updateById(entity);
}
private String getCnValue(Integer weekday) {
String cn="";
switch(weekday)
{
case 1:
cn="周一";
break;
case 2:
cn="周二";
break;
case 3:
cn="周三";
break;
case 4:
cn="周四";
break;
case 5:
cn="周五";
break;
case 6:
cn="周六";
break;
case 7:
cn="周日";
break;
default:
System.out.println("default");
break;
}
return cn;
}
private String getEnValue(Integer weekday) {
String en="";
switch(weekday)
{
case 1:
en="Monday";
break;
case 2:
en="Tuesday";
break;
case 3:
en="Wednesday";
break;
case 4:
en="Thursday";
break;
case 5:
en="Friday";
break;
case 6:
en="Saturday";
break;
case 7:
en="Sunday";
break;
default:
System.out.println("default");
break;
}
return en;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
@ -94,4 +172,16 @@ public class CalenderServiceImpl extends BaseServiceImpl<CalenderDao, CalenderEn
baseDao.deleteBatchIds(Arrays.asList(ids));
}
private String getTypeName(String type) {
//1为工作日,2为周末,3为节假日
String typeName = "";
if ("1".equals(type)) {
typeName = "工作日";
} else if ("2".equals(type)) {
typeName = "周末";
} else if ("3".equals(type)) {
typeName = "节假日";
}
return typeName;
}
}

71
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ShowApiServiceImpl.java

@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@ -43,8 +44,8 @@ public class ShowApiServiceImpl implements ShowApiService {
long endTime = dateFormat.parse(dateEnd).getTime();//end
long day = 1000 * 60 * 60 * 24;
for (long i = startTime; i <= endTime; i += day) {
CalenderEntity calender = calenderDao.selectByDay(simpleDateFormat.format(new Date(i)));
if (null == calender) {
List<CalenderEntity> calenderList = calenderDao.selectByDay(simpleDateFormat.format(new Date(i)));
if (null == calenderList || calenderList.size() < 1) {
logger.info("日期:" + dateFormat.format(new Date(i)));
CalenderEntity calenderEntity = new CalenderEntity();
calenderEntity.setQueryDate(new Date(i));
@ -123,6 +124,72 @@ public class ShowApiServiceImpl implements ShowApiService {
}
}
@Override
public void initWorkDay(String currentDate) {
DayDetailResultDTO dayDetailResultDTO = null;
try {
dayDetailResultDTO = ShowApiUtil.queryHolidayV2020(currentDate);
} catch (Exception e) {
e.printStackTrace();
}
List<CalenderEntity> list = calenderDao.selectByDay(currentDate);
if(null!=list&&list.size()>0){
if (null != dayDetailResultDTO && 0 == dayDetailResultDTO.getRet_code()) {
for (CalenderEntity calenderEntity : list) {
calenderEntity.setRetCode(dayDetailResultDTO.getRet_code());
calenderEntity.setWeekday(dayDetailResultDTO.getWeekDay());
calenderEntity.setBegin(dayDetailResultDTO.getBegin());
calenderEntity.setEnd(dayDetailResultDTO.getEnd());
calenderEntity.setHoliday(dayDetailResultDTO.getHoliday());
calenderEntity.setHolidayRemark(dayDetailResultDTO.getHoliday_remark());
calenderEntity.setEn(dayDetailResultDTO.getEn());
calenderEntity.setCn(dayDetailResultDTO.getCn());
calenderEntity.setType(dayDetailResultDTO.getType());
//1为工作日,2为周末,3为节假日
if ("1".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("工作日");
} else if ("2".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("周末");
} else if ("3".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("节假日");
}
calenderDao.updateById(calenderEntity);
}
}
}else {
calenderDao.insert(getCalenderEntity(dayDetailResultDTO));
}
}
public CalenderEntity getCalenderEntity(DayDetailResultDTO dayDetailResultDTO) {
CalenderEntity calenderEntity = new CalenderEntity();
calenderEntity.setDay(dayDetailResultDTO.getDay());
try {
Date queryDate=simpleDateFormat.parse(dayDetailResultDTO.getDay());
calenderEntity.setQueryDate(queryDate);
} catch (ParseException e) {
logger.error("QUERY_DATE 赋值 错误");
e.printStackTrace();
}
calenderEntity.setRetCode(dayDetailResultDTO.getRet_code());
calenderEntity.setWeekday(dayDetailResultDTO.getWeekDay());
calenderEntity.setBegin(dayDetailResultDTO.getBegin());
calenderEntity.setEnd(dayDetailResultDTO.getEnd());
calenderEntity.setHoliday(dayDetailResultDTO.getHoliday());
calenderEntity.setHolidayRemark(dayDetailResultDTO.getHoliday_remark());
calenderEntity.setEn(dayDetailResultDTO.getEn());
calenderEntity.setCn(dayDetailResultDTO.getCn());
calenderEntity.setType(dayDetailResultDTO.getType());
//1为工作日,2为周末,3为节假日
if ("1".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("工作日");
} else if ("2".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("周末");
} else if ("3".equals(dayDetailResultDTO.getType())) {
calenderEntity.setTypeName("节假日");
}
return calenderEntity;
}
/* public static void main(String[] args) throws ParseException {
String dateStart = "2020-01-01";
String dateEnd = "2020-12-31";

20
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java → epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java

@ -6,25 +6,27 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @Description TODO
* @Description 定时任务
* @Author yinzuomei
* @Date 2020/5/12 0:01
*/
//@Configuration //1.主要用于标记配置类,兼备Component的效果。
//@EnableScheduling // 2.开启定时任务
public class SaticScheduleTask {
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class WorkDayScheduleTask {
@Autowired
private ShowApiService showApiService;
//3.添加定时任务
@Scheduled(cron = "0/1 * * * * ?")
//或直接指定时间间隔,例如:5秒
//@Scheduled(fixedRate=5000)
//每天晚上00:00:01执行{秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}
@Scheduled(cron = "1 0 0 * * ?")
private void configureTasks() {
showApiService.initWorkDayList("2020");
Date nowDate = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
showApiService.initWorkDay(format.format(nowDate));
System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
}
}

1
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java

@ -24,4 +24,5 @@ public interface OperLanguageDao extends BaseDao<OperLanguageEntity> {
void updateLanguage(OperLanguageEntity entity);
void insert1(OperLanguageEntity entity);
}

2
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java

@ -112,7 +112,7 @@ public class OperLanguageServiceImpl extends BaseServiceImpl<OperLanguageDao, Op
//判断是否有数据
if(baseDao.getLanguage(entity) == null){
baseDao.insert(entity);
baseDao.insert1(entity);
}else {
baseDao.updateLanguage(entity);
}

5
epmet-module/oper-access/oper-access-server/src/main/resources/mapper/OperLanguageDao.xml

@ -13,4 +13,9 @@
where table_name=#{tableName} and table_id=#{tableId} and field_name=#{fieldName} and language=#{language}
</select>
<insert id="insert1" parameterType="com.epmet.entity.OperLanguageEntity">
INSERT INTO `oper_language` ( `table_name`, `table_id`, `field_name`, `field_value`, `language` )
VALUES
( #{tableName}, #{tableId}, #{fieldName}, #{fieldValue}, #{language} )
</insert>
</mapper>

Loading…
Cancel
Save