From 1b5604f8a88000e2f51d4c989fd179989468ee67 Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期一, 11 八月 2025 09:48:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/pim_yys' into pim_ywx --- src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java | 148 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 113 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java index 22055fc..4bb8185 100644 --- a/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java +++ b/src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java @@ -2,17 +2,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; 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.ruoyi.common.exception.base.BaseException; +import com.ruoyi.common.utils.HackLoopTableRenderPolicy; import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.quality.dto.QualityInspectDto; import com.ruoyi.quality.mapper.QualityInspectMapper; import com.ruoyi.quality.mapper.QualityInspectParamMapper; import com.ruoyi.quality.mapper.QualityTestStandardMapper; +import com.ruoyi.quality.mapper.QualityUnqualifiedMapper; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.quality.pojo.QualityInspectParam; import com.ruoyi.quality.pojo.QualityTestStandard; +import com.ruoyi.quality.pojo.QualityUnqualified; import com.ruoyi.quality.service.IQualityInspectParamService; import com.ruoyi.quality.service.IQualityInspectService; import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper; @@ -26,6 +34,10 @@ import org.springframework.transaction.annotation.Transactional; 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; import java.util.stream.Collectors; @@ -40,48 +52,112 @@ private QualityTestStandardMapper qualityTestStandardMapper; + private QualityUnqualifiedMapper qualityUnqualifiedMapper; + @Override - public int add(QualityInspect qualityInspect) { - String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴�� - //鏍规嵁浜у搧id鏌ヨ鎸囨爣缁存姢瀵瑰簲鏂板妫�楠屽弬鏁� - List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.selectList(Wrappers.<QualityTestStandard>lambdaQuery() - .eq(QualityTestStandard::getProductId, qualityInspect.getProductId())); - if (qualityTestStandards.size()>0){ - qualityInspectMapper.insert(qualityInspect); - List<QualityInspectParam> qualityInspectParams = qualityTestStandards.stream().map(qualityTestStandard -> { - QualityInspectParam qualityInspectParam = new QualityInspectParam(); - BeanUtils.copyProperties(qualityTestStandard, qualityInspectParam,ignoreProperties); - qualityInspectParam.setInspectId(qualityInspect.getId()); - return qualityInspectParam; - }).collect(Collectors.toList()); - qualityInspectParamService.saveBatch(qualityInspectParams); - }else{ - throw new BaseException("璇ヤ骇鍝佹病鏈夌淮鎶ゆ楠屾寚鏍�,璇锋鏌�!!!!!!!!"); + public int add(QualityInspectDto qualityInspectDto) { + QualityInspect qualityInspect = new QualityInspect(); + BeanUtils.copyProperties(qualityInspectDto,qualityInspect); + qualityInspect.setInspectState(0);//榛樿鏈彁浜� + qualityInspectMapper.insert(qualityInspect); + for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) { + qualityInspectParam.setInspectId(qualityInspect.getId()); } + qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams()); return 0; } @Override - public int updateQualityInspect(QualityInspect qualityInspect) { - String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴�� - //鍏堝垹闄ゆ墍鏈夋楠屽弬鏁板啀鏂板 - qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery() - .eq(QualityInspectParam::getInspectId,qualityInspect.getId())); - //鏍规嵁浜у搧id鏌ヨ鎸囨爣缁存姢瀵瑰簲鏂板妫�楠屽弬鏁� - List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.selectList(Wrappers.<QualityTestStandard>lambdaQuery() - .eq(QualityTestStandard::getProductId, qualityInspect.getProductId())); - if (qualityTestStandards.size()>0){ - List<QualityInspectParam> qualityInspectParams = qualityTestStandards.stream().map(qualityTestStandard -> { - QualityInspectParam qualityInspectParam = new QualityInspectParam(); - BeanUtils.copyProperties(qualityTestStandard, qualityInspectParam,ignoreProperties); - qualityInspectParam.setInspectId(qualityInspect.getId()); - return qualityInspectParam; - }).collect(Collectors.toList()); - qualityInspectParamService.saveBatch(qualityInspectParams); - }else{ - throw new BaseException("璇ヤ骇鍝佹病鏈夌淮鎶ゆ楠屾寚鏍�,璇锋鏌�!!!!!!!!"); + public QualityInspectDto getDetailById(Integer id) { + QualityInspect qualityInspect = qualityInspectMapper.selectById(id); + List<QualityInspectParam> qualityInspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, id)); + QualityInspectDto qualityInspectDto = new QualityInspectDto(); + BeanUtils.copyProperties(qualityInspect,qualityInspectDto); + qualityInspectDto.setQualityInspectParams(qualityInspectParams); + return qualityInspectDto; + } + + //鎻愪氦 + @Override + public int submit(Integer id) { + QualityInspect qualityInspect = qualityInspectMapper.selectById(id); + /*鍒ゆ柇涓嶅悎鏍�*/ + if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("涓嶅悎鏍�")){ + QualityUnqualified qualityUnqualified = new QualityUnqualified(); + BeanUtils.copyProperties(qualityInspect,qualityUnqualified); + qualityUnqualified.setInspectState(0);//寰呭鐞� + List<QualityInspectParam> inspectParams = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, id)); + String text = inspectParams.stream().map(QualityInspectParam::getParameterItem).collect(Collectors.joining(",")); + qualityUnqualified.setDefectivePhenomena(text+"杩欎簺鎸囨爣涓瓨鍦ㄤ笉鍚堟牸");//涓嶅悎鏍肩幇璞� + qualityUnqualifiedMapper.insert(qualityUnqualified); } - return qualityInspectMapper.updateById(qualityInspect); + qualityInspect.setInspectState(1);//宸叉彁浜� + return qualityInspectMapper.updateById(qualityInspect); + } + + /*鐢熸垚妫�楠屾姤鍛�*/ + @Override + public void down(HttpServletResponse response, Integer id) { + QualityInspect inspect = qualityInspectMapper.selectById(id); + String inspectType=""; + switch (inspect.getInspectType()){ + case 0: + inspectType="鍘熸潗鏂欐楠�"; + break; + case 1: + inspectType="杩囩▼妫�楠�"; + break; + case 2: + inspectType="鍑哄巶妫�楠�"; + break; + } + List<QualityInspectParam> paramList = qualityInspectParamService.list(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, id)); + int index = 1; + for (QualityInspectParam detail : paramList) { + detail.setIndex(index); + index++; + } + InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx"); + Configure configure = Configure.builder() + .bind("paramList", new HackLoopTableRenderPolicy()) + .build(); + String finalInspectType = inspectType; + XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( + new HashMap<String, Object>() {{ + put("inspect", inspect); + put("inspectType", finalInspectType); + put("paramList", paramList); + }}); + + 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(); + inputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + @Override + public int updateQualityInspect(QualityInspectDto qualityInspectDto) { + if (qualityInspectDto.getQualityInspectParams().size()>0) { + qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId,qualityInspectDto.getId())); + for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) { + qualityInspectParam.setInspectId(qualityInspectDto.getId()); + } + qualityInspectParamService.saveBatch(qualityInspectDto.getQualityInspectParams()); + } + QualityInspect qualityInspect = new QualityInspect(); + BeanUtils.copyProperties(qualityInspectDto,qualityInspect); + return qualityInspectMapper.updateById(qualityInspect); } @Override @@ -106,4 +182,6 @@ } } + + } -- Gitblit v1.9.3