zss
2025-04-21 55d0c99711a25033b6a438954ca0c83a5263d986
7.4样品的处置
已修改19个文件
已删除7个文件
1418 ■■■■ 文件已修改
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java 413 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/static/sample-deal.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/resources/static/sample-receive.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java
@@ -37,20 +37,15 @@
    @ApiOperation(value = "新增检测或校准物品的处置")
    @PostMapping("/addProcessDeal")
    public Result addProcessDeal(@RequestBody ProcessDeal processDeal) {
        return Result.success(processDealService.addProcessDeal(processDeal));
        return Result.success(processDealService.saveOrUpdate(processDeal));
    }
    @ApiOperation(value = "删除检测或校准物品的处置")
    @DeleteMapping("/delProcessDeal")
    public Result delProcessDeal(Integer id) {
        return Result.success(processDealService.delProcessDeal(id));
        return Result.success(processDealService.removeById(id));
    }
    @ApiOperation(value = "修改检测或校准物品的处置")
    @PostMapping("/doProcessDeal")
    public Result doProcessDeal(@RequestBody ProcessDeal processDeal) {
        return Result.success(processDealService.doProcessDeal(processDeal));
    }
    @ApiOperation(value = "查看检测或校准物品的处置")
    @GetMapping("/getProcessDeal")
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -29,32 +30,27 @@
    @ApiOperation(value = "查询样品接收详情")
    @GetMapping("/pageProcessSample")
    public Result pageProcessSample(ProcessSample processSample, Page page) throws Exception {
    public Result pageProcessSample(ProcessSample processSample, Page page){
        return Result.success(processSampleService.pageProcessSample(page, processSample));
    }
    @ApiOperation(value = "新增样品接收详情")
    @PostMapping("/addProcessSample")
    public Result addProcessSample(@RequestBody ProcessSample processSample) {
        return Result.success(processSampleService.addProcessSample(processSample));
        return Result.success(processSampleService.saveOrUpdate(processSample));
    }
    @ApiOperation(value = "删除样品接收")
    @DeleteMapping("/delProcessSample")
    public Result delProcessSample(Integer id) {
        return Result.success(processSampleService.delProcessSample(id));
        return Result.success(processSampleService.removeById(id));
    }
    @ApiOperation(value = "修改样品接收")
    @PostMapping("/doProcessSample")
    public Result doProcessSample(@RequestBody ProcessSample processSample) {
        return Result.success(processSampleService.doProcessSample(processSample));
    }
    @ApiOperation(value = "查看样品接收")
    @GetMapping("/getProcessSample")
    public Result getProcessSample(Integer id) {
        return Result.success(processSampleService.getById(id));
    @ApiOperation(value = "导出样品接收")
    @GetMapping("/exportProcessSample")
    public void exportProcessSample(ProcessSample processSample, HttpServletResponse response) {
        processSampleService.exportProcessSample(processSample,response);
    }
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java
@@ -9,6 +9,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -33,6 +34,12 @@
        return Result.success(processTotaldealService.pageProcessTotaldeal(page, processTotaldeal));
    }
    @ApiOperation(value = "新增检测或校准物品的处置")
    @PostMapping("/addProcessTotaldeal")
    public Result addProcessTotaldeal(String month) {
        return Result.success(processTotaldealService.addProcessTotaldeal(month));
    }
    @ApiOperation(value = "提交检测或校准物品的处置")
    @PostMapping("/submitProcessTotaldeal")
    public Result submitProcessTotaldeal(@RequestBody Map<String, Integer> param) {
@@ -56,5 +63,11 @@
        return Result.success(processTotaldealService.ratifyProcessTotaldeal(id,state));
    }
    @ApiOperation(value = "导出检测或校准物品的处置")
    @GetMapping("/exportProcessTotaldeal")
    public void exportProcessTotaldeal(Integer id, HttpServletResponse response) {
        processTotaldealService.exportProcessTotaldeal(id,response);
    }
}
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
@@ -7,6 +7,8 @@
import com.ruoyi.process.pojo.ProcessDeal;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
 * æ£€æµ‹æˆ–校准物品的处置 Mapper æŽ¥å£
