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() .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 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 util = new ExcelUtil(OfficeSupplies.class); List list = officeSuppliesService.list(); util.exportExcel(response, list , "办公物资"); } }