小久哥 3 years ago
parent
commit
66489db865
  1. 2
      zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java
  2. 100
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/WorkHourController.java
  3. 28
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourBaseVO.java
  4. 14
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourCreateReqVO.java
  5. 35
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourExcelVO.java
  6. 35
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourExportReqVO.java
  7. 37
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourPageReqVO.java
  8. 19
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourRespVO.java
  9. 18
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourUpdateReqVO.java
  10. 34
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/convert/workHour/WorkHourConvert.java
  11. 44
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/workHour/WorkHourDO.java
  12. 40
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/workHour/WorkHourMapper.java
  13. 70
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/workHour/WorkHourService.java
  14. 82
      zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/workHour/WorkHourServiceImpl.java
  15. 12
      zsw-farm/zsw-farm-impl/src/main/resources/mapper/workHour/WorkHourMapper.xml

2
zsw-farm/zsw-farm-api/src/main/java/cn/iocoder/yudao/module/farm/enums/ErrorCodeConstants.java

@ -23,7 +23,7 @@ public interface ErrorCodeConstants{
ErrorCode CROP_RECORD_NOT_EXISTS = new ErrorCode(1000007009, "农场作物出入记录不存在");
ErrorCode WORK_HOUR_NOT_EXISTS = new ErrorCode(1000007010, "工时不存在");
}

100
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/WorkHourController.java