@@ -18,4 +20,7 @@
public interface ProcessDealMapper extends BaseMapper<ProcessDeal> {
    IPage<ProcessDeal> pageProcessDeal(Page page, @Param("ew") QueryWrapper<ProcessDeal> queryWrappers);
    List<ProcessDeal> selectDeal(@Param("id") Integer id);
}
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
@@ -62,4 +62,11 @@
    @ApiModelProperty("关联的历史总表id")
    private Integer totaldealId;
    @ApiModelProperty("关联的样品接收id")
    private Integer processSampleId;
    @ApiModelProperty("序号")
    @TableField(select = false,exist = false)
    private String indexs;
}
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java
@@ -59,8 +59,8 @@
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("关联总表历史id")
    private Integer totalSampleId;
    @ApiModelProperty("委托单id")
    private Integer inspectionOrderId;
    @ApiModelProperty("收样日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java
@@ -37,10 +37,6 @@
    @ApiModelProperty("审核结果")
    private String examineState;
    @ApiModelProperty("审核人电子签名url")
    private String examineUrl;
    @TableField(select = false, exist = false)
    private String examineUserName;
@@ -49,9 +45,6 @@
    @ApiModelProperty("批准结果")
    private String ratifyState;
    @ApiModelProperty("批准人电子签名url")
    private String ratifyUrl;
    @TableField(select = false, exist = false)
    private String ratifyUserName;
@@ -64,15 +57,7 @@
    @ApiModelProperty("提交结果")
    private String submitState;
    @ApiModelProperty("提交人电子签名url")
    private String submitUrl;
    @ApiModelProperty("总数量")
    private Integer totalNum;
    @ApiModelProperty("月份")
    private String month;
    @ApiModelProperty("生成申请表的路径")
    private String url;
}
cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java
@@ -18,10 +18,4 @@
public interface ProcessDealService extends IService<ProcessDeal> {
    IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal);
    int addProcessDeal(ProcessDeal processDeal);
    int delProcessDeal(Integer id);
    int doProcessDeal(ProcessDeal processDeal);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.pojo.ProcessSample;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -19,9 +20,5 @@
    IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample);
    int addProcessSample(ProcessSample processSample);
    int delProcessSample(Integer id);
    int doProcessSample(ProcessSample processSample);
    void exportProcessSample(ProcessSample processSample, HttpServletResponse response);
}
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.pojo.ProcessTotaldeal;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
@@ -24,4 +25,8 @@
    int submitProcessTotaldeal(Integer id);
    int ratifyProcessTotaldeal(Integer id, String state);
    int addProcessTotaldeal(String month);
    void exportProcessTotaldeal(Integer id, HttpServletResponse response);
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
@@ -15,6 +15,7 @@
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.InsOrderDeviceRecordDto;
import com.ruoyi.inspect.mapper.InsProductResultMapper;
import com.ruoyi.inspect.mapper.InsSampleMapper;
import com.ruoyi.inspect.pojo.*;
import com.ruoyi.inspect.service.InsOrderService;
import com.ruoyi.inspect.service.InsReportService;
@@ -23,14 +24,9 @@
import com.ruoyi.process.dto.InspectionOrderExportDto;
import com.ruoyi.process.mapper.InspectionOrderMapper;
import com.ruoyi.process.mapper.ProcessOrderDeviceMapper;
import com.ruoyi.process.pojo.InspectionOrder;
import com.ruoyi.process.pojo.InspectionOrderDetail;
import com.ruoyi.process.pojo.ProcessOrderDevice;
import com.ruoyi.process.pojo.ProcessReport;
import com.ruoyi.process.service.InspectionOrderDetailService;
import com.ruoyi.process.service.InspectionOrderService;
import com.ruoyi.process.service.ProcessOrderDeviceService;
import com.ruoyi.process.service.ProcessReportService;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.pojo.*;
import com.ruoyi.process.service.*;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
@@ -70,6 +66,8 @@
    @Resource
    private InsOrderService insOrderService;
    @Resource
    private InsSampleMapper insSampleMapper;
    @Resource
    private InsReportService insReportService;
    @Value("${wordUrl}")
    private String wordUrl;
