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