@ -0,0 +1,100 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour;
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.annotations.*;
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.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.*;
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
import cn.iocoder.yudao.module.farm.convert.workHour.WorkHourConvert;
import cn.iocoder.yudao.module.farm.service.workHour.WorkHourService;
@Api(tags = "管理后台 - ")
@RestController
@RequestMapping("/farm/work-hour")
@Validated
public class WorkHourController {
@Resource
private WorkHourService workHourService;
@PostMapping("/create")
@ApiOperation("创建")
@PreAuthorize("@ss.hasPermission('farm:work-hour:create')")
public CommonResult<Long> createWorkHour(@Valid @RequestBody WorkHourCreateReqVO createReqVO) {
return success(workHourService.createWorkHour(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新")
@PreAuthorize("@ss.hasPermission('farm:work-hour:update')")
public CommonResult<Boolean> updateWorkHour(@Valid @RequestBody WorkHourUpdateReqVO updateReqVO) {
workHourService.updateWorkHour(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@ApiOperation("删除")
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('farm:work-hour:delete')")
public CommonResult<Boolean> deleteWorkHour(@RequestParam("id") Long id) {
workHourService.deleteWorkHour(id);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('farm:work-hour:query')")
public CommonResult<WorkHourRespVO> getWorkHour(@RequestParam("id") Long id) {
WorkHourDO workHour = workHourService.getWorkHour(id);
return success(WorkHourConvert.INSTANCE.convert(workHour));
}
@GetMapping("/list")
@ApiOperation("获得列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
@PreAuthorize("@ss.hasPermission('farm:work-hour:query')")
public CommonResult<List<WorkHourRespVO>> getWorkHourList(@RequestParam("ids") Collection<Long> ids) {
List<WorkHourDO> list = workHourService.getWorkHourList(ids);
return success(WorkHourConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@ApiOperation("获得分页")
@PreAuthorize("@ss.hasPermission('farm:work-hour:query')")
public CommonResult<PageResult<WorkHourRespVO>> getWorkHourPage(@Valid WorkHourPageReqVO pageVO) {
PageResult<WorkHourDO> pageResult = workHourService.getWorkHourPage(pageVO);
return success(WorkHourConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@ApiOperation("导出 Excel")
@PreAuthorize("@ss.hasPermission('farm:work-hour:export')")
@OperateLog(type = EXPORT)
public void exportWorkHourExcel(@Valid WorkHourExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<WorkHourDO> list = workHourService.getWorkHourList(exportReqVO);
// 导出 Excel
List<WorkHourExcelVO> datas = WorkHourConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, ".xls", "数据", WorkHourExcelVO.class, datas);
}
}

28
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourBaseVO.java

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
/**
* Base VO提供给添加修改详细的子 VO 使用
* 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成
*/
@Data
public class WorkHourBaseVO {
@ApiModelProperty(value = "")
private Integer userId;
@ApiModelProperty(value = "")
private Integer projectId;
@ApiModelProperty(value = "")
private Integer taskId;
@ApiModelProperty(value = "", required = true)
@NotNull(message = "不能为空")
private Integer hour;
}

14
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourCreateReqVO.java

@ -0,0 +1,14 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WorkHourCreateReqVO extends WorkHourBaseVO {
}

35
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourExcelVO.java

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* Excel VO
*
* @author 吴蓉
*/
@Data
public class WorkHourExcelVO {
@ExcelProperty("")
private Long id;
@ExcelProperty("")
private Integer userId;
@ExcelProperty("")
private Integer projectId;
@ExcelProperty("")
private Integer taskId;
@ExcelProperty("")
private Integer hour;
@ExcelProperty("")
private Date createTime;
}

35
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourExportReqVO.java

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel(value = "管理后台 - Excel 导出 Request VO", description = "参数和 WorkHourPageReqVO 是一致的")
@Data
public class WorkHourExportReqVO {
@ApiModelProperty(value = "")
private Integer userId;
@ApiModelProperty(value = "")
private Integer projectId;
@ApiModelProperty(value = "")
private Integer taskId;
@ApiModelProperty(value = "")
private Integer hour;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束")
private Date endCreateTime;
}

37
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourPageReqVO.java

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ApiModel("管理后台 - 分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WorkHourPageReqVO extends PageParam {
@ApiModelProperty(value = "")
private Integer userId;
@ApiModelProperty(value = "")
private Integer projectId;
@ApiModelProperty(value = "")
private Integer taskId;
@ApiModelProperty(value = "")
private Integer hour;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "开始")
private Date beginCreateTime;
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "结束")
private Date endCreateTime;
}

19
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourRespVO.java

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
@ApiModel("管理后台 - Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WorkHourRespVO extends WorkHourBaseVO {
@ApiModelProperty(value = "", required = true)
private Long id;
@ApiModelProperty(value = "")
private Date createTime;
}

18
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/controller/admin/workHour/vo/WorkHourUpdateReqVO.java

@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.farm.controller.admin.workHour.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class WorkHourUpdateReqVO extends WorkHourBaseVO {
@ApiModelProperty(value = "", required = true)
@NotNull(message = "不能为空")
private Long id;
}

34
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/convert/workHour/WorkHourConvert.java

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.farm.convert.workHour;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.*;
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
/**
* Convert
*
* @author 吴蓉
*/
@Mapper
public interface WorkHourConvert {
WorkHourConvert INSTANCE = Mappers.getMapper(WorkHourConvert.class);
WorkHourDO convert(WorkHourCreateReqVO bean);
WorkHourDO convert(WorkHourUpdateReqVO bean);
WorkHourRespVO convert(WorkHourDO bean);
List<WorkHourRespVO> convertList(List<WorkHourDO> list);
PageResult<WorkHourRespVO> convertPage(PageResult<WorkHourDO> page);
List<WorkHourExcelVO> convertList02(List<WorkHourDO> list);
}

44
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/dataobject/workHour/WorkHourDO.java

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.farm.dal.dataobject.workHour;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
*
* @author 吴蓉
*/
@TableName("farm_work_hour")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WorkHourDO extends BaseDO {
/**
*
*/
@TableId
private Long id;
/**
*
*/
private Integer userId;
/**
*
*/
private Integer projectId;
/**
*
*/
private Integer taskId;
/**
*
*/
private Integer hour;
}

40
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/dal/mysql/workHour/WorkHourMapper.java

@ -0,0 +1,40 @@
package cn.iocoder.yudao.module.farm.dal.mysql.workHour;
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.farm.dal.dataobject.workHour.WorkHourDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.*;
/**
* Mapper
*
* @author 吴蓉
*/
@Mapper
public interface WorkHourMapper extends BaseMapperX<WorkHourDO> {
default PageResult<WorkHourDO> selectPage(WorkHourPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<WorkHourDO>()
.eqIfPresent(WorkHourDO::getUserId, reqVO.getUserId())
.eqIfPresent(WorkHourDO::getProjectId, reqVO.getProjectId())
.eqIfPresent(WorkHourDO::getTaskId, reqVO.getTaskId())
.eqIfPresent(WorkHourDO::getHour, reqVO.getHour())
.betweenIfPresent(WorkHourDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
.orderByDesc(WorkHourDO::getId));
}
default List<WorkHourDO> selectList(WorkHourExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<WorkHourDO>()
.eqIfPresent(WorkHourDO::getUserId, reqVO.getUserId())
.eqIfPresent(WorkHourDO::getProjectId, reqVO.getProjectId())
.eqIfPresent(WorkHourDO::getTaskId, reqVO.getTaskId())
.eqIfPresent(WorkHourDO::getHour, reqVO.getHour())
.betweenIfPresent(WorkHourDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
.orderByDesc(WorkHourDO::getId));
}
}

70
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/workHour/WorkHourService.java

@ -0,0 +1,70 @@
package cn.iocoder.yudao.module.farm.service.workHour;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.*;
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* Service 接口
*
* @author 吴蓉
*/
public interface WorkHourService {
/**
* 创建
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createWorkHour(@Valid WorkHourCreateReqVO createReqVO);
/**
* 更新
*
* @param updateReqVO 更新信息
*/
void updateWorkHour(@Valid WorkHourUpdateReqVO updateReqVO);
/**
* 删除
*
* @param id 编号
*/
void deleteWorkHour(Long id);
/**
* 获得
*
* @param id 编号
* @return
*/
WorkHourDO getWorkHour(Long id);
/**
* 获得列表
*
* @param ids 编号
* @return 列表
*/
List<WorkHourDO> getWorkHourList(Collection<Long> ids);
/**
* 获得分页
*
* @param pageReqVO 分页查询
* @return 分页
*/
PageResult<WorkHourDO> getWorkHourPage(WorkHourPageReqVO pageReqVO);
/**
* 获得列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 列表
*/
List<WorkHourDO> getWorkHourList(WorkHourExportReqVO exportReqVO);
}

82
zsw-farm/zsw-farm-impl/src/main/java/cn/iocoder/yudao/module/farm/service/workHour/WorkHourServiceImpl.java

@ -0,0 +1,82 @@
package cn.iocoder.yudao.module.farm.service.workHour;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.*;
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.farm.convert.workHour.WorkHourConvert;
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
/**
* Service 实现类
*
* @author 吴蓉
*/
@Service
@Validated
public class WorkHourServiceImpl implements WorkHourService {
@Resource
private WorkHourMapper workHourMapper;
@Override
public Long createWorkHour(WorkHourCreateReqVO createReqVO) {
// 插入
WorkHourDO workHour = WorkHourConvert.INSTANCE.convert(createReqVO);
workHourMapper.insert(workHour);
// 返回
return workHour.getId();
}
@Override
public void updateWorkHour(WorkHourUpdateReqVO updateReqVO) {
// 校验存在
this.validateWorkHourExists(updateReqVO.getId());
// 更新
WorkHourDO updateObj = WorkHourConvert.INSTANCE.convert(updateReqVO);
workHourMapper.updateById(updateObj);
}
@Override
public void deleteWorkHour(Long id) {
// 校验存在
this.validateWorkHourExists(id);
// 删除
workHourMapper.deleteById(id);
}
private void validateWorkHourExists(Long id) {
if (workHourMapper.selectById(id) == null) {
throw exception(WORK_HOUR_NOT_EXISTS);
}
}
@Override
public WorkHourDO getWorkHour(Long id) {
return workHourMapper.selectById(id);
}
@Override
public List<WorkHourDO> getWorkHourList(Collection<Long> ids) {
return workHourMapper.selectBatchIds(ids);
}
@Override
public PageResult<WorkHourDO> getWorkHourPage(WorkHourPageReqVO pageReqVO) {
return workHourMapper.selectPage(pageReqVO);
}
@Override
public List<WorkHourDO> getWorkHourList(WorkHourExportReqVO exportReqVO) {
return workHourMapper.selectList(exportReqVO);
}
}

12
zsw-farm/zsw-farm-impl/src/main/resources/mapper/workHour/WorkHourMapper.xml

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