@@ -83,6 +81,12 @@
    private ProcessOrderDeviceService processOrderDeviceService;
    @Resource
    private UserMapper userMapper;
    @Resource
    private ProcessSampleService processSampleService;
    @Resource
    private ProcessSampleMapper processSampleMapper;
    @Resource
    private ProcessDealService processDealService;
    /**
@@ -158,6 +162,27 @@
        processReportService.save(processReport);
        /*新增7.1委托单对应的设备使用记录*/
        addDeviceRecord(inspectionOrder,insReport.getWriteUserId());
        /*新增7.4样品接收*/
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, inspectionOrder.getInsOrderId()));
        if (insSamples.size()>0){
            List<ProcessSample> processSamples = new ArrayList<>();
            for (InsSample insSample : insSamples) {
                ProcessSample processSample = new ProcessSample();
                processSample.setReceiveDate(inspectionOrder.getSampleData());//收样日期=领样日期
                processSample.setSampleCode(insSample.getSampleCode());//样品编号
                processSample.setSampleName(insSample.getSample());//样品名称
                processSample.setNum(1);//样品数量=1
                processSample.setSampleSupplier(inspectionOrder.getCommissionUnit());//来样单位
                LocalDate plusMonths = inspectionOrder.getSampleData().plusMonths(1);
                processSample.setLeaveDate(plusMonths);//留样日期=收样日期往后延一个月
                processSample.setSampleState(inspectionOrder.getSampleStatus());//样品状态
                processSample.setDealTime(plusMonths);//退样日期=留样日期
                processSample.setInspectionOrderId(inspectionOrder.getInspectionOrderId());//委托单id
                processSamples.add(processSample);
            }
            processSampleService.saveBatch(processSamples);
        }
        return true;
    }
