src/main/java/com/ruoyi/officesupplies/controller/OfficeSuppliesController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/officesupplies/mapper/OfficeSuppliesMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/officesupplies/pojo/OfficeSupplies.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/officesupplies/service/OfficeSuppliesService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/ruoyi/officesupplies/service/impl/OfficeSuppliesServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application-cjny.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/officesupplies/OfficeSuppliesMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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/application-cjny.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,219 @@ # 项ç®ç¸å ³é ç½® ruoyi: # åç§° name: RuoYi # çæ¬ version: 3.8.9 # çæå¹´ä»½ copyrightYear: 2025 # æä»¶è·¯å¾ 示ä¾ï¼ Windowsé ç½®D:/ruoyi/uploadPathï¼Linuxé ç½® /home/ruoyi/uploadPathï¼ profile: /javaWork/product-inventory-management/file # è·åipå°åå¼å ³ addressEnabled: false # éªè¯ç ç±»å math æ°åè®¡ç® char å符éªè¯ captchaType: math # å¼åç¯å¢é ç½® server: # æå¡å¨çHTTP端å£ï¼é»è®¤ä¸º8080 port: 9036 servlet: # åºç¨ç访é®è·¯å¾ context-path: / tomcat: # tomcatçURIç¼ç uri-encoding: UTF-8 # è¿æ¥æ°æ»¡åçæéæ°ï¼é»è®¤ä¸º100 accept-count: 1000 threads: # tomcatæå¤§çº¿ç¨æ°ï¼é»è®¤ä¸º200 max: 800 # Tomcatå¯å¨åå§åççº¿ç¨æ°ï¼é»è®¤å¼10 min-spare: 100 # æ¥å¿é ç½® logging: level: com.ruoyi: warn org.springframework: warn minio: endpoint: http://114.132.189.42/ port: 7019 secure: false accessKey: admin secretKey: 12345678 preview-expiry: 24 # é¢è§å°åé»è®¤24å°æ¶ default-bucket: uploadPath # ç¨æ·é ç½® user: password: # å¯ç æå¤§éè¯¯æ¬¡æ° maxRetryCount: 5 # å¯ç é宿¶é´ï¼é»è®¤10åéï¼ lockTime: 10 # Springé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:mysql://192.168.1.185:3306/product-inventory-management-cjny?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: xd@123456.. # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: ruoyi login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true # èµæºä¿¡æ¯ messages: # å½é åèµæºæä»¶è·¯å¾ basename: i18n/messages # æä»¶ä¸ä¼ servlet: multipart: # å个æä»¶å¤§å° max-file-size: 1GB # 设置æ»ä¸ä¼ çæä»¶å¤§å° max-request-size: 2GB # æå¡æ¨¡å devtools: restart: # çé¨ç½²å¼å ³ enabled: false # redis é ç½® redis: # å°å # host: 127.0.0.1 host: 172.17.0.1 # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 4 # å¯ç # password: root2022! password: # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # tokené ç½® token: # 令çèªå®ä¹æ è¯ header: Authorization # 令çå¯é¥ secret: abcdefghijklmnopqrstuvwxyz # ä»¤çæææï¼é»è®¤30åéï¼ expireTime: 450 # MyBatis Plusé ç½® mybatis-plus: # æç´¢æå®å å«å æ ¹æ®èªå·±çé¡¹ç®æ¥ typeAliasesPackage: com.ruoyi.**.pojo # é ç½®mapperçæ«æï¼æ¾å°ææçmapper.xmlæ å°æä»¶ mapperLocations: classpath*:mapper/**/*Mapper.xml # å è½½å ¨å±çé ç½®æä»¶ configLocation: classpath:mybatis/mybatis-config.xml global-config: enable-sql-runner: true db-config: id-type: auto # PageHelperå页æä»¶ pagehelper: helperDialect: mysql supportMethodsArguments: true params: count=countSql # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true # 请æ±åç¼ pathMapping: /dev-api # 鲿¢XSSæ»å» xss: # è¿æ»¤å¼å ³ enabled: true # æé¤é¾æ¥ï¼å¤ä¸ªç¨éå·åéï¼ excludes: /system/notice # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* # 代ç çæ gen: # ä½è author: ruoyi # é»è®¤çæå è·¯å¾ system éæ¹æèªå·±ç模ååç§° å¦ system monitor tool packageName: com.ruoyi.project.system # èªå¨å»é¤è¡¨åç¼ï¼é»è®¤æ¯true autoRemovePre: false # 表åç¼ï¼çæç±»åä¸ä¼å å«è¡¨åç¼ï¼å¤ä¸ªç¨éå·åéï¼ tablePrefix: sys_ # æ¯å¦å è®¸çææä»¶è¦çå°æ¬å°ï¼èªå®ä¹è·¯å¾ï¼ï¼é»è®¤ä¸å 许 allowOverwrite: false file: temp-dir: /javaWork/product-inventory-management/file/temp/uploads upload-dir: /javaWork/product-inventory-management/file/prod/uploads 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>