yuan
6 小时以前 e2fd03067d452c9288033f1e17b7cb0085cbbff4
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -8,6 +8,9 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.TextRenderData;
import com.deepoove.poi.policy.TextRenderPolicy;
import com.deepoove.poi.template.run.RunTemplate;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
@@ -32,6 +35,7 @@
import com.ruoyi.stock.service.StockInventoryService;
import jakarta.servlet.http.HttpServletResponse;
import lombok.AllArgsConstructor;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -43,6 +47,7 @@
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@@ -259,8 +264,14 @@
            index++;
        }
        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
        //checkTime为Date类型,默认渲染的是toString(Fri Sep 18 00:00:00 CST 2026),这里单独指定按yyyy-MM-dd输出
        Configure configure = Configure.builder()
                .bind("paramList", new HackLoopTableRenderPolicy())
                .bind("inspect.checkTime", (eleTemplate, data, xwpfTemplate) -> {
                    XWPFRun run = ((RunTemplate) eleTemplate).getRun();
                    String text = data == null ? "" : DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, (Date) data);
                    TextRenderPolicy.Helper.renderTextRun(run, new TextRenderData(text));
                })
                .build();
        String finalInspectType = inspectType;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(