| | |
| | | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | | |
| | |
| | | |
| | | 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()); |
| | | // String[] ignoreProperties = {"id"};//排除id属性 |
| | | // //根据产品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("该产品没有维护检验指标,请检查!!!!!!!!"); |
| | | // } |
| | | 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.updateBatchById(qualityInspectDto.getQualityInspectParams()); |
| | | } |
| | | QualityInspect qualityInspect = new QualityInspect(); |
| | | BeanUtils.copyProperties(qualityInspectDto,qualityInspect); |
| | | return qualityInspectMapper.updateById(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("该产品没有维护检验指标,请检查!!!!!!!!"); |
| | | // } |
| | | // return qualityInspectMapper.updateById(qualityInspect); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |