From 5e331360bd3e928cc7c1a0dcb455b766e5005225 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Tue, 8 Jul 2025 17:47:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=B6=E5=85=B7=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OaFurnitureTableController.java | 101 ++++++++++++++ .../com/ruoyi/oa/domain/OaFurnitureTable.java | 98 ++++++++++++++ .../oa/domain/bo/OaFurnitureTableBo.java | 107 +++++++++++++++ .../oa/domain/vo/OaFurnitureTableVo.java | 123 ++++++++++++++++++ .../oa/mapper/OaFurnitureTableMapper.java | 15 +++ .../oa/service/IOaFurnitureTableService.java | 49 +++++++ .../impl/OaFurnitureTableServiceImpl.java | 122 +++++++++++++++++ .../mapper/oa/OaFurnitureTableMapper.xml | 32 +++++ 8 files changed, 647 insertions(+) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFurnitureTableController.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFurnitureTable.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFurnitureTableBo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaFurnitureTableVo.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaFurnitureTableMapper.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFurnitureTableService.java create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFurnitureTableServiceImpl.java create mode 100644 ruoyi-oa/src/main/resources/mapper/oa/OaFurnitureTableMapper.xml diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFurnitureTableController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFurnitureTableController.java new file mode 100644 index 0000000..c15ba63 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/OaFurnitureTableController.java @@ -0,0 +1,101 @@ +package com.ruoyi.oa.controller; + +import java.util.List; +import java.util.Arrays; +import java.util.concurrent.TimeUnit; + +import lombok.RequiredArgsConstructor; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.*; +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.PageQuery; +import com.ruoyi.common.core.domain.R; +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.OaFurnitureTableVo; +import com.ruoyi.oa.domain.bo.OaFurnitureTableBo; +import com.ruoyi.oa.service.IOaFurnitureTableService; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 家具 + * + * @author liujingchao + * @date 2025-07-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/oa/furnitureTable") +public class OaFurnitureTableController extends BaseController { + + private final IOaFurnitureTableService iOaFurnitureTableService; + + /** + * 查询家具列表 + */ + @GetMapping("/list") + public TableDataInfo list(OaFurnitureTableBo bo, PageQuery pageQuery) { + return iOaFurnitureTableService.queryPageList(bo, pageQuery); + } + + /** + * 导出家具列表 + */ + @Log(title = "家具", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(OaFurnitureTableBo bo, HttpServletResponse response) { + List list = iOaFurnitureTableService.queryList(bo); + ExcelUtil.exportExcel(list, "家具", OaFurnitureTableVo.class, response); + } + + /** + * 获取家具详细信息 + * + * @param furnitureId 主键 + */ + @GetMapping("/{furnitureId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long furnitureId) { + return R.ok(iOaFurnitureTableService.queryById(furnitureId)); + } + + /** + * 新增家具 + */ + @Log(title = "家具", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody OaFurnitureTableBo bo) { + return toAjax(iOaFurnitureTableService.insertByBo(bo)); + } + + /** + * 修改家具 + */ + @Log(title = "家具", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody OaFurnitureTableBo bo) { + return toAjax(iOaFurnitureTableService.updateByBo(bo)); + } + + /** + * 删除家具 + * + * @param furnitureIds 主键串 + */ + @Log(title = "家具", businessType = BusinessType.DELETE) + @DeleteMapping("/{furnitureIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] furnitureIds) { + return toAjax(iOaFurnitureTableService.deleteWithValidByIds(Arrays.asList(furnitureIds), true)); + } +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFurnitureTable.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFurnitureTable.java new file mode 100644 index 0000000..41fea29 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/OaFurnitureTable.java @@ -0,0 +1,98 @@ +package com.ruoyi.oa.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 家具对象 oa_furniture_table + * + * @author liujingchao + * @date 2025-07-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("oa_furniture_table") +public class OaFurnitureTable extends BaseEntity { + + private static final long serialVersionUID=1L; + + /** + * + */ + @TableId(value = "furniture_id") + private Long furnitureId; + /** + * + */ + private String companyName; + /** + * + */ + private String state; + /** + * + */ + private String procurementOfProducts; + /** + * + */ + private String contactGroup; + /** + * + */ + private String phone; + /** + * + */ + private String fax; + /** + * + */ + private String address; + /** + * + */ + private String zip; + /** + * + */ + private String email; + /** + * + */ + private String website; + /** + * 发送邮件次数 + */ + private Long emailSendCount; + /** + * 上次发邮件时间 + */ + private Date lastEmailSendTime; + /** + * 跟单人 + */ + private String contactPerson; + /** + * 接收次数 + */ + private Long receiveCount; + /** + * 删除标志:0正常;1已删除 + */ + @TableLogic + private Integer delFlag; + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFurnitureTableBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFurnitureTableBo.java new file mode 100644 index 0000000..c159f30 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaFurnitureTableBo.java @@ -0,0 +1,107 @@ +package com.ruoyi.oa.domain.bo; + +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import javax.validation.constraints.*; + +import java.util.Date; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 家具业务对象 oa_furniture_table + * + * @author liujingchao + * @date 2025-07-08 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +public class OaFurnitureTableBo extends BaseEntity { + + /** + * + */ + private Long furnitureId; + + /** + * + */ + private String companyName; + + /** + * + */ + private String state; + + /** + * + */ + private String procurementOfProducts; + + /** + * + */ + private String contactGroup; + + /** + * + */ + private String phone; + + /** + * + */ + private String fax; + + /** + * + */ + private String address; + + /** + * + */ + private String zip; + + /** + * + */ + private String email; + + /** + * + */ + private String website; + + /** + * 发送邮件次数 + */ + private Long emailSendCount; + + /** + * 上次发邮件时间 + */ + private Date lastEmailSendTime; + + /** + * 跟单人 + */ + private String contactPerson; + + /** + * 接收次数 + */ + private Long receiveCount; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaFurnitureTableVo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaFurnitureTableVo.java new file mode 100644 index 0000000..30de2a0 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/vo/OaFurnitureTableVo.java @@ -0,0 +1,123 @@ +package com.ruoyi.oa.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.annotation.ExcelDictFormat; +import com.ruoyi.common.convert.ExcelDictConvert; +import lombok.Data; +import java.util.Date; + + + +/** + * 家具视图对象 oa_furniture_table + * + * @author liujingchao + * @date 2025-07-08 + */ +@Data +@ExcelIgnoreUnannotated +public class OaFurnitureTableVo { + + private static final long serialVersionUID = 1L; + + /** + * + */ + @ExcelProperty(value = "") + private Long furnitureId; + + /** + * + */ + @ExcelProperty(value = "") + private String companyName; + + /** + * + */ + @ExcelProperty(value = "") + private String state; + + /** + * + */ + @ExcelProperty(value = "") + private String procurementOfProducts; + + /** + * + */ + @ExcelProperty(value = "") + private String contactGroup; + + /** + * + */ + @ExcelProperty(value = "") + private String phone; + + /** + * + */ + @ExcelProperty(value = "") + private String fax; + + /** + * + */ + @ExcelProperty(value = "") + private String address; + + /** + * + */ + @ExcelProperty(value = "") + private String zip; + + /** + * + */ + @ExcelProperty(value = "") + private String email; + + /** + * + */ + @ExcelProperty(value = "") + private String website; + + /** + * 发送邮件次数 + */ + @ExcelProperty(value = "发送邮件次数") + private Long emailSendCount; + + /** + * 上次发邮件时间 + */ + @ExcelProperty(value = "上次发邮件时间") + private Date lastEmailSendTime; + + /** + * 跟单人 + */ + @ExcelProperty(value = "跟单人") + private String contactPerson; + + /** + * 接收次数 + */ + @ExcelProperty(value = "接收次数") + private Long receiveCount; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaFurnitureTableMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaFurnitureTableMapper.java new file mode 100644 index 0000000..8763dde --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/OaFurnitureTableMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.oa.mapper; + +import com.ruoyi.oa.domain.OaFurnitureTable; +import com.ruoyi.oa.domain.vo.OaFurnitureTableVo; +import com.ruoyi.common.core.mapper.BaseMapperPlus; + +/** + * 家具Mapper接口 + * + * @author liujingchao + * @date 2025-07-08 + */ +public interface OaFurnitureTableMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFurnitureTableService.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFurnitureTableService.java new file mode 100644 index 0000000..7a4123f --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/IOaFurnitureTableService.java @@ -0,0 +1,49 @@ +package com.ruoyi.oa.service; + +import com.ruoyi.oa.domain.OaFurnitureTable; +import com.ruoyi.oa.domain.vo.OaFurnitureTableVo; +import com.ruoyi.oa.domain.bo.OaFurnitureTableBo; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 家具Service接口 + * + * @author liujingchao + * @date 2025-07-08 + */ +public interface IOaFurnitureTableService { + + /** + * 查询家具 + */ + OaFurnitureTableVo queryById(Long furnitureId); + + /** + * 查询家具列表 + */ + TableDataInfo queryPageList(OaFurnitureTableBo bo, PageQuery pageQuery); + + /** + * 查询家具列表 + */ + List queryList(OaFurnitureTableBo bo); + + /** + * 新增家具 + */ + Boolean insertByBo(OaFurnitureTableBo bo); + + /** + * 修改家具 + */ + Boolean updateByBo(OaFurnitureTableBo bo); + + /** + * 校验并批量删除家具信息 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFurnitureTableServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFurnitureTableServiceImpl.java new file mode 100644 index 0000000..99cb87d --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaFurnitureTableServiceImpl.java @@ -0,0 +1,122 @@ +package com.ruoyi.oa.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.domain.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import com.ruoyi.oa.domain.bo.OaFurnitureTableBo; +import com.ruoyi.oa.domain.vo.OaFurnitureTableVo; +import com.ruoyi.oa.domain.OaFurnitureTable; +import com.ruoyi.oa.mapper.OaFurnitureTableMapper; +import com.ruoyi.oa.service.IOaFurnitureTableService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 家具Service业务层处理 + * + * @author liujingchao + * @date 2025-07-08 + */ +@RequiredArgsConstructor +@Service +public class OaFurnitureTableServiceImpl implements IOaFurnitureTableService { + + private final OaFurnitureTableMapper baseMapper; + + /** + * 查询家具 + */ + @Override + public OaFurnitureTableVo queryById(Long furnitureId){ + return baseMapper.selectVoById(furnitureId); + } + + /** + * 查询家具列表 + */ + @Override + public TableDataInfo queryPageList(OaFurnitureTableBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询家具列表 + */ + @Override + public List queryList(OaFurnitureTableBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(OaFurnitureTableBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), OaFurnitureTable::getCompanyName, bo.getCompanyName()); + lqw.eq(StringUtils.isNotBlank(bo.getState()), OaFurnitureTable::getState, bo.getState()); + lqw.eq(StringUtils.isNotBlank(bo.getProcurementOfProducts()), OaFurnitureTable::getProcurementOfProducts, bo.getProcurementOfProducts()); + lqw.eq(StringUtils.isNotBlank(bo.getContactGroup()), OaFurnitureTable::getContactGroup, bo.getContactGroup()); + lqw.eq(StringUtils.isNotBlank(bo.getPhone()), OaFurnitureTable::getPhone, bo.getPhone()); + lqw.eq(StringUtils.isNotBlank(bo.getFax()), OaFurnitureTable::getFax, bo.getFax()); + lqw.eq(StringUtils.isNotBlank(bo.getAddress()), OaFurnitureTable::getAddress, bo.getAddress()); + lqw.eq(StringUtils.isNotBlank(bo.getZip()), OaFurnitureTable::getZip, bo.getZip()); + lqw.eq(StringUtils.isNotBlank(bo.getEmail()), OaFurnitureTable::getEmail, bo.getEmail()); + lqw.eq(StringUtils.isNotBlank(bo.getWebsite()), OaFurnitureTable::getWebsite, bo.getWebsite()); + lqw.eq(bo.getEmailSendCount() != null, OaFurnitureTable::getEmailSendCount, bo.getEmailSendCount()); + lqw.eq(bo.getLastEmailSendTime() != null, OaFurnitureTable::getLastEmailSendTime, bo.getLastEmailSendTime()); + lqw.eq(StringUtils.isNotBlank(bo.getContactPerson()), OaFurnitureTable::getContactPerson, bo.getContactPerson()); + lqw.eq(bo.getReceiveCount() != null, OaFurnitureTable::getReceiveCount, bo.getReceiveCount()); + return lqw; + } + + /** + * 新增家具 + */ + @Override + public Boolean insertByBo(OaFurnitureTableBo bo) { + OaFurnitureTable add = BeanUtil.toBean(bo, OaFurnitureTable.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setFurnitureId(add.getFurnitureId()); + } + return flag; + } + + /** + * 修改家具 + */ + @Override + public Boolean updateByBo(OaFurnitureTableBo bo) { + OaFurnitureTable update = BeanUtil.toBean(bo, OaFurnitureTable.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(OaFurnitureTable entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 批量删除家具 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteBatchIds(ids) > 0; + } +} diff --git a/ruoyi-oa/src/main/resources/mapper/oa/OaFurnitureTableMapper.xml b/ruoyi-oa/src/main/resources/mapper/oa/OaFurnitureTableMapper.xml new file mode 100644 index 0000000..7039a7f --- /dev/null +++ b/ruoyi-oa/src/main/resources/mapper/oa/OaFurnitureTableMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +