From 46d7aa095ee0df8ac7c3e9642fd3c212f5fb81f2 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 12 May 2020 15:35:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BB=9E=E7=95=99=E5=A4=A9=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/FieldMetaObjectHandler.java | 2 +- .../main/java/com/epmet/dto/CalenderDTO.java | 6 ++ .../com/epmet/dto/form/CalenderFormDTO.java | 68 +++++++++++++ .../epmet/controller/CalenderController.java | 3 +- .../epmet/controller/ShowApiController.java | 20 +++- .../main/java/com/epmet/dao/CalenderDao.java | 2 +- .../com/epmet/service/CalenderService.java | 3 +- .../com/epmet/service/ShowApiService.java | 4 + .../service/impl/CalenderServiceImpl.java | 96 ++++++++++++++++++- .../service/impl/ShowApiServiceImpl.java | 71 +++++++++++++- ...duleTask.java => WorkDayScheduleTask.java} | 20 ++-- .../java/com/epmet/dao/OperLanguageDao.java | 1 + .../service/impl/OperLanguageServiceImpl.java | 2 +- .../main/resources/mapper/OperLanguageDao.xml | 5 + 14 files changed, 280 insertions(+), 23 deletions(-) create mode 100644 epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java rename epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/{SaticScheduleTask.java => WorkDayScheduleTask.java} (51%) diff --git a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java b/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java index fcd85b0c0e..1b9215e22a 100644 --- a/epmet-commons/epmet-commons-mybatis/src/main/java/com/epmet/commons/mybatis/handler/FieldMetaObjectHandler.java +++ b/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) { diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java index 77c75ed9e3..220ec8ef12 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/CalenderDTO.java +++ b/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; /** diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/CalenderFormDTO.java new file mode 100644 index 0000000000..e2e8ab6512 --- /dev/null +++ b/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; + +} + diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java index a3acf8c5ff..80d0062bec 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/CalenderController.java +++ b/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); diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java index 209c3f4cc4..7b01acac0c 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ShowApiController.java +++ b/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(); + } } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java index 1240add1e1..2d18e22648 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/CalenderDao.java +++ b/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 { int updateHoliday(HolidayDetailDTO holidayDetail); - CalenderEntity selectByDay(String day); + List selectByDay(String day); List selectList(String year); diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java index 5dbc9c2634..0f4fac02b8 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/CalenderService.java +++ b/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 { * @author generator * @date 2020-05-11 */ - void save(CalenderDTO dto); + void save(CalenderFormDTO dto); /** * 默认更新 diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java index 372c247ca7..b5dc546c2b 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ShowApiService.java +++ b/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); + } diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java index 6c0dca44c8..518577e6c0 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/CalenderServiceImpl.java +++ b/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 getWrapper(Map params) { String id = (String) params.get(FieldConstant.ID_HUMP); - + String day = (String) params.get("day"); QueryWrapper 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 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 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"; diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java b/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java similarity index 51% rename from epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java rename to epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/WorkDayScheduleTask.java index bdca1553d2..b26ab24cb7 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/task/SaticScheduleTask.java +++ b/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()); } } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java index d681d328c3..0085399c5b 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java +++ b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/dao/OperLanguageDao.java @@ -24,4 +24,5 @@ public interface OperLanguageDao extends BaseDao { void updateLanguage(OperLanguageEntity entity); + void insert1(OperLanguageEntity entity); } diff --git a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java b/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java index ee486aa224..04c85454f7 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperLanguageServiceImpl.java +++ b/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 + + INSERT INTO `oper_language` ( `table_name`, `table_id`, `field_name`, `field_value`, `language` ) + VALUES + ( #{tableName}, #{tableId}, #{fieldName}, #{fieldValue}, #{language} ) +