ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgOtherController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgOther.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgOtherBo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgOtherVo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgOtherMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgOtherService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgOtherServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruoyi-oa/src/main/resources/mapper/oa/SgOtherMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/SgOtherController.java
New file @@ -0,0 +1,118 @@ package com.ruoyi.web.controller.oa; import java.util.List; import java.util.Arrays; import java.util.concurrent.TimeUnit; import com.ruoyi.common.annotation.DataDictClass; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.QueryGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.oa.domain.vo.SgOtherVo; import com.ruoyi.oa.domain.bo.SgOtherBo; import com.ruoyi.oa.service.ISgOtherService; import com.ruoyi.common.core.page.TableDataInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiOperation; /** * 施工交付-其他Controller * * @author ruoyi * @date 2022-10-10 */ @Validated @Api(value = "施工交付-其他控制器", tags = {"施工交付-其他管理"}) @RequiredArgsConstructor(onConstructor_ = @Autowired) @RestController @RequestMapping("/oa/other") public class SgOtherController extends BaseController { private final ISgOtherService iSgOtherService; /** * 查询施工交付-其他列表 */ @DataDictClass @ApiOperation("查询施工交付-其他列表") // @PreAuthorize("@ss.hasPermi('oa:other:list')") @GetMapping("/list") public TableDataInfo<SgOtherVo> list(@Validated(QueryGroup.class) SgOtherBo bo) { return iSgOtherService.queryPageList(bo); } /** * 导出施工交付-其他列表 */ @ApiOperation("导出施工交付-其他列表") // @PreAuthorize("@ss.hasPermi('oa:other:export')") @Log(title = "施工交付-其他", businessType = BusinessType.EXPORT) @GetMapping("/export") public void export(@Validated SgOtherBo bo, HttpServletResponse response) { List<SgOtherVo> list = iSgOtherService.queryList(bo); ExcelUtil.exportExcel(list, "施工交付-其他", SgOtherVo.class, response); } /** * 获取施工交付-其他详细信息 */ @ApiOperation("获取施工交付-其他详细信息") // @PreAuthorize("@ss.hasPermi('oa:other:query')") @GetMapping("/{id}") public AjaxResult<SgOtherVo> getInfo(@ApiParam("主键") @NotNull(message = "主键不能为空") @PathVariable("id") Long id) { return AjaxResult.success(iSgOtherService.queryById(id)); } /** * 新增施工交付-其他 */ @ApiOperation("新增施工交付-其他") // @PreAuthorize("@ss.hasPermi('oa:other:add')") @Log(title = "施工交付-其他", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody SgOtherBo bo) { return toAjax(iSgOtherService.insertByBo(bo) ? 1 : 0); } /** * 修改施工交付-其他 */ @ApiOperation("修改施工交付-其他") // @PreAuthorize("@ss.hasPermi('oa:other:edit')") @Log(title = "施工交付-其他", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody SgOtherBo bo) { return toAjax(iSgOtherService.updateByBo(bo) ? 1 : 0); } /** * 删除施工交付-其他 */ @ApiOperation("删除施工交付-其他") // @PreAuthorize("@ss.hasPermi('oa:other:remove')") @Log(title = "施工交付-其他" , businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult<Void> remove(@ApiParam("主键串") @NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { return toAjax(iSgOtherService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0); } } ruoyi-oa/src/main/java/com/ruoyi/oa/domain/SgOther.java
New file @@ -0,0 +1,61 @@ package com.ruoyi.oa.domain; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; import java.math.BigDecimal; import com.ruoyi.common.core.domain.BaseEntity; /** * 施工交付-其他对象 sg_other * * @author ruoyi * @date 2022-10-10 */ @Data @Accessors(chain = true) @TableName("sg_other") public class SgOther extends BaseEntity { private static final long serialVersionUID=1L; /** * */ @TableId(value = "id") private Long id; /** * 高校ID */ private Long schoolId; /** * 名称 */ private String name; /** * 部署位置 */ private Long buildingId; /** * 施工批次 */ private Long constructionBatchId; /** * 生产厂商 */ private Long manufacturerId; /** * 型号 */ private String model; /** * */ @TableLogic private String delFlag; } ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SgOtherBo.java
New file @@ -0,0 +1,101 @@ package com.ruoyi.oa.domain.bo; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import javax.validation.constraints.*; import java.util.Date; import com.ruoyi.common.core.domain.BaseEntity; /** * 施工交付-其他业务对象 sg_other * * @author ruoyi * @date 2022-10-10 */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel("施工交付-其他业务对象") public class SgOtherBo extends BaseEntity { /** * */ @ApiModelProperty(value = "", required = true) @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; /** * 高校ID */ @ApiModelProperty(value = "高校ID", required = true) @NotNull(message = "高校ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long schoolId; /** * 名称 */ @ApiModelProperty(value = "名称", required = true) @NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String name; /** * 部署位置 */ @ApiModelProperty(value = "部署位置", required = true) @NotNull(message = "部署位置不能为空", groups = { AddGroup.class, EditGroup.class }) private Long buildingId; /** * 施工批次 */ @ApiModelProperty(value = "施工批次", required = true) @NotNull(message = "施工批次不能为空", groups = { AddGroup.class, EditGroup.class }) private Long constructionBatchId; /** * 生产厂商 */ @ApiModelProperty(value = "生产厂商", required = true) @NotNull(message = "生产厂商不能为空", groups = { AddGroup.class, EditGroup.class }) private Long manufacturerId; /** * 型号 */ @ApiModelProperty(value = "型号", required = true) @NotBlank(message = "型号不能为空", groups = { AddGroup.class, EditGroup.class }) private String model; /** * 分页大小 */ @ApiModelProperty("分页大小") private Integer pageSize; /** * 当前页数 */ @ApiModelProperty("当前页数") private Integer pageNum; /** * 排序列 */ @ApiModelProperty("排序列") private String orderByColumn; /** * 排序的方向desc或者asc */ @ApiModelProperty(value = "排序的方向", example = "asc,desc") private String isAsc; } ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/SgOtherVo.java
New file @@ -0,0 +1,81 @@ package com.ruoyi.oa.domain.vo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.common.annotation.Dict; import com.ruoyi.common.annotation.ExcelDictFormat; import com.ruoyi.common.convert.ExcelDictConvert; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 施工交付-其他视图对象 sg_other * * @author ruoyi * @date 2022-10-10 */ @Data @ApiModel("施工交付-其他视图对象") @ExcelIgnoreUnannotated public class SgOtherVo { private static final long serialVersionUID = 1L; /** * */ @ExcelProperty(value = "") @ApiModelProperty("") private Long id; /** * 高校ID */ @ExcelProperty(value = "高校ID") @ApiModelProperty("高校ID") private Long schoolId; /** * 名称 */ @ExcelProperty(value = "名称") @ApiModelProperty("名称") private String name; /** * 部署位置 */ @ExcelProperty(value = "部署位置") @ApiModelProperty("部署位置") @Dict(dictTable = "bs_building", dicCode = "id", dicText = "detailed_name") private Long buildingId; /** * 施工批次 */ @ExcelProperty(value = "施工批次") @ApiModelProperty("施工批次") @Dict(dictTable = "sg_construction_batch", dicCode = "id", dicText = "batch") private Long constructionBatchId; /** * 生产厂商 */ @ExcelProperty(value = "生产厂商") @ApiModelProperty("生产厂商") @Dict(dictTable = "dev_manufacturer", dicCode = "id", dicText = "name") private Long manufacturerId; /** * 型号 */ @ExcelProperty(value = "型号") @ApiModelProperty("型号") private String model; } ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SgOtherMapper.java
New file @@ -0,0 +1,14 @@ package com.ruoyi.oa.mapper; import com.ruoyi.oa.domain.SgOther; import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus; /** * 施工交付-其他Mapper接口 * * @author ruoyi * @date 2022-10-10 */ public interface SgOtherMapper extends BaseMapperPlus<SgOther> { } ruoyi-oa/src/main/java/com/ruoyi/oa/service/ISgOtherService.java
New file @@ -0,0 +1,56 @@ package com.ruoyi.oa.service; import com.ruoyi.oa.domain.SgOther; import com.ruoyi.oa.domain.vo.SgOtherVo; import com.ruoyi.oa.domain.bo.SgOtherBo; import com.ruoyi.common.core.mybatisplus.core.IServicePlus; import com.ruoyi.common.core.page.TableDataInfo; import java.util.Collection; import java.util.List; /** * 施工交付-其他Service接口 * * @author ruoyi * @date 2022-10-10 */ public interface ISgOtherService extends IServicePlus<SgOther, SgOtherVo> { /** * 查询单个 * @return */ SgOtherVo queryById(Long id); /** * 查询列表 */ TableDataInfo<SgOtherVo> queryPageList(SgOtherBo bo); /** * 查询列表 */ List<SgOtherVo> queryList(SgOtherBo bo); /** * 根据新增业务对象插入施工交付-其他 * @param bo 施工交付-其他新增业务对象 * @return */ Boolean insertByBo(SgOtherBo bo); /** * 根据编辑业务对象修改施工交付-其他 * @param bo 施工交付-其他编辑业务对象 * @return */ Boolean updateByBo(SgOtherBo bo); /** * 校验并删除数据 * @param ids 主键集合 * @param isValid 是否校验,true-删除前校验,false-不校验 * @return */ Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); } ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SgOtherServiceImpl.java
New file @@ -0,0 +1,92 @@ package com.ruoyi.oa.service.impl; import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.core.page.PagePlus; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.stereotype.Service; import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.oa.domain.bo.SgOtherBo; import com.ruoyi.oa.domain.vo.SgOtherVo; import com.ruoyi.oa.domain.SgOther; import com.ruoyi.oa.mapper.SgOtherMapper; import com.ruoyi.oa.service.ISgOtherService; import java.util.List; import java.util.Map; import java.util.Collection; /** * 施工交付-其他Service业务层处理 * * @author ruoyi * @date 2022-10-10 */ @Service public class SgOtherServiceImpl extends ServicePlusImpl<SgOtherMapper, SgOther, SgOtherVo> implements ISgOtherService { @Override public SgOtherVo queryById(Long id){ return getVoById(id); } @Override public TableDataInfo<SgOtherVo> queryPageList(SgOtherBo bo) { PagePlus<SgOther, SgOtherVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo)); return PageUtils.buildDataInfo(result); } @Override public List<SgOtherVo> queryList(SgOtherBo bo) { return listVo(buildQueryWrapper(bo)); } private LambdaQueryWrapper<SgOther> buildQueryWrapper(SgOtherBo bo) { Map<String, Object> params = bo.getParams(); LambdaQueryWrapper<SgOther> lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getName()), SgOther::getName, bo.getName()); lqw.eq(bo.getBuildingId() != null, SgOther::getBuildingId, bo.getBuildingId()); lqw.eq(bo.getConstructionBatchId() != null, SgOther::getConstructionBatchId, bo.getConstructionBatchId()); lqw.eq(bo.getManufacturerId() != null, SgOther::getManufacturerId, bo.getManufacturerId()); lqw.eq(bo.getSchoolId() != null, SgOther::getSchoolId, bo.getSchoolId()); return lqw; } @Override public Boolean insertByBo(SgOtherBo bo) { SgOther add = BeanUtil.toBean(bo, SgOther.class); validEntityBeforeSave(add); boolean flag = save(add); if (flag) { bo.setId(add.getId()); } return flag; } @Override public Boolean updateByBo(SgOtherBo bo) { SgOther update = BeanUtil.toBean(bo, SgOther.class); validEntityBeforeSave(update); return updateById(update); } /** * 保存前的数据校验 * * @param entity 实体类数据 */ private void validEntityBeforeSave(SgOther entity){ //TODO 做一些数据校验,如唯一约束 } @Override public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return removeByIds(ids); } } ruoyi-oa/src/main/resources/mapper/oa/SgOtherMapper.xml
New file @@ -0,0 +1,23 @@ <?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.ruoyi.oa.mapper.SgOtherMapper"> <resultMap type="com.ruoyi.oa.domain.SgOther" id="SgOtherResult"> <result property="id" column="id"/> <result property="schoolId" column="school_id"/> <result property="name" column="name"/> <result property="buildingId" column="building_id"/> <result property="constructionBatchId" column="construction_batch_id"/> <result property="manufacturerId" column="manufacturer_id"/> <result property="model" column="model"/> <result property="createBy" column="create_by"/> <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> <result property="delFlag" column="del_flag"/> </resultMap> </mapper>