gongchunyi
19 小时以前 da7562b91f817ec5e28e748ad6e7b41d7b6d9424
feat: 生产核算导出接口
已修改3个文件
33 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/controller/ProductionAccountController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProductionAccountService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductionAccountController.java
@@ -9,8 +9,10 @@
import com.ruoyi.production.service.ProductionAccountService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -38,4 +40,10 @@
    public R<IPage<ProductionProductMainDto>> listProductionDetails(ProductionAccountDto productionAccountDto, Page page) {
        return R.ok(productionAccountService.listProductionDetails(productionAccountDto,page));
    }
    @PostMapping("/export")
    @Operation(summary = "导出生产核算明细")
    public void export(HttpServletResponse response, ProductionAccountDto dto) {
        productionAccountService.exportDetails(response, dto);
    }
}
src/main/java/com/ruoyi/production/service/ProductionAccountService.java
@@ -7,6 +7,7 @@
import com.ruoyi.production.bean.vo.ProductionAccountVo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.production.pojo.ProductionAccount;
import jakarta.servlet.http.HttpServletResponse;
/**
 * <p>
@@ -20,4 +21,6 @@
    IPage<ProductionAccountVo> listPage(Page<ProductionAccountDto> page, ProductionAccountDto dto);
    IPage<ProductionProductMainDto> listProductionDetails(ProductionAccountDto productionAccountDto, Page page);
    void exportDetails(HttpServletResponse response, ProductionAccountDto dto);
}
src/main/java/com/ruoyi/production/service/impl/ProductionAccountServiceImpl.java
@@ -3,17 +3,23 @@
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.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.production.bean.dto.ProductionAccountDto;
import com.ruoyi.production.bean.dto.ProductionProductMainDto;
import com.ruoyi.production.bean.vo.ProductionAccountExportVo;
import com.ruoyi.production.bean.vo.ProductionAccountVo;
import com.ruoyi.production.mapper.ProductionAccountMapper;
import com.ruoyi.production.mapper.ProductionProductMainMapper;
import com.ruoyi.production.pojo.ProductionAccount;
import com.ruoyi.production.service.ProductionAccountService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
@@ -35,6 +41,22 @@
        return productionProductMainMapper.listProductionDetails(normalizeDateQuery(dto), page);
    }
    @Override
    public void exportDetails(HttpServletResponse response, ProductionAccountDto dto) {
        ProductionAccountDto query = normalizeDateQuery(dto);
        IPage<ProductionProductMainDto> page = productionProductMainMapper.listProductionDetails(query, new Page<>(1, -1));
        List<ProductionAccountExportVo> exportList = new ArrayList<>();
        if (page != null && page.getRecords() != null) {
            for (ProductionProductMainDto item : page.getRecords()) {
                ProductionAccountExportVo vo = new ProductionAccountExportVo();
                BeanUtils.copyProperties(item, vo);
                exportList.add(vo);
            }
        }
        ExcelUtil<ProductionAccountExportVo> util = new ExcelUtil<>(ProductionAccountExportVo.class);
        util.exportExcel(response, exportList, "生产核算");
    }
    private ProductionAccountDto normalizeDateQuery(ProductionAccountDto dto) {
        // 规范日期查询范围,补齐缺失的开始或结束时间
        if (dto == null) {