@@ -245,6 +270,17 @@
        //删除对应的设备使用记录
        processOrderDeviceService.remove(Wrappers.<ProcessOrderDevice>lambdaQuery()
                .eq(ProcessOrderDevice::getInspectionOrderId, inspectionOrderId));
        //删除对应的7.4的样品申请
        List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery()
                .eq(ProcessSample::getInspectionOrderId, inspectionOrderId));
        if (processSamples.size()>0){
            List<Integer> list = processSamples.stream().map(ProcessSample::getId).collect(Collectors.toList());
            processDealService.remove(Wrappers.<ProcessDeal>lambdaQuery()
                    .in(ProcessDeal::getProcessSampleId,list));
        }
        //删除对应7.4的样品接收
        processSampleService.remove(Wrappers.<ProcessSample>lambdaQuery()
                .eq(ProcessSample::getInspectionOrderId,inspectionOrderId));
        return true;
    }
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java
@@ -47,65 +47,6 @@
    public IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal) {
        Integer userId = SecurityUtils.getUserId().intValue();
        processDeal.setCreateUser(userId);
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())) {
            //获取当前月份
            LocalDate currentDate = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = currentDate.format(formatter);
            //查询历史
            ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth, currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }
        return processDealMapper.pageProcessDeal(page, QueryWrappers.queryWrappers(processDeal));
    }
    @Override
    public int addProcessDeal(ProcessDeal processDeal) {
        ProcessTotaldeal processTotaldeal;
        if (ObjectUtils.isEmpty(processDeal.getTotaldealId())){
            LocalDate dealTime = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = dealTime.format(formatter);
            processTotaldeal= processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth,currentMonth));
            if(ObjectUtils.isNotEmpty(processTotaldeal)){
                processDeal.setTotaldealId(processTotaldeal.getId());
            }
        }else {
            processTotaldeal= processTotaldealMapper.selectById(processDeal.getTotaldealId());
        }
        processDealMapper.insert(processDeal);
        processTotaldeal.setTotalNum(processDeal.getNum()+processTotaldeal.getTotalNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int delProcessDeal(Integer id) {
        ProcessDeal processDeal = processDealMapper.selectById(id);
        processDealMapper.deleteById(id);
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
        processTotaldeal.setTotalNum(processTotaldeal.getTotalNum()-processDeal.getNum());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    @Override
    public int doProcessDeal(ProcessDeal processDeal) {
        if (ObjectUtils.isNotEmpty(processDeal.getNum())) {
            ProcessDeal oldProcessDeal = processDealMapper.selectById(processDeal.getId());
            if(null != processDeal.getTotaldealId()){
                ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
                int totalNum = ObjectUtils.isEmpty(processTotaldeal) ? 0 : processTotaldeal.getTotalNum();
                processTotaldeal.setTotalNum(totalNum - oldProcessDeal.getNum() + processDeal.getNum());
                processTotaldealMapper.updateById(processTotaldeal);
            }
        }
        return processDealMapper.updateById(processDeal);
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
@@ -1,21 +1,25 @@
package com.ruoyi.process.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.FilePictureRenderData;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.mapper.ProcessTotalSampleMapper;
import com.ruoyi.process.pojo.ProcessSample;
import com.ruoyi.process.pojo.ProcessTotalSample;
import com.ruoyi.process.service.ProcessSampleService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
/**
 * <p>
@@ -31,64 +35,35 @@
    @Resource
    private ProcessSampleMapper processSampleMapper;
    @Resource
    private ProcessTotalSampleMapper processTotalSampleMapper;
    @Override
    public IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample) {
        //todo:仅看我
        if (ObjectUtils.isEmpty(processSample.getTotalSampleId())) {
            //获取当前月份
            LocalDate currentDate = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = currentDate.format(formatter);
            //查询历史
            ProcessTotalSample processTotalSample = processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth, currentMonth));
            processSample.setTotalSampleId(processTotalSample.getId());
        }
        return processSampleMapper.pageProcessSample(page, QueryWrappers.queryWrappers(processSample));
    }
    @Override
    public int addProcessSample(ProcessSample processSample) {
        ProcessTotalSample processTotalSample;
        if (ObjectUtils.isEmpty(processSample.getTotalSampleId())){
            LocalDate dealTime = LocalDate.now();
            // å®šä¹‰æ—¥æœŸæ ¼å¼
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
            // æ ¼å¼åŒ–当前日期
            String currentMonth = dealTime.format(formatter);
            processTotalSample= processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth,currentMonth));
            processSample.setTotalSampleId(processTotalSample.getId());
        }else {
            processTotalSample= processTotalSampleMapper.selectById(processSample.getTotalSampleId());
    public void exportProcessSample(ProcessSample processSample, HttpServletResponse response) {
        List<ProcessSample> processSampleList = pageProcessSample(new Page(-1, -1), processSample).getRecords();
        InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-receive.docx");
        Configure configure = Configure.builder()
                .bind("sampleList", new HackLoopTableRenderPolicy())
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("sampleList", processSampleList);
                }});
        try {
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "检验样品登记表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        processSampleMapper.insert(processSample);
        processTotalSample.setTotalNum(processSample.getNum()+processTotalSample.getTotalNum());
        return processTotalSampleMapper.updateById(processTotalSample);
    }
    @Override
    public int delProcessSample(Integer id) {
        ProcessSample processSample = processSampleMapper.selectById(id);
        processSampleMapper.deleteById(id);
        ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
        processTotalSample.setTotalNum(processTotalSample.getTotalNum()-processSample.getNum());
        return processTotalSampleMapper.updateById(processTotalSample);
    }
    @Override
    public int doProcessSample(ProcessSample processSample) {
        if (ObjectUtils.isNotEmpty(processSample.getNum())) {
            ProcessSample oldProcessSample = processSampleMapper.selectById(processSample.getId());
            ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
            processTotalSample.setTotalNum(processTotalSample.getTotalNum() - oldProcessSample.getNum() + processSample.getNum());
            processTotalSampleMapper.updateById(processTotalSample);
        }
        return processSampleMapper.updateById(processSample);
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java
ÎļþÒÑɾ³ý
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
@@ -15,22 +15,35 @@
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.process.mapper.InspectionOrderMapper;
import com.ruoyi.process.mapper.ProcessDealMapper;
import com.ruoyi.process.mapper.ProcessSampleMapper;
import com.ruoyi.process.mapper.ProcessTotaldealMapper;
import com.ruoyi.process.pojo.InspectionOrder;
import com.ruoyi.process.pojo.ProcessDeal;
import com.ruoyi.process.pojo.ProcessSample;
import com.ruoyi.process.pojo.ProcessTotaldeal;
import com.ruoyi.process.service.ProcessDealService;
import com.ruoyi.process.service.ProcessTotaldealService;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.xml.soap.SAAJMetaFactory;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -52,10 +65,16 @@
    private ProcessTotaldealMapper processTotaldealMapper;
    @Resource
    private ProcessDealMapper processDealMapper;
    private ProcessSampleMapper processSampleMapper;
    @Value("${wordUrl}")
    private String wordUrl;
    @Resource
    private ProcessDealService processDealService;
    @Resource
    private InspectionOrderMapper inspectionOrderMapper;
   @Resource
   private ProcessDealMapper processDealMapper;
    @Value("${file.path}")
    private String imgUrl;
@@ -80,9 +99,6 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setSubmitUser(userId);
        processTotaldeal.setSubmitState("已提交");
        processTotaldeal.setSubmitUrl(user.getSignatureUrl());
        //生成样品处理申请表并将填表人的电子签名印上
        processTotaldeal.setUrl(processTotaldeal(id, user.getSignatureUrl()));
        return processTotaldealMapper.updateById(processTotaldeal);
    }
@@ -96,14 +112,9 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setExamineUser(userId);
        processTotaldeal.setExamineState(state);
        processTotaldeal.setExamineUrl(user.getSignatureUrl());
        if (state.equals("不通过")) {
            processTotaldeal.setSubmitState("待提交");
        }
        //将审核人的电子签名印上
        wordInsertUrl(new HashMap<String, Object>() {{
            put("examineUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + user.getSignatureUrl()));
        }}, wordUrl + "/" + processTotaldeal.getUrl());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
@@ -117,300 +128,112 @@
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        processTotaldeal.setRatifyUser(userId);
        processTotaldeal.setRatifyState(state);
        processTotaldeal.setRatifyUrl(user.getSignatureUrl());
        if (state.equals("不通过")) {
            processTotaldeal.setSubmitState("待提交");
        }
        //将批准人的签名印上
        wordInsertUrl(new HashMap<String, Object>() {{
            put("ratifyUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + user.getSignatureUrl()));
        }}, wordUrl + "/" + processTotaldeal.getUrl());
        return processTotaldealMapper.updateById(processTotaldeal);
    }
    //生成样品处理表word
    private String processTotaldeal(Integer id, String signatureUrl) {
        List<ProcessDeal> processDeals = processDealMapper.selectList(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getTotaldealId, id));
        String url;
        try {
    @Override
    public int addProcessTotaldeal(String month) {
        //新增总表
        ProcessTotaldeal processTotaldeal = new ProcessTotaldeal();
        List<ProcessTotaldeal> processTotaldeals = processTotaldealMapper.selectList(Wrappers.<ProcessTotaldeal>lambdaQuery()
                .eq(ProcessTotaldeal::getMonth, month));
        if (processTotaldeals.size()<=0) {
            processTotaldeal.setMonth(month);//月份
            processTotaldeal.setSubmitState("待提交");
            processTotaldealMapper.insert(processTotaldeal);
        }else {
            processTotaldeal=processTotaldeals.get(0);
        }
        //新增详情表
        //1.获取该月份的第一天和最后一天
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
        YearMonth yearMonth = YearMonth.parse(month, formatter);
        LocalDate firstDay = yearMonth.atDay(1);
        LocalDate lastDay = yearMonth.atEndOfMonth();
        //2.查询在这个时间范围内的所有样品登记的数据
        List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery()
                .between(ProcessSample::getLeaveDate, firstDay, lastDay));
        if (processSamples.size()>0){
            //获取处理方式
            InspectionOrder inspectionOrder = inspectionOrderMapper.selectById(processSamples.get(0).getInspectionOrderId());
            List<ProcessDeal> processDeals = new ArrayList<>();
            for (ProcessSample processSample : processSamples) {
                long count = processDealService.count(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getProcessSampleId, processSample.getId()));
                if (count>0){
                    continue;
                }
                ProcessDeal processDeal = new ProcessDeal();
                processDeal.setSampleName(processSample.getSampleName());//样品名称
                processDeal.setSampleCode(processSample.getSampleCode());//样品编号
                processDeal.setSampleSupplier(processSample.getSampleSupplier());//供样单位
                processDeal.setNum(processSample.getNum());//样品数量
                processDeal.setDealMethod(inspectionOrder.getProcessing()==1?"实验室处理":"委托单位取回");//处理方式
                processDeal.setDealTime(LocalDate.now());//时间=当前时间
                processDeal.setTotaldealId(processTotaldeal.getId());//总表id
                processDeal.setProcessSampleId(processSample.getId());//样品接收id
                processDeals.add(processDeal);
            }
            processDealService.saveBatch(processDeals);
        }
        return 0;
    }
    @Override
    public void exportProcessTotaldeal(Integer id, HttpServletResponse response) {
        List<ProcessDeal> sampleDealDtos = processDealMapper.selectDeal(id);
        ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
        String submitUserUrl="1";
        String examineUserUrl="1";
        String ratifyUserUrl="1";
        //获取提交人签名
        if (ObjectUtils.isNotNull(processTotaldeal.getSubmitUser())) {
            User user1 = userMapper.selectById(processTotaldeal.getSubmitUser());
            if (ObjectUtils.isEmpty(user1.getSignatureUrl())) throw new ErrorException("未找到提交人的电子签名,请上传自己的电子签名!");
            submitUserUrl = user1.getSignatureUrl();
        }
        //获取审核人签名
        if (ObjectUtils.isNotNull(processTotaldeal.getExamineUser())) {
            User user2 = userMapper.selectById(processTotaldeal.getExamineUser());
            if (ObjectUtils.isEmpty(user2.getSignatureUrl())) throw new ErrorException("未找到审核人的电子签名,请上传自己的电子签名!");
            examineUserUrl = user2.getSignatureUrl();
        }
        //获取批准人签名
        if (ObjectUtils.isNotNull(processTotaldeal.getRatifyUser())) {
            User user3 = userMapper.selectById(processTotaldeal.getRatifyUser());
            if (ObjectUtils.isEmpty(user3.getSignatureUrl())) throw new ErrorException("未找到批准人的电子签名,请上传自己的电子签名!");
            ratifyUserUrl = user3.getSignatureUrl();
        }
        // èŽ·å–è·¯å¾„
            InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-deal.docx");
            File file = File.createTempFile("temp", ".tmp");
            OutputStream outputStream = new FileOutputStream(file);
            IOUtils.copy(inputStream, outputStream);
            url = file.getAbsolutePath();
        } catch (FileNotFoundException e) {
            throw new ErrorException("找不到模板文件");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        List<Map<String, Object>> sampleList = new ArrayList<>();
        Integer index = 1;
        Integer index1 = 1;
        for (int c = 0; c < processDeals.size(); c++) {
            //超过20行换页
            if (c % 20 == 0) {
                List<RowRenderData> rows = new ArrayList<>();
                //表格的行数
                for (int i = 0; i < 21; i++) {
                    RowRenderData rowRenderData = new RowRenderData();
                    RowStyle rowStyle = new RowStyle();
                    rowStyle.setHeight(40);
                    rowRenderData.setRowStyle(rowStyle);
                    List<CellRenderData> cells = new ArrayList<>();
                    //表格的列数
                    for (int j = 0; j < 7; j++) {
                        CellRenderData cellRenderData = new CellRenderData();
                        CellStyle cellStyle = new CellStyle();
                        cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
                        cellRenderData.setCellStyle(cellStyle);
                        List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
                        ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
                        ParagraphStyle paragraphStyle = new ParagraphStyle();
                        paragraphStyle.setAlign(ParagraphAlignment.CENTER);
                        paragraphRenderData.setParagraphStyle(paragraphStyle);
                        List<RenderData> renderData = new ArrayList<>();
                        TextRenderData textRenderData = new TextRenderData();
                        Style style = new Style();
                        style.setFontFamily("宋体");
                        style.setColor("000000");
                        textRenderData.setStyle(style);
                        if (i == 0) {
                            //第一行
                            if (j == 0) {
                                //第一列序号
                                textRenderData.setText("序号@No.");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                //第二列样品名称
                                textRenderData.setText("样品名称@Sample name");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 2) {
                                //第三列样品编号
                                textRenderData.setText("样品编号@Sample number");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 3) {
                                //第四列供样单位
                                textRenderData.setText("供样单位@Sample unit");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 4) {
                                //第五列数量
                                textRenderData.setText("数量@Quantity");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 5) {
                                //第六列处理方式
                                textRenderData.setText("处理方式@Processing");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                //第七列时间
                                textRenderData.setText("时间@Date");
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        } else {
                            //其他行
                            if (j == 0) {
                                //第一列
                                try {
                                    String sampleName = processDeals.get((i - 1) + (index1 - 1) * 20).getSampleName();
                                    textRenderData.setText(index + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                index++;
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 1) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleName());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 2) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleCode());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 3) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getSampleSupplier());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 4) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getNum() + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else if (j == 5) {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getDealMethod());
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            } else {
                                try {
                                    textRenderData.setText(processDeals.get((i - 1) + (index1 - 1) * 20).getDealTime() + "");
                                } catch (Exception e) {
                                    textRenderData.setText("");
                                }
                                renderData.add(textRenderData);
                                paragraphRenderData.setContents(renderData);
                                paragraphRenderDataList.add(paragraphRenderData);
                                cellRenderData.setParagraphs(paragraphRenderDataList);
                                cells.add(cellRenderData);
                            }
                        }
                    }
                    rowRenderData.setCells(cells);
                    if (rowRenderData.getCells().size() != 0) {
                        rows.add(rowRenderData);
                    }
                }
                TableRenderData tableRenderData = new TableRenderData();
                tableRenderData.setRows(rows);
                int countSize = tableRenderData.getRows().get(0).getCells().size();
                for (RowRenderData row : tableRenderData.getRows()) {
                    if (row.getCells().size() != countSize) {
                        throw new ErrorException("每行单元格不相等");
                    }
                }
                TableStyle tableStyle = new TableStyle();
                tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
                tableStyle.setAlign(TableRowAlign.CENTER);
                BorderStyle borderStyle = new BorderStyle();
                borderStyle.setColor("000000");
                borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
                borderStyle.setSize(14);
                tableStyle.setLeftBorder(borderStyle);
                tableStyle.setTopBorder(borderStyle);
                tableStyle.setRightBorder(borderStyle);
                tableStyle.setBottomBorder(borderStyle);
                tableRenderData.setTableStyle(tableStyle);
                Map<String, Object> table = new HashMap<>();
                table.put("sample", tableRenderData);
                table.put("index1", index1);
                sampleList.add(table);
                index1++;
            }
        }
        Integer finalIndex = index1;
        XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
        Configure configure = Configure.builder()
                .bind("sampleList", new HackLoopTableRenderPolicy())
                .build();
        FilePictureRenderData finalSubmitUserUrl = submitUserUrl!="1" ? new FilePictureRenderData(100, 50, imgUrl + "/" + submitUserUrl) : null;
        FilePictureRenderData finalExamineUserUrl = examineUserUrl!="1" ? new FilePictureRenderData(100, 50, imgUrl + "/" + examineUserUrl) : null;
        FilePictureRenderData finalRatifyUserUrl = ratifyUserUrl!="1" ? new FilePictureRenderData(100, 50, imgUrl + "/" + ratifyUserUrl) : null;
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{
                    put("sampleList", sampleList);
                    put("size", finalIndex);
                    put("examineUrl", null);
                    put("ratifyUrl", null);
                    put("writeUrl", new FilePictureRenderData(100, 50, imgUrl + "/" + signatureUrl));
                    put("sampleList", sampleDealDtos);
                    put("examineUrl", finalExamineUserUrl);//审核人
                    put("ratifyUrl", finalRatifyUserUrl);//批准人
                    put("writeUrl",finalSubmitUserUrl);//提交人
                }});
        String name = UUID.randomUUID() + "_样品处理申请表" + ".docx";
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
        } catch (IOException e) {
            throw new RuntimeException(e);
            response.setContentType("application/msword");
            String fileName = URLEncoder.encode(
                    "样品处理申请表", "UTF-8");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ".docx");
            OutputStream os = response.getOutputStream();
            template.write(os);
            os.flush();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("导出失败");
        }
        //处理中英文换行的问题
        String path = wordUrl + "/" + name;
        try {
            FileInputStream stream1 = new FileInputStream(path);
            XWPFDocument document1 = new XWPFDocument(stream1);
            List<XWPFTable> xwpfTables1 = document1.getTables();
            for (int i = 0; i < xwpfTables1.size(); i++) {
                for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
                    for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
                        if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
                            String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
                            String[] split = text.split("@");
                            xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
                            XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
                            XWPFRun run = xwpfParagraph.createRun();
                            run.setText(split[0]);
                            if (ObjectUtils.isNotNull(split[1])) {
                                run.addBreak();
                                run.setText(split[1]);
                            }
                            xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
                        }
                    }
                }
            }
            FileOutputStream fileOutputStream1 = new FileOutputStream(path);
            document1.write(fileOutputStream1);
            fileOutputStream1.close();
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return name;
    }
    public int wordInsertUrl(Map<String, Object> map, String url) {
        XWPFTemplate template = XWPFTemplate.compile(url).render(map);
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(url)));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return 1;
    }
}
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
@@ -23,4 +23,17 @@
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectDeal" resultType="com.ruoyi.process.pojo.ProcessDeal">
        select ROW_NUMBER() OVER (ORDER BY id) AS indexs,
               id,
               sample_name,
               sample_code,
               sample_supplier,
               num,
               deal_method,
               deal_time
        from cnas_process_deal
        where totaldeal_id = #{id}
    </select>
</mapper>
cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml
@@ -14,7 +14,6 @@
        <result column="update_user" property="updateUser" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="total_sample_id" property="totalSampleId" />
        <result column="receive_date" property="receiveDate" />
        <result column="leave_date" property="leaveDate" />
        <result column="deal_time" property="dealTime" />
cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml
ÎļþÒÑɾ³ý
cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml
@@ -6,19 +6,14 @@
        <id column="id" property="id"/>
        <result column="examine_user" property="examineUser"/>
        <result column="examine_state" property="examineState"/>
        <result column="examine_url" property="examineUrl"/>
        <result column="examineUserName" property="examineUserName"/>
        <result column="ratify_user" property="ratifyUser"/>
        <result column="ratify_state" property="ratifyState"/>
        <result column="ratify_url" property="ratifyUrl"/>
        <result column="ratifyUserName" property="ratifyUserName"/>
        <result column="submit_user" property="submitUser"/>
        <result column="submit_state" property="submitState"/>
        <result column="submit_url" property="submitUrl"/>
        <result column="submitUserName" property="submitUserName"/>
        <result column="total_num" property="totalNum"/>
        <result column="month" property="month"/>
        <result column="url" property="url"/>
    </resultMap>
    <select id="pageProcessTotaldeal" resultType="com.ruoyi.process.pojo.ProcessTotaldeal">
        select *
cnas-process/src/main/resources/static/sample-deal.docx
Binary files differ
cnas-process/src/main/resources/static/sample-receive.docx
Binary files differ