zouyu
2026-01-29 68d6ddbe1610b66e75ee05ad75998ce1a3caadba
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -1,6 +1,10 @@
package com.ruoyi.inspect.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.IoUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -10,6 +14,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.oa.OAProcess;
import com.ruoyi.common.oa.OAProperty;
import com.ruoyi.common.oa.OAResult;
@@ -18,6 +23,7 @@
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.dto.PushOADto;
import com.ruoyi.inspect.dto.UnqualifiedHandlerDto;
import com.ruoyi.inspect.excel.InsUnqualifiedHandlerExcelData;
import com.ruoyi.inspect.mapper.InsOrderMapper;
import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper;
import com.ruoyi.inspect.pojo.CommonOa;
@@ -29,18 +35,28 @@
import com.ruoyi.inspect.service.InsUnqualifiedHandlerService;
import com.ruoyi.inspect.vo.UnqualifiedHandlerVO;
import com.ruoyi.system.mapper.UserMapper;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
import com.ruoyi.system.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @author 27233
@@ -60,11 +76,61 @@
    private InsUnqualifiedHandlerFileService insUnqualifiedHandlerFileService;
    @Resource
    private InsOrderMapper insOrderMapper;
    @Resource
    private ISysDictTypeService sysDictTypeService;
    @Override
    public IPage<UnqualifiedHandlerVO> pageList(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto) {
        return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto));
        String feedbackStartDate = unqualifiedHandlerDto.getFeedbackStartTime();
        String feedbackEndDate = unqualifiedHandlerDto.getFeedbackEndTime();
        unqualifiedHandlerDto.setFeedbackStartTime(null);
        unqualifiedHandlerDto.setFeedbackEndTime(null);
        return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto),feedbackStartDate,feedbackEndDate);
    }
    @Override
    public void exportUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto, HttpServletResponse response) {
        response.reset();
        try{
            //查询字典
            List<SysDictData> materialPropType = sysDictTypeService.selectDictDataByType("material_prop_type");
            //查询不合格处理记录
            IPage<UnqualifiedHandlerVO> pageList = pageList(new Page<>(-1, -1), unqualifiedHandlerDto);
            List<InsUnqualifiedHandlerExcelData> records = pageList.getRecords().stream().map(m->{
                InsUnqualifiedHandlerExcelData handlerExcelData = new InsUnqualifiedHandlerExcelData();
                BeanUtil.copyProperties(m,handlerExcelData);
                handlerExcelData.setMaterialProp(materialPropType.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getMaterialProp())).findFirst().orElse(new SysDictData()).getDictLabel());
                if(StringUtils.equals(handlerExcelData.getClassification(),"0")){
                    handlerExcelData.setClassification("一类不合格");
                }else if(StringUtils.equals(handlerExcelData.getClassification(),"1")){
                    handlerExcelData.setClassification("二类不合格");
                }
                if(StringUtils.equals(handlerExcelData.getOffGradeAscription(),"0")){
                    handlerExcelData.setOffGradeAscription("生产反馈不合格");
                }else if(StringUtils.equals(handlerExcelData.getOffGradeAscription(),"1")){
                    handlerExcelData.setOffGradeAscription("检测不合格");
                }
                return handlerExcelData;
            }).collect(Collectors.toList());
            //设置response
            String fileName = "不合格处理记录" + ExcelTypeEnum.XLSX.getValue();
            fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Cache-Control", "no-cache");
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
            response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
            //导出
            EasyExcel.write(response.getOutputStream(), InsUnqualifiedHandlerExcelData.class)
                    .sheet()
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .doWrite(records);
        }catch (Exception e){
            e.printStackTrace();
            throw new RuntimeException("不合格处理记录导出失败");
        }
    }
    @Override
@@ -72,9 +138,10 @@
        //获取不合格处理记录
        UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId());
        if (vo.getRequestId() != null) {
            throw new ErrorException("该不合格处理已提交过OA");
        }
        System.out.println(vo);
//        if (vo.getRequestId() != null) {
//            throw new ErrorException("该不合格处理已提交过OA");
//        }
        //提交oa相关字段赋值
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -230,6 +297,7 @@
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
    public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
        // 删除附件, 重新添加
        insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
@@ -240,8 +308,14 @@
            }
            insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles());
        }
        return this.updateById(unqualifiedHandlerDto);
        boolean isUpdated = this.updateById(unqualifiedHandlerDto);
        if(isUpdated){
            //推送OA
            PushOADto pushOADto = new PushOADto();
            pushOADto.setHandlerId(unqualifiedHandlerDto.getId());
            pushOA(pushOADto);
        }
        return true;
    }
    /**