| | |
| | | package com.ruoyi.quality.service.impl; |
| | | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.lang.Assert; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.quality.dto.QualityInspectDto; |
| | |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @AllArgsConstructor |
| | |
| | | stockInventoryDto.setRecordId(qualityInspect.getId()); |
| | | stockInventoryDto.setProductModelId(qualityInspect.getProductModelId()); |
| | | stockInventoryDto.setQualitity(qualityInspect.getQualifiedQuantity()); |
| | | if (qualityInspect.getCheckTime() != null) { |
| | | LocalDate stockCreateDate = DateUtils.toLocalDate(qualityInspect.getCheckTime()).plusDays(1); |
| | | stockInventoryDto.setCreateTime(LocalDateTime.of(stockCreateDate, java.time.LocalTime.MIDNIGHT)); |
| | | } |
| | | stockInventoryDto.setBatchNo(resolveProductionBatchNo( |
| | | qualityInspect.getProductMainId(), |
| | | qualityInspect.getId(), |
| | |
| | | |
| | | qualityInspect.setInspectState(1);//已提交 |
| | | return qualityInspectMapper.updateById(qualityInspect); |
| | | } |
| | | |
| | | @Override |
| | | public R autoSubmit(Long id) { |
| | | if (id == null) { |
| | | return R.fail("检验单ID不能为空"); |
| | | } |
| | | QualityInspect qualityInspect = qualityInspectMapper.selectById(id); |
| | | if (qualityInspect == null) { |
| | | return R.fail("检验单不存在"); |
| | | } |
| | | if (Integer.valueOf(1).equals(qualityInspect.getInspectState())) { |
| | | return R.ok("检验单已提交"); |
| | | } |
| | | |
| | | if (ObjectUtils.isNull(qualityInspect.getCheckResult())) { |
| | | qualityInspect.setCheckResult("合格"); |
| | | } |
| | | if (ObjectUtils.isNull(qualityInspect.getQualifiedQuantity())) { |
| | | qualityInspect.setQualifiedQuantity(qualityInspect.getQuantity() == null ? BigDecimal.ZERO : qualityInspect.getQuantity()); |
| | | } |
| | | if (ObjectUtils.isNull(qualityInspect.getUnqualifiedQuantity())) { |
| | | qualityInspect.setUnqualifiedQuantity(BigDecimal.ZERO); |
| | | } |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | | int rows = submit(qualityInspect); |
| | | return rows > 0 ? R.ok("检验单提交成功") : R.fail("检验单提交失败"); |
| | | } |
| | | |
| | | private String resolveProductionBatchNo(Long productionProductMainId, |
| | |
| | | .bind("paramList", new HackLoopTableRenderPolicy()) |
| | | .build(); |
| | | String finalInspectType = inspectType; |
| | | // 检验日期在报告里只显示到日(日期字段是 java.util.Date,直接渲染会带出 00:00:00) |
| | | Map<String, Object> inspectData = BeanUtil.beanToMap(inspect); |
| | | inspectData.put("checkTime", inspect.getCheckTime() == null |
| | | ? "" : DateUtil.formatDate(inspect.getCheckTime())); |
| | | XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( |
| | | new HashMap<String, Object>() {{ |
| | | put("inspect", inspect); |
| | | put("inspect", inspectData); |
| | | put("inspectType", finalInspectType); |
| | | put("paramList", paramList); |
| | | }}); |