maven
14 小时以前 0756083281dcafd71efcf3fe68cb8875b4881985
yys  物资领用模块
已添加6个文件
341 ■■■■■ 文件已修改
src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,87 @@
package com.ruoyi.officesupplies.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.officesupplies.pojo.OfficeSupplies;
import com.ruoyi.officesupplies.service.OfficeSuppliesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
/**
 * @author :yys
 * @date : 2025/9/4 14:16
 */
@RestController
@Api(tags = "办公物资")
@RequestMapping("/officeSupplies")
public class OfficeSuppliesController extends BaseController {
    @Autowired
    private OfficeSuppliesService officeSuppliesService;
    @GetMapping("/listPage")
    @ApiOperation("办公物资-分页查询")
    public AjaxResult listPage(Page page, OfficeSupplies officeSupplies) {
        return officeSuppliesService.listPage(page, officeSupplies);
    }
    @PostMapping("/add")
    @ApiOperation("办公物资-添加")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody OfficeSupplies officeSupplies) {
        // æŒ‰ç…§å½“前时间yyyyMMdd + å½“天新增数量 + 1生成编号
        // èŽ·å–å½“å¤©æ–°å¢žæ•°é‡
        long count = officeSuppliesService.count(new LambdaQueryWrapper<OfficeSupplies>()
                .gt(OfficeSupplies::getCreateTime, LocalDate.now())
                .lt(OfficeSupplies::getCreateTime, LocalDate.now().plusDays(1)));
        String code = "WS" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")) +  String.format("%03d", count + 1);
        officeSupplies.setCode(code);
        officeSupplies.setStatus(1);
        officeSupplies.setApplyTime(new Date());
        return officeSuppliesService.save(officeSupplies) ? success() : error();
    }
    @PostMapping("/update")
    @ApiOperation("办公物资-修改")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult update(@RequestBody OfficeSupplies officeSupplies) {
        return officeSuppliesService.updateById(officeSupplies) ? success() : error();
    }
    @DeleteMapping("/delete")
    @ApiOperation("办公物资-删除")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult delete(@RequestBody List<Long> ids) {
        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("请传入要删除的ID");
        return officeSuppliesService.removeBatchByIds(ids) ? success() : error();
    }
    /**
     * å¯¼å‡ºåŠžå…¬ç‰©èµ„
     */
    @Log(title = "导出办公物资", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ApiOperation("导出办公物资")
    public void export(HttpServletResponse response) {
        ExcelUtil<OfficeSupplies> util = new ExcelUtil<OfficeSupplies>(OfficeSupplies.class);
        List<OfficeSupplies> list = officeSuppliesService.list();
        util.exportExcel(response, list , "办公物资");
    }
}
src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.ruoyi.officesupplies.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.officesupplies.pojo.OfficeSupplies;
import org.apache.ibatis.annotations.Param;
/**
 * @author :yys
 * @date : 2025/9/4 14:13
 */
public interface OfficeSuppliesMapper extends BaseMapper<OfficeSupplies> {
    /**
     * åˆ—表分页查询
     *
     * @param page
     * @param officeSupplies
     * @return
     */
    IPage<OfficeSupplies> listPage(Page page,@Param("req") OfficeSupplies officeSupplies);
}
src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,160 @@
package com.ruoyi.officesupplies.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.sales.pojo.CommonFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
 * @author :yys
 * @date : 2025/9/4 14:02
 */
