Merge branch 'liutao_branch'

main
liutao 2 days ago
commit 08fa6ef1be

@ -162,4 +162,9 @@ public interface ErrorCodeConstants {
//======================================能源设相关 1002010000=================================================
ErrorCode ENERGY_RECORD_NOT_EXISTS = new ErrorCode(1002010000, "能源设备历史记录不存在");
ErrorCode CAL_HOLIDAY_NOT_EXISTS = new ErrorCode(6_001, "节假日设置数据不存在");
ErrorCode CAL_HOLIDAY_EXISTS = new ErrorCode(6_001, "已设置成功,请勿重复点击");
}

@ -0,0 +1,105 @@
package cn.iocoder.yudao.module.mes.controller.admin.calholiday;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.calholiday.CalHolidayDO;
import cn.iocoder.yudao.module.mes.service.calholiday.CalHolidayService;
@Tag(name = "管理后台 - 节假日设置")
@RestController
@RequestMapping("/mes/cal-holiday")
@Validated
public class CalHolidayController {
@Resource
private CalHolidayService calHolidayService;
@PostMapping("/create")
@Operation(summary = "创建节假日设置")
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:create')")
public CommonResult<Long> createCalHoliday(@Valid @RequestBody CalHolidaySaveReqVO createReqVO) {
return success(calHolidayService.createCalHoliday(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新节假日设置")
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:update')")
public CommonResult<Boolean> updateCalHoliday(@Valid @RequestBody CalHolidaySaveReqVO updateReqVO) {
calHolidayService.updateCalHoliday(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除节假日设置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:delete')")
public CommonResult<Boolean> deleteCalHoliday(@RequestParam("id") Long id) {
calHolidayService.deleteCalHoliday(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得节假日设置")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:query')")
public CommonResult<CalHolidayRespVO> getCalHoliday(@RequestParam("id") Long id) {
CalHolidayDO calHoliday = calHolidayService.getCalHoliday(id);
return success(BeanUtils.toBean(calHoliday, CalHolidayRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得节假日设置分页")
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:query')")
public CommonResult<PageResult<CalHolidayRespVO>> getCalHolidayPage(@Valid CalHolidayPageReqVO pageReqVO) {
PageResult<CalHolidayDO> pageResult = calHolidayService.getCalHolidayPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, CalHolidayRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出节假日设置 Excel")
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportCalHolidayExcel(@Valid CalHolidayPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<CalHolidayDO> list = calHolidayService.getCalHolidayPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "节假日设置.xls", "数据", CalHolidayRespVO.class,
BeanUtils.toBean(list, CalHolidayRespVO.class));
}
@DeleteMapping("/deleteByDay")
@Operation(summary = "根据日期删除节假日设置")
@Parameter(name = "theDay", description = "日期", required = true)
@PreAuthorize("@ss.hasPermission('mes:cal-holiday:delete')")
public CommonResult<Boolean> deleteByDay(@RequestParam("theDay") String theDay) {
calHolidayService.deleteByDay(theDay);
return success(true);
}
}

@ -0,0 +1,60 @@
package cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 节假日设置分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CalHolidayPageReqVO extends PageParam {
@Schema(description = "日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date theDay;
@Schema(description = "日期类型", example = "2")
private String holidayType;
@Schema(description = "开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;
@Schema(description = "结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] endTime;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "预留字段1")
private String attr1;
@Schema(description = "预留字段2")
private String attr2;
@Schema(description = "预留字段3")
private Integer attr3;
@Schema(description = "预留字段4")
private Integer attr4;
@Schema(description = "创建者")
private String createBy;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "更新者")
private String updateBy;
}

@ -0,0 +1,73 @@
package cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
@Schema(description = "管理后台 - 节假日设置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class CalHolidayRespVO {
@Schema(description = "流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "14339")
@ExcelProperty("流水号")
private Long holidayId;
@Schema(description = "日期")
@ExcelProperty("日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date theDay;
@Schema(description = "日期类型", example = "2")
@ExcelProperty("日期类型")
private String holidayType;
@Schema(description = "开始时间")
@ExcelProperty("开始时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@Schema(description = "结束时间")
@ExcelProperty("结束时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
@Schema(description = "备注", example = "你说的对")
@ExcelProperty("备注")
private String remark;
@Schema(description = "预留字段1")
@ExcelProperty("预留字段1")
private String attr1;
@Schema(description = "预留字段2")
@ExcelProperty("预留字段2")
private String attr2;
@Schema(description = "预留字段3")
@ExcelProperty("预留字段3")
private Integer attr3;
@Schema(description = "预留字段4")
@ExcelProperty("预留字段4")
private Integer attr4;
@Schema(description = "创建者")
@ExcelProperty("创建者")
private String createBy;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "更新者")
@ExcelProperty("更新者")
private String updateBy;
}

@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 节假日设置新增/修改 Request VO")
@Data
public class CalHolidaySaveReqVO {
@Schema(description = "流水号", requiredMode = Schema.RequiredMode.REQUIRED, example = "14339")
private Long holidayId;
@Schema(description = "日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date theDay;
@Schema(description = "日期类型", example = "2")
private String holidayType;
@Schema(description = "开始时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@Schema(description = "结束时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "预留字段1")
private String attr1;
@Schema(description = "预留字段2")
private String attr2;
@Schema(description = "预留字段3")
private Integer attr3;
@Schema(description = "预留字段4")
private Integer attr4;
@Schema(description = "创建者")
private String createBy;
@Schema(description = "更新者")
private String updateBy;
}

@ -0,0 +1,86 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.calholiday;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* DO
*
* @author
*/
@TableName("mes_cal_holiday")
@KeySequence("mes_cal_holiday_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CalHolidayDO extends BaseDO {
/**
*
*/
@TableId
private Long holidayId;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date theDay;
/**
*
*/
private String holidayType;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
/**
*
*/
private String remark;
/**
* 1
*/
private String attr1;
/**
* 2
*/
private String attr2;
/**
* 3
*/
private Integer attr3;
/**
* 4
*/
private Integer attr4;
/**
*
*/
private String createBy;
/**
*
*/
private String updateBy;
}

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.mes.dal.mysql.calholiday;
import java.time.LocalDate;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.mes.dal.dataobject.calholiday.CalHolidayDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo.*;
import java.time.ZoneId;
import java.time.LocalTime;
/**
* Mapper
*
* @author
*/
@Mapper
public interface CalHolidayMapper extends BaseMapperX<CalHolidayDO> {
default PageResult<CalHolidayDO> selectPage(CalHolidayPageReqVO reqVO) {
// 将 Date 转换为 LocalDate
LocalDate localCenterDate = reqVO.getTheDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// 计算前一个月和后一个月的日期
LocalDate startDate = localCenterDate.minusMonths(1);
LocalDate endDate = localCenterDate.plusMonths(1);
return selectPage(reqVO, new LambdaQueryWrapperX<CalHolidayDO>()
.eqIfPresent(CalHolidayDO::getHolidayType, reqVO.getHolidayType())
.betweenIfPresent(CalHolidayDO::getStartTime, reqVO.getStartTime())
.betweenIfPresent(CalHolidayDO::getEndTime, reqVO.getEndTime())
.eqIfPresent(CalHolidayDO::getRemark, reqVO.getRemark())
.eqIfPresent(CalHolidayDO::getAttr1, reqVO.getAttr1())
.eqIfPresent(CalHolidayDO::getAttr2, reqVO.getAttr2())
.eqIfPresent(CalHolidayDO::getAttr3, reqVO.getAttr3())
.eqIfPresent(CalHolidayDO::getAttr4, reqVO.getAttr4())
.eqIfPresent(CalHolidayDO::getCreateBy, reqVO.getCreateBy())
.betweenIfPresent(CalHolidayDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(CalHolidayDO::getUpdateBy, reqVO.getUpdateBy())
.between(CalHolidayDO::getTheDay,
startDate.atStartOfDay(),
endDate.atTime(LocalTime.MAX))
.orderByDesc(CalHolidayDO::getHolidayId));
}
}

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.mes.service.calholiday;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.calholiday.CalHolidayDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
/**
* Service
*
* @author
*/
public interface CalHolidayService {
/**
*
*
* @param createReqVO
* @return
*/
Long createCalHoliday(@Valid CalHolidaySaveReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateCalHoliday(@Valid CalHolidaySaveReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteCalHoliday(Long id);
/**
*
*
* @param id
* @return
*/
CalHolidayDO getCalHoliday(Long id);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<CalHolidayDO> getCalHolidayPage(CalHolidayPageReqVO pageReqVO);
void deleteByDay(String theDay);
}

@ -0,0 +1,97 @@
package cn.iocoder.yudao.module.mes.service.calholiday;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.util.Assert;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import cn.iocoder.yudao.module.mes.controller.admin.calholiday.vo.*;
import cn.iocoder.yudao.module.mes.dal.dataobject.calholiday.CalHolidayDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.mes.dal.mysql.calholiday.CalHolidayMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class CalHolidayServiceImpl implements CalHolidayService {
@Resource
private CalHolidayMapper calHolidayMapper;
@Override
public Long createCalHoliday(CalHolidaySaveReqVO createReqVO) {
// 校验存在
LambdaQueryWrapperX<CalHolidayDO> wrapper = new LambdaQueryWrapperX<>();
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");
String format = outputFormat.format(createReqVO.getTheDay());
wrapper.apply("DATE(the_day) = DATE({0})", format);
CalHolidayDO calHolidayDO = calHolidayMapper.selectOne(wrapper);
if(calHolidayDO!=null) throw exception(CAL_HOLIDAY_EXISTS);
// 插入
CalHolidayDO calHoliday = BeanUtils.toBean(createReqVO, CalHolidayDO.class);
calHolidayMapper.insert(calHoliday);
// 返回
return calHoliday.getHolidayId();
}
@Override
public void updateCalHoliday(CalHolidaySaveReqVO updateReqVO) {
// 校验存在
validateCalHolidayExists(updateReqVO.getHolidayId());
// 更新
CalHolidayDO updateObj = BeanUtils.toBean(updateReqVO, CalHolidayDO.class);
calHolidayMapper.updateById(updateObj);
}
@Override
public void deleteCalHoliday(Long id) {
// 校验存在
validateCalHolidayExists(id);
// 删除
calHolidayMapper.deleteById(id);
}
private void validateCalHolidayExists(Long id) {
if (calHolidayMapper.selectById(id) == null) {
throw exception(CAL_HOLIDAY_NOT_EXISTS);
}
}
@Override
public CalHolidayDO getCalHoliday(Long id) {
return calHolidayMapper.selectById(id);
}
@Override
public PageResult<CalHolidayDO> getCalHolidayPage(CalHolidayPageReqVO pageReqVO) {
Assert.notNull(pageReqVO.getTheDay(), "中心日期不能为空");
return calHolidayMapper.selectPage(pageReqVO);
}
@Override
public void deleteByDay(String theDay) {
// 校验存在
LambdaQueryWrapperX<CalHolidayDO> wrapper = new LambdaQueryWrapperX<>();
wrapper.apply("DATE(the_day) = DATE({0})", theDay);;
CalHolidayDO calHolidayDO = calHolidayMapper.selectOne(wrapper);
if(calHolidayDO==null) throw exception(CAL_HOLIDAY_EXISTS);
//删除
if(calHolidayDO!=null) calHolidayMapper.deleteById(calHolidayDO.getHolidayId());
}
}

@ -0,0 +1,12 @@
<?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="cn.iocoder.yudao.module.mes.dal.mysql.calholiday.CalHolidayMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>
Loading…
Cancel
Save