From 5bd1e846de7587f39d3edacfed58bfa8325c8758 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 30 一月 2026 15:09:07 +0800
Subject: [PATCH] 不合格管理:重新提交oa功能调整2
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java | 78 ++++++++++++++++++++++++++++++++++----
1 files changed, 69 insertions(+), 9 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
index d4c2a25..42e9deb 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsUnqualifiedHandlerServiceImpl.java
@@ -1,6 +1,9 @@
package com.ruoyi.inspect.service.impl;
import cn.hutool.core.bean.BeanUtil;
+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 +13,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 +22,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;
@@ -28,19 +33,23 @@
import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService;
import com.ruoyi.inspect.service.InsUnqualifiedHandlerService;
import com.ruoyi.inspect.vo.UnqualifiedHandlerVO;
-import com.ruoyi.system.mapper.UserMapper;
-import com.ruoyi.system.service.UserService;
+import com.ruoyi.system.service.ISysDictTypeService;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
+import org.apache.commons.lang3.StringUtils;
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.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
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 +69,55 @@
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");//鐗╂枡灞炴��
+ List<SysDictData> categoriesNoConformities = sysDictTypeService.selectDictDataByType("categories_no_conformities");//涓嶅悎鏍煎垎绫�
+ List<SysDictData> attributionNoConformities = sysDictTypeService.selectDictDataByType("attribution_no_conformities");// 涓嶅悎鏍煎綊灞�
+ //鏌ヨ涓嶅悎鏍煎鐞嗚褰�
+ 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());
+ handlerExcelData.setClassification(categoriesNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getClassification())).findFirst().orElse(new SysDictData()).getDictLabel());
+ handlerExcelData.setOffGradeAscription(attributionNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getOffGradeAscription())).findFirst().orElse(new SysDictData()).getDictLabel());
+ 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 +125,9 @@
//鑾峰彇涓嶅悎鏍煎鐞嗚褰�
UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId());
- if (vo.getRequestId() != null) {
- throw new ErrorException("璇ヤ笉鍚堟牸澶勭悊宸叉彁浜よ繃OA");
- }
+// if (vo.getRequestId() != null) {
+// throw new ErrorException("璇ヤ笉鍚堟牸澶勭悊宸叉彁浜よ繃OA");
+// }
//鎻愪氦oa鐩稿叧瀛楁璧嬪��
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -230,6 +283,7 @@
* @return
*/
@Override
+ @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) {
// 鍒犻櫎闄勪欢, 閲嶆柊娣诲姞
insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery()
@@ -240,8 +294,14 @@
}
insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles());
}
-
- return this.updateById(unqualifiedHandlerDto);
+ boolean isUpdated = this.updateById(unqualifiedHandlerDto);
+ if(isUpdated){
+ //鎺ㄩ�丱A
+ PushOADto pushOADto = new PushOADto();
+ pushOADto.setHandlerId(unqualifiedHandlerDto.getId());
+ pushOA(pushOADto);
+ }
+ return true;
}
/**
--
Gitblit v1.9.3