@Data
@ApiModel
@TableName("office_supplies")
public class OfficeSupplies {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("编号")
    @Excel(name = "编号")
    private String code;
    @ApiModelProperty("物品名称")
    private String itemName;
    @ApiModelProperty("申请人")
    @Excel(name = "申请人")
    private String applicant;
    /**
     * éƒ¨é—¨
     */
    @ApiModelProperty("部门")
    @Excel(name = "部门")
    private String dept;
    /**
     * ç‰©èµ„类型(1-其他 2-清洁用品 3-电子用品 4-电子设备)
     */
    @ApiModelProperty("物资类型(1-其他 2-清洁用品 3-电子用品 4-电子设备)")
    @Excel(name = "物资类型", readConverterExp = "1=其他,2=清洁用品,3=电子用品,4=电子设备")
    private Integer materialType;
    /**
     * ç”³è¯·æ•°é‡
     */
    @ApiModelProperty("申请数量")
    @Excel(name = "申请数量")
    private Integer applyNum;
    /**
     * å®¡æ‰¹æ„è§
     */
    @ApiModelProperty("审批意见")
//    @Excel(name = "审批意见")
    private String approvalOpinions;
    /**
     * ç”³è¯·åŽŸå› 
     */
    @ApiModelProperty("申请原因")
    @Excel(name = "申请原因")
    private String reason;
    /**
     * ç´§æ€¥ç¨‹åº¦ï¼ˆ1-普通 2-紧急 3-非常紧急)
     */
    @ApiModelProperty("紧急程度(1-普通 2-紧急 3-非常紧急)")
//    @Excel(name = "紧急程度", readConverterExp = "1=普通,2=紧急,3=非常紧急")
    private Integer urgency;
    /**
     * çŠ¶æ€ï¼ˆ1-待审批 2-已拒绝 3-已通过 4-已发放)
     */
    @ApiModelProperty("状态(1-待审批 2-已拒绝 3-已通过 4-已发放)")
    @Excel(name = "状态", readConverterExp = "1=待审批,2=已拒绝,3=已通过,4=已发放")
    private Integer status;
    /**
     * ç”³è¯·æ—¶é—´
     */
    @ApiModelProperty("申请时间")
    @Excel(name = "申请时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date applyTime;
    /**
     * å®¡æ‰¹äºº
     */
    @ApiModelProperty("审批人")
    @Excel(name = "审批人")
    private String approval;
    /**
     * å®¡æ‰¹æ—¶é—´
     */
    @ApiModelProperty("审批时间")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;
    /**
     * å‘放时间
     */
    @ApiModelProperty("发放时间")
    @Excel(name = "发放时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date issueTime;
    @ApiModelProperty("发放人")
//    @Excel(name = "发放人")
    private String issueUser;
    /**
     * åˆ›å»ºè€…
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer createUser;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    /**
     * ä¿®æ”¹è€…
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    /**
     * ä¿®æ”¹æ—¶é—´
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    /**
     * ç§Ÿæˆ·ID
     */
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
}
src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.officesupplies.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.officesupplies.pojo.OfficeSupplies;
/**
 * @author :yys
 * @date : 2025/9/4 14:14
 */
public interface OfficeSuppliesService extends IService<OfficeSupplies> {
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param page
     * @param officeSupplies
     * @return
     */
    AjaxResult listPage(Page page, OfficeSupplies officeSupplies);
}
src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package com.ruoyi.officesupplies.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.officesupplies.mapper.OfficeSuppliesMapper;
import com.ruoyi.officesupplies.pojo.OfficeSupplies;
import com.ruoyi.officesupplies.service.OfficeSuppliesService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * @author :yys
 * @date : 2025/9/4 14:15
 */
@Service
@Slf4j
public class OfficeSuppliesServiceImpl extends ServiceImpl<OfficeSuppliesMapper, OfficeSupplies> implements OfficeSuppliesService {
    @Autowired
    private OfficeSuppliesMapper officeSuppliesMapper;
    @Override
    public AjaxResult listPage(Page page, OfficeSupplies officeSupplies) {
        IPage<OfficeSupplies> list = officeSuppliesMapper.listPage(page, officeSupplies);
        return AjaxResult.success(list);
    }
}
src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
<?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.officesupplies.mapper.OfficeSuppliesMapper">
    <select id="listPage" resultType="com.ruoyi.officesupplies.pojo.OfficeSupplies">
        select * from office_supplies
        <where>
            <if test="req.code != null and req.code != ''">
                and code like concat('%',#{req.code},'%')
            </if>
            <if test="req.applicant != null and req.applicant != ''">
                and applicant like concat('%',#{req.applicant},'%')
            </if>
            <if test="req.status != null and req.status != ''">
                and status = #{req.status}
            </if>
        </where>
    </select>
</mapper>