From 0756083281dcafd71efcf3fe68cb8875b4881985 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期五, 05 九月 2025 10:32:22 +0800 Subject: [PATCH] yys 物资领用模块 --- src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java | 160 ++++++++++++++++++++++++++ src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java | 30 +++++ src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java | 23 +++ src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java | 22 +++ src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml | 19 +++ src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java | 87 ++++++++++++++ 6 files changed, 341 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java b/src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java new file mode 100644 index 0000000..91243f4 --- /dev/null +++ b/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("璇蜂紶鍏ヨ鍒犻櫎鐨処D"); + 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 , "鍔炲叕鐗╄祫"); + } + +} diff --git a/src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java b/src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java new file mode 100644 index 0000000..7d73636 --- /dev/null +++ b/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); +} diff --git a/src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java b/src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java new file mode 100644 index 0000000..b693c10 --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java b/src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java new file mode 100644 index 0000000..3a521b5 --- /dev/null +++ b/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); +} diff --git a/src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java b/src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java new file mode 100644 index 0000000..2ba961f --- /dev/null +++ b/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); + } +} diff --git a/src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml b/src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml new file mode 100644 index 0000000..7191aa9 --- /dev/null +++ b/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> \ No newline at end of file -- Gitblit v1.9.3