diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProjectController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProjectController.java new file mode 100644 index 0000000..91b844a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProjectController.java @@ -0,0 +1,100 @@ +package com.ruoyi.web.controller.system; + +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.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.system.domain.SysProject; +import com.ruoyi.system.service.ISysProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 项目Controller + * + * @author ruoyi + * @date 2022-12-30 + */ +@RestController +@RequestMapping("/system/project") +public class SysProjectController extends BaseController +{ + @Autowired + private ISysProjectService sysProjectService; + + /** + * 查询项目列表 + */ + @PreAuthorize("@ss.hasPermi('system:project:list')") + @GetMapping("/list") + public TableDataInfo list(SysProject sysProject) + { + startPage(); + List list = sysProjectService.selectSysProjectList(sysProject); + return getDataTable(list); + } + + /** + * 导出项目列表 + */ + @PreAuthorize("@ss.hasPermi('system:project:export')") + @Log(title = "项目", businessType = BusinessType.EXPORT) + @GetMapping("/export") + public AjaxResult export(SysProject sysProject) + { + List list = sysProjectService.selectSysProjectList(sysProject); + ExcelUtil util = new ExcelUtil(SysProject.class); + return util.exportExcel(list, "project"); + } + + /** + * 获取项目详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:project:query')") + @GetMapping(value = "/{projectId}") + public AjaxResult getInfo(@PathVariable("projectId") Long projectId) + { + return AjaxResult.success(sysProjectService.selectSysProjectById(projectId)); + } + + /** + * 新增项目 + */ + @PreAuthorize("@ss.hasPermi('system:project:add')") + @Log(title = "项目", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysProject sysProject) + { + sysProject.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(sysProjectService.insertSysProject(sysProject)); + } + + /** + * 修改项目 + */ + @PreAuthorize("@ss.hasPermi('system:project:edit')") + @Log(title = "项目", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SysProject sysProject) + { + sysProject.setUpdateBy(SecurityUtils.getUsername()); + return toAjax(sysProjectService.updateSysProject(sysProject)); + } + + /** + * 删除项目 + */ + @PreAuthorize("@ss.hasPermi('system:project:remove')") + @Log(title = "项目", businessType = BusinessType.DELETE) + @DeleteMapping("/{projectIds}") + public AjaxResult remove(@PathVariable Long[] projectIds) + { + return toAjax(sysProjectService.deleteSysProjectByIds(projectIds)); + } +} diff --git a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm index a8f9d14..3fc4c0b 100644 --- a/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm @@ -559,7 +559,7 @@ export default { #if($table.sub) this.form.${subclassName}List = this.${subclassName}List; #end - if (this.form.${pkColumn.javaField} != null) { + if (this.form.${pkColumn.javaField} != undefined) { update${BusinessName}(this.form).then(response => { this.msgSuccess("修改成功"); this.open = false; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysProject.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysProject.java new file mode 100644 index 0000000..1ed4302 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysProject.java @@ -0,0 +1,114 @@ +package com.ruoyi.system.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 项目对象 sys_project + * + * @author ruoyi + * @date 2022-12-30 + */ +public class SysProject extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 项目id */ + private Long projectId; + + /** 项目名称 */ + @Excel(name = "项目名称") + private String name; + + /** 项目介绍 */ + @Excel(name = "项目介绍") + private String introduction; + + /** 项目开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startDate; + + /** 项目结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "项目结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endDate; + + /** 删除标志(0代表存在 2代表删除) */ + private Long delFlag; + + public void setProjectId(Long projectId) + { + this.projectId = projectId; + } + + public Long getProjectId() + { + return projectId; + } + public void setName(String name) + { + this.name = name; + } + + public String getName() + { + return name; + } + public void setIntroduction(String introduction) + { + this.introduction = introduction; + } + + public String getIntroduction() + { + return introduction; + } + public void setStartDate(Date startDate) + { + this.startDate = startDate; + } + + public Date getStartDate() + { + return startDate; + } + public void setEndDate(Date endDate) + { + this.endDate = endDate; + } + + public Date getEndDate() + { + return endDate; + } + public void setDelFlag(Long delFlag) + { + this.delFlag = delFlag; + } + + public Long getDelFlag() + { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("projectId", getProjectId()) + .append("name", getName()) + .append("introduction", getIntroduction()) + .append("startDate", getStartDate()) + .append("endDate", getEndDate()) + .append("delFlag", getDelFlag()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysProjectMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysProjectMapper.java new file mode 100644 index 0000000..521bd97 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysProjectMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.SysProject; + +import java.util.List; + +/** + * 项目Mapper接口 + * + * @author ruoyi + * @date 2022-12-30 + */ +public interface SysProjectMapper +{ + /** + * 查询项目 + * + * @param projectId 项目ID + * @return 项目 + */ + public SysProject selectSysProjectById(Long projectId); + + /** + * 查询项目列表 + * + * @param sysProject 项目 + * @return 项目集合 + */ + public List selectSysProjectList(SysProject sysProject); + + /** + * 新增项目 + * + * @param sysProject 项目 + * @return 结果 + */ + public int insertSysProject(SysProject sysProject); + + /** + * 修改项目 + * + * @param sysProject 项目 + * @return 结果 + */ + public int updateSysProject(SysProject sysProject); + + /** + * 删除项目 + * + * @param projectId 项目ID + * @return 结果 + */ + public int deleteSysProjectById(Long projectId); + + /** + * 批量删除项目 + * + * @param projectIds 需要删除的数据ID + * @return 结果 + */ + public int deleteSysProjectByIds(Long[] projectIds); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysProjectService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysProjectService.java new file mode 100644 index 0000000..84be2b5 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysProjectService.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.domain.SysProject; + +import java.util.List; + +/** + * 项目Service接口 + * + * @author ruoyi + * @date 2022-12-30 + */ +public interface ISysProjectService +{ + /** + * 查询项目 + * + * @param projectId 项目ID + * @return 项目 + */ + public SysProject selectSysProjectById(Long projectId); + + /** + * 查询项目列表 + * + * @param sysProject 项目 + * @return 项目集合 + */ + public List selectSysProjectList(SysProject sysProject); + + /** + * 新增项目 + * + * @param sysProject 项目 + * @return 结果 + */ + public int insertSysProject(SysProject sysProject); + + /** + * 修改项目 + * + * @param sysProject 项目 + * @return 结果 + */ + public int updateSysProject(SysProject sysProject); + + /** + * 批量删除项目 + * + * @param projectIds 需要删除的项目ID + * @return 结果 + */ + public int deleteSysProjectByIds(Long[] projectIds); + + /** + * 删除项目信息 + * + * @param projectId 项目ID + * @return 结果 + */ + public int deleteSysProjectById(Long projectId); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysProjectServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysProjectServiceImpl.java new file mode 100644 index 0000000..31d0524 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysProjectServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.system.domain.SysProject; +import com.ruoyi.system.mapper.SysProjectMapper; +import com.ruoyi.system.service.ISysProjectService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 项目Service业务层处理 + * + * @author ruoyi + * @date 2022-12-30 + */ +@Service +public class SysProjectServiceImpl implements ISysProjectService +{ + @Autowired + private SysProjectMapper sysProjectMapper; + + /** + * 查询项目 + * + * @param projectId 项目ID + * @return 项目 + */ + @Override + public SysProject selectSysProjectById(Long projectId) + { + return sysProjectMapper.selectSysProjectById(projectId); + } + + /** + * 查询项目列表 + * + * @param sysProject 项目 + * @return 项目 + */ + @Override + public List selectSysProjectList(SysProject sysProject) + { + return sysProjectMapper.selectSysProjectList(sysProject); + } + + /** + * 新增项目 + * + * @param sysProject 项目 + * @return 结果 + */ + @Override + public int insertSysProject(SysProject sysProject) + { + sysProject.setCreateTime(DateUtils.getNowDate()); + return sysProjectMapper.insertSysProject(sysProject); + } + + /** + * 修改项目 + * + * @param sysProject 项目 + * @return 结果 + */ + @Override + public int updateSysProject(SysProject sysProject) + { + sysProject.setUpdateTime(DateUtils.getNowDate()); + return sysProjectMapper.updateSysProject(sysProject); + } + + /** + * 批量删除项目 + * + * @param projectIds 需要删除的项目ID + * @return 结果 + */ + @Override + public int deleteSysProjectByIds(Long[] projectIds) + { + return sysProjectMapper.deleteSysProjectByIds(projectIds); + } + + /** + * 删除项目信息 + * + * @param projectId 项目ID + * @return 结果 + */ + @Override + public int deleteSysProjectById(Long projectId) + { + return sysProjectMapper.deleteSysProjectById(projectId); + } +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysProjectMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysProjectMapper.xml new file mode 100644 index 0000000..09b16e9 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/SysProjectMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + select project_id, name, introduction, start_date, end_date, del_flag, create_time, update_time, update_by from sys_project + + + + + + + + insert into sys_project + + name, + introduction, + start_date, + end_date, + del_flag, + create_time, + update_time, + update_by, + + + #{name}, + #{introduction}, + #{startDate}, + #{endDate}, + #{delFlag}, + #{createTime}, + #{updateTime}, + #{updateBy}, + + + + + update sys_project + + name = #{name}, + introduction = #{introduction}, + start_date = #{startDate}, + end_date = #{endDate}, + del_flag = #{delFlag}, + create_time = #{createTime}, + update_time = #{updateTime}, + update_by = #{updateBy}, + + where project_id = #{projectId} + + + + delete from sys_project where project_id = #{projectId} + + + + delete from sys_project where project_id in + + #{projectId} + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/system/project.js b/ruoyi-ui/src/api/system/project.js new file mode 100644 index 0000000..3573d28 --- /dev/null +++ b/ruoyi-ui/src/api/system/project.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询项目列表 +export function listProject(query) { + return request({ + url: '/system/project/list', + method: 'get', + params: query + }) +} + +// 查询项目详细 +export function getProject(projectId) { + return request({ + url: '/system/project/' + projectId, + method: 'get' + }) +} + +// 新增项目 +export function addProject(data) { + return request({ + url: '/system/project', + method: 'post', + data: data + }) +} + +// 修改项目 +export function updateProject(data) { + return request({ + url: '/system/project', + method: 'put', + data: data + }) +} + +// 删除项目 +export function delProject(projectId) { + return request({ + url: '/system/project/' + projectId, + method: 'delete' + }) +} + +// 导出项目 +export function exportProject(query) { + return request({ + url: '/system/project/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/views/system/project/index.vue b/ruoyi-ui/src/views/system/project/index.vue new file mode 100644 index 0000000..0dc82a6 --- /dev/null +++ b/ruoyi-ui/src/views/system/project/index.vue @@ -0,0 +1,333 @@ + + +