From e102b54d5e844c438aa3e645c84660066d0b2116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=AE=8F=E6=96=8C?= <2164406372@qq.com> Date: Fri, 22 Aug 2025 17:11:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9pqc=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/pms/controller/PqcController.java | 11 ++++++ .../sys/modules/pms/data/QcFAIRecordData.java | 4 ++ .../pms/service/Impl/PqcServiceImpl.java | 38 +++++++++++++++++++ .../sys/modules/pms/service/PqcService.java | 4 ++ src/main/resources/mapper/pms/PqcMapper.xml | 8 ++-- 5 files changed, 62 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/pms/controller/PqcController.java b/src/main/java/com/xujie/sys/modules/pms/controller/PqcController.java index 4ea3e024..11221ab0 100644 --- a/src/main/java/com/xujie/sys/modules/pms/controller/PqcController.java +++ b/src/main/java/com/xujie/sys/modules/pms/controller/PqcController.java @@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; @@ -401,5 +403,14 @@ public class PqcController { } return R.ok().put("rows",list); } + /** + * 预览SOP + * @param + * @return + */ + @PostMapping("/previewSopFile") + public void previewSopFile(@RequestBody PartSopData data ,HttpServletResponse response) throws UnsupportedEncodingException { + pqcService.previewSopFile(data,response); + } } diff --git a/src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java b/src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java index b27f45ac..f7bf20fd 100644 --- a/src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java +++ b/src/main/java/com/xujie/sys/modules/pms/data/QcFAIRecordData.java @@ -29,6 +29,10 @@ public class QcFAIRecordData extends QueryPage { private String supplierDesc; // 检验结果 private String inspectionResult; + //sop类型 + private String sopType; + //sopurl + private String sopUrl; // 送检日期 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/PqcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/PqcServiceImpl.java index b4dc9e04..92c08d56 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/PqcServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/PqcServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xujie.sys.common.utils.PageUtils; import com.xujie.sys.modules.orderIssure.vo.Part; import com.xujie.sys.modules.oss.dao.SysOssDao; +import com.xujie.sys.modules.oss.entity.SysOssEntity; import com.xujie.sys.modules.oss.service.SysOssService; import com.xujie.sys.modules.pms.data.*; import com.xujie.sys.modules.pms.entity.PurchaseOrder; @@ -26,7 +27,11 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.math.BigDecimal; +import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -807,4 +812,37 @@ public class PqcServiceImpl implements PqcService { public List querySopNum(PartSopData data) { return pqcMapper.querySopNum(data); } + + private static final String SOPURL = "172.26.68.17"; + + @Override + public void previewSopFile( PartSopData data,HttpServletResponse response) throws UnsupportedEncodingException { + String url = SOPURL+data.getSopUrl(); + // 创建文件对象 + File file = new File(url); + if (!file.exists()) { + throw new IllegalArgumentException("文件不存在"); + } + + String encodedFileName = URLEncoder.encode("sop", "UTF-8"); + // 设置响应头 + response.setContentType("application/pdf;charset=utf-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + encodedFileName); + + try (FileInputStream fis = new FileInputStream(file); + BufferedInputStream bis = new BufferedInputStream(fis); + ServletOutputStream os = response.getOutputStream()) { + + byte[] buffer = new byte[1024]; + int bytesRead; + + // 循环读取文件内容并写入到响应流中 + while ((bytesRead = bis.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); + } + + } catch (IOException e) { + throw new RuntimeException("文件下载失败", e); + } + } } diff --git a/src/main/java/com/xujie/sys/modules/pms/service/PqcService.java b/src/main/java/com/xujie/sys/modules/pms/service/PqcService.java index 05cdda5c..731fca39 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/PqcService.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/PqcService.java @@ -7,6 +7,8 @@ import com.xujie.sys.modules.pms.data.*; import com.xujie.sys.modules.pms.entity.vo.CheckSubDetailValueVo; import com.xujie.sys.modules.sys.entity.SysUserEntity; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; import java.util.List; public interface PqcService { @@ -71,4 +73,6 @@ public interface PqcService { int deleteOperationForResource2(OperationForResource data); List querySopNum(PartSopData data); + + void previewSopFile( PartSopData data,HttpServletResponse response) throws UnsupportedEncodingException; } diff --git a/src/main/resources/mapper/pms/PqcMapper.xml b/src/main/resources/mapper/pms/PqcMapper.xml index ec68343a..2aa3a035 100644 --- a/src/main/resources/mapper/pms/PqcMapper.xml +++ b/src/main/resources/mapper/pms/PqcMapper.xml @@ -49,7 +49,9 @@ isnull(dbo.joint_name2(a.site, a.bu_no, a.inspection_no, 'responsible'), '') as responsiblePersonName, a.pass_qty, a.not_pass_qty, - a.batch_qualified_qty + a.batch_qualified_qty, + a.sop_type, + a.sop_url FROM qc_pqc_record as a left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.part_no left join sys_user as u on a.inspector_no = u.username @@ -271,10 +273,10 @@ INSERT INTO qc_pqc_record (inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id, part_no, - roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,change_line_time,sop_num,eam_object_id) + roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id,change_line_time,sop_num,eam_object_id,sop_type,sop_url) VALUES (#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId}, #{partNo}, - #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{changeLineTime},#{sopNum},#{eamObjectId}) + #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId},#{changeLineTime},#{sopNum},#{eamObjectId},#{sopType},#{sopUrl}) insert into user_default_operation(username,operation,bu,bu_no,site) VALUES(#{params.username},#{params.operation},#{params.bu},#{params.buNo},#{params.site})