| | |
| | | import com.deepoove.poi.XWPFTemplate; |
| | | import com.deepoove.poi.config.Configure; |
| | | import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.procurementrecord.service.ProcurementRecordService; |
| | | import com.ruoyi.procurementrecord.utils.StockUtils; |
| | | import com.ruoyi.production.dto.ProductMaterialSkuDto; |
| | | import com.ruoyi.production.dto.ProductionProductRouteItemParamDto; |
| | | import com.ruoyi.production.mapper.ProductOrderMapper; |
| | | import com.ruoyi.production.mapper.ProductionProductRouteItemMapper; |
| | | import com.ruoyi.production.mapper.ProductionProductRouteItemParamMapper; |
| | | import com.ruoyi.production.pojo.ProductionProductInput; |
| | | import com.ruoyi.production.pojo.ProductionProductRouteItemParam; |
| | | import com.ruoyi.production.service.ProductBomService; |
| | | import com.ruoyi.production.service.ProductMaterialService; |
| | | import com.ruoyi.production.service.ProductionProductInputService; |
| | | import com.ruoyi.quality.dto.FinishedPageDto; |
| | | import com.ruoyi.quality.dto.FinishedRatioDto; |
| | | import com.ruoyi.quality.dto.ProcessPageDto; |
| | | import com.ruoyi.quality.dto.QualityInspectDto; |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.URLEncoder; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | |
| | | public class QualityInspectServiceImpl extends ServiceImpl<QualityInspectMapper, QualityInspect> implements IQualityInspectService { |
| | | |
| | | private final StockUtils stockUtils; |
| | | private QualityInspectMapper qualityInspectMapper; |
| | | private final QualityInspectMapper qualityInspectMapper; |
| | | |
| | | private IQualityInspectParamService qualityInspectParamService; |
| | | private final IQualityInspectParamService qualityInspectParamService; |
| | | |
| | | private QualityTestStandardMapper qualityTestStandardMapper; |
| | | private final QualityTestStandardMapper qualityTestStandardMapper; |
| | | |
| | | private QualityUnqualifiedMapper qualityUnqualifiedMapper; |
| | | private final QualityUnqualifiedMapper qualityUnqualifiedMapper; |
| | | |
| | | private SalesLedgerProductMapper salesLedgerProductMapper; |
| | | private final SalesLedgerProductMapper salesLedgerProductMapper; |
| | | |
| | | private ProcurementRecordService procurementRecordService; |
| | | private final ProcurementRecordService procurementRecordService; |
| | | |
| | | private final ProductionProductRouteItemMapper productionProductRouteItemMapper; |
| | | |
| | | private final ProductionProductRouteItemParamMapper productionProductRouteItemParamMapper; |
| | | |
| | | private final ProductOrderMapper productOrderMapper; |
| | | |
| | | private final ProductionProductInputService productionProductInputService; |
| | | |
| | | private final ProductMaterialService productMaterialService; |
| | | |
| | | private final ProductBomService productBomService; |
| | | |
| | | @Override |
| | | public int add(QualityInspectDto qualityInspectDto) { |
| | |
| | | @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);//待处理 |
| | |
| | | } |
| | | |
| | | @Override |
| | | public IPage<ProcessPageDto> processPage(Page page, ProcessPageDto processPageDto) { |
| | | return productionProductRouteItemMapper.processPage(page,processPageDto); |
| | | } |
| | | |
| | | @Override |
| | | public List<ProductionProductRouteItemParamDto> processDetails(ProcessPageDto processPageDto) { |
| | | List<ProductionProductRouteItemParamDto> resultList = new ArrayList<>(); |
| | | |
| | | // 1. 查询普通参数 |
| | | List<ProductionProductRouteItemParam> paramList = productionProductRouteItemParamMapper.processDetails(processPageDto.getProductionProductRouteItemId()); |
| | | if (paramList != null && !paramList.isEmpty()) { |
| | | resultList.addAll(paramList.stream().map(param -> { |
| | | ProductionProductRouteItemParamDto dto = new ProductionProductRouteItemParamDto(); |
| | | BeanUtils.copyProperties(param, dto); |
| | | return dto; |
| | | }).collect(Collectors.toList())); |
| | | } |
| | | |
| | | // 2. 查询物料投入 |
| | | // 注意:成品检的时候可能没有具体单条报工记录ID,所以成品检详情可能需要按订单查询, |
| | | // 但这里的processDetails是“过程检详情”,通常有具体报工记录。 |
| | | // 根据报工记录 ID 查找对应的 ProductMainId |
| | | Long routeItemId = processPageDto.getProductionProductRouteItemId(); |
| | | if (routeItemId != null) { |
| | | List<ProductionProductInput> inputList = productionProductInputService.list(Wrappers.<ProductionProductInput>lambdaQuery() |
| | | .eq(ProductionProductInput::getRouteItemId, routeItemId)); |
| | | |
| | | if (inputList != null && !inputList.isEmpty()) { |
| | | for (ProductionProductInput input : inputList) { |
| | | ProductionProductRouteItemParamDto dto = new ProductionProductRouteItemParamDto(); |
| | | dto.setProductId(input.getProductId()); |
| | | dto.setBomId(input.getBomId()); |
| | | dto.setQuantity(input.getQuantity()); |
| | | dto.setProductValue(input.getQuantity()); |
| | | dto.setUnit(input.getUnit()); |
| | | |
| | | // 填充物料信息 |
| | | ProductMaterialSkuDto materialSkuDto = productMaterialService.selectProductByModelId(input.getProductId()); |
| | | if (materialSkuDto != null) { |
| | | dto.setParamName(materialSkuDto.getProductName()); |
| | | dto.setProductName(materialSkuDto.getProductName()); |
| | | dto.setModel(materialSkuDto.getModel()); |
| | | dto.setMaterialCode(materialSkuDto.getMaterialCode()); |
| | | } |
| | | String strength = productBomService.strengthById(input.getBomId()); |
| | | dto.setStrength(strength); |
| | | |
| | | resultList.add(dto); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return resultList; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<FinishedPageDto> finishedPage(Page page, FinishedPageDto finishedPageDto) { |
| | | return productOrderMapper.finishedPage(page,finishedPageDto); |
| | | } |
| | | |
| | | @Override |
| | | public List<FinishedRatioDto> finishedRatio(FinishedPageDto finishedPageDto) { |
| | | return productOrderMapper.finishedRatio(finishedPageDto.getProductOrderId()); |
| | | } |
| | | |
| | | @Override |
| | | public int updateQualityInspect(QualityInspectDto qualityInspectDto) { |
| | | if (ObjectUtils.isNotNull(qualityInspectDto.getQualityInspectParams())) { |
| | | qualityInspectParamService.remove(Wrappers.<QualityInspectParam>lambdaQuery().eq(QualityInspectParam::getInspectId, qualityInspectDto.getId())); |