| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.common.enums.StockRecordTypeEnum; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.DictUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.procurementrecord.dto.Details; |
| | | import com.ruoyi.procurementrecord.dto.ProcurementAddDto; |
| | | import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage; |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.quality.dto.QualityInspectDto; |
| | |
| | | import com.ruoyi.quality.service.IQualityInspectParamService; |
| | | import com.ruoyi.quality.service.IQualityInspectService; |
| | | import com.ruoyi.sales.mapper.SalesLedgerProductMapper; |
| | | import com.ruoyi.sales.pojo.SalesLedgerProduct; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | |
| | | public int add(QualityInspectDto qualityInspectDto) { |
| | | QualityInspect qualityInspect = new QualityInspect(); |
| | | BeanUtils.copyProperties(qualityInspectDto, qualityInspect); |
| | | validateProcessType(qualityInspect); |
| | | qualityInspect.setInspectState(0);//默认未提交 |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | for (QualityInspectParam qualityInspectParam : qualityInspectDto.getQualityInspectParams()) { |
| | |
| | | @Override |
| | | public int submit(QualityInspect inspect) { |
| | | QualityInspect qualityInspect = qualityInspectMapper.selectById(inspect.getId()); |
| | | //提交前必须判断是否合格 |
| | | if (ObjectUtils.isNull(qualityInspect.getCheckResult())) { |
| | | throw new RuntimeException("请先判断是否合格"); |
| | | } |
| | | /*判断不合格*/ |
| | | if (ObjectUtils.isNotNull(qualityInspect.getCheckResult()) && qualityInspect.getCheckResult().equals("不合格")) { |
| | | if (qualityInspect.getCheckResult().equals("不合格")) { |
| | | QualityUnqualified qualityUnqualified = new QualityUnqualified(); |
| | | BeanUtils.copyProperties(qualityInspect, qualityUnqualified); |
| | | qualityUnqualified.setInspectState(0);//待处理 |
| | |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | } else { |
| | | //合格直接入库 |
| | | stockUtils.addStock(inspect.getProductModelId(), inspect.getQuantity(), StockRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), inspect.getId()); |
| | | stockUtils.addStock(qualityInspect.getProductModelId(), qualityInspect.getQuantity(), StockInQualifiedRecordTypeEnum.QUALITYINSPECT_STOCK_IN.getCode(), qualityInspect.getId()); |
| | | } |
| | | qualityInspect.setInspectState(1);//已提交 |
| | | return qualityInspectMapper.updateById(qualityInspect); |
| | |
| | | } |
| | | QualityInspect qualityInspect = new QualityInspect(); |
| | | BeanUtils.copyProperties(qualityInspectDto, qualityInspect); |
| | | validateProcessType(qualityInspect); |
| | | return qualityInspectMapper.updateById(qualityInspect); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<QualityInspect> qualityInspectListPage(Page page, QualityInspect qualityInspect) { |
| | | public IPage<QualityInspectDto> qualityInspectListPage(Page page, QualityInspectDto qualityInspect) { |
| | | return qualityInspectMapper.qualityInspectListPage(page, qualityInspect); |
| | | } |
| | | |
| | | @Override |
| | | public void qualityInspectExport(HttpServletResponse response, QualityInspect qualityInspect) { |
| | | List<QualityInspect> qualityInspects = qualityInspectMapper.qualityInspectExport(qualityInspect); |
| | | ExcelUtil<QualityInspect> util = new ExcelUtil<QualityInspect>(QualityInspect.class); |
| | | switch (qualityInspect.getInspectType()) { |
| | | case 0: |
| | | util.exportExcel(response, qualityInspects, "原材料检验导出"); |
| | | break; |
| | | case 1: |
| | | util.exportExcel(response, qualityInspects, "过程检验导出"); |
| | | break; |
| | | case 2: |
| | | util.exportExcel(response, qualityInspects, "出厂检验导出"); |
| | | break; |
| | | if (qualityInspects != null && !qualityInspects.isEmpty()) { |
| | | for (QualityInspect inspect : qualityInspects) { |
| | | if (inspect == null || inspect.getProcessType() == null) { |
| | | continue; |
| | | } |
| | | String processLabel = DictUtils.getDictLabel("product_process_type", String.valueOf(inspect.getProcessType())); |
| | | if (StringUtils.isNotEmpty(processLabel)) { |
| | | inspect.setProcess(processLabel); |
| | | } |
| | | } |
| | | } |
| | | |
| | | ExcelUtil<QualityInspect> util = new ExcelUtil<>(QualityInspect.class); |
| | | String sheetName = "检验导出"; |
| | | if (qualityInspect != null && qualityInspect.getInspectType() != null) { |
| | | switch (qualityInspect.getInspectType()) { |
| | | case 0: |
| | | util.hideColumn("customer", "process"); |
| | | sheetName = "原材料检验导出"; |
| | | break; |
| | | case 1: |
| | | util.hideColumn("supplier", "customer"); |
| | | sheetName = "过程检验导出"; |
| | | break; |
| | | case 2: |
| | | util.hideColumn("supplier", "customer", "process"); |
| | | sheetName = "出厂检验导出"; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | util.exportExcel(response, qualityInspects, sheetName); |
| | | |
| | | } |
| | | |
| | | private void validateProcessType(QualityInspect qualityInspect) { |
| | | if (qualityInspect == null || qualityInspect.getProcessType() == null) { |
| | | return; |
| | | } |
| | | |
| | | String dictType = "product_process_type"; |
| | | String input = String.valueOf(qualityInspect.getProcessType()); |
| | | |
| | | String dictValue = DictUtils.getDictValue(dictType, input); |
| | | if (StringUtils.isNotEmpty(dictValue)) { |
| | | qualityInspect.setProcessType(Integer.valueOf(dictValue)); |
| | | return; |
| | | } |
| | | String dictValues = DictUtils.getDictValues(dictType); |
| | | if (StringUtils.isNotEmpty(dictValues)) { |
| | | List<String> valueList = Arrays.asList(dictValues.split(DictUtils.SEPARATOR)); |
| | | if (valueList.contains(input)) { |
| | | return; |
| | | } |
| | | } |
| | | |
| | | throw new ServiceException("工序类型【" + input + "】不存在,请填写正确的类型:" + DictUtils.getDictLabels(dictType)); |
| | | } |
| | | |
| | | |