| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | 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.approve.service.impl.ApproveProcessServiceImpl; |
| | | import com.ruoyi.approve.vo.ApproveProcessVO; |
| | | import com.ruoyi.basic.mapper.ProductMapper; |
| | | import com.ruoyi.basic.mapper.ProductModelMapper; |
| | | import com.ruoyi.basic.pojo.Product; |
| | |
| | | import com.ruoyi.common.enums.RawMaterialCheckType; |
| | | import com.ruoyi.common.enums.RawMaterialInspectState; |
| | | import com.ruoyi.common.utils.HackLoopTableRenderPolicy; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.inspectiontask.mapper.QualityInspectItemMapper; |
| | | import com.ruoyi.inspectiontask.pojo.QualityInspectItem; |
| | | import com.ruoyi.quality.dto.RawMaterialDto; |
| | | import com.ruoyi.quality.dto.RawMaterialQualityInspectItemDto; |
| | | import com.ruoyi.quality.mapper.QualityUnqualifiedMapper; |
| | | import com.ruoyi.quality.mapper.RawMaterialMapper; |
| | | import com.ruoyi.quality.pojo.QualityInspect; |
| | | import com.ruoyi.quality.pojo.QualityInspectParam; |
| | | import com.ruoyi.quality.pojo.RawMaterial; |
| | | import com.ruoyi.quality.pojo.RawMaterialQualityInspectItem; |
| | | import com.ruoyi.quality.pojo.*; |
| | | import com.ruoyi.quality.service.RawMaterialQualityInspectItemService; |
| | | import com.ruoyi.quality.service.RawMaterialService; |
| | | import lombok.AllArgsConstructor; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | import java.io.InputStream; |
| | | import java.io.OutputStream; |
| | | import java.net.URLEncoder; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private ProductModelMapper productModelMapper; |
| | | |
| | | private ProductMapper productMapper; |
| | | |
| | | private QualityUnqualifiedMapper qualityUnqualifiedMapper; |
| | | |
| | | @Autowired |
| | | private ApproveProcessServiceImpl approveProcessService; |
| | | |
| | | @Override |
| | | public IPage<RawMaterialDto> listPage(Page page, RawMaterialDto rawMaterialDto) { |
| | |
| | | public RawMaterialDto detail(Long id) { |
| | | RawMaterial rawMaterial = rawMaterialMapper.selectById(id); |
| | | RawMaterialDto rawMaterialDto = new RawMaterialDto(); |
| | | if (rawMaterial == null) { |
| | | return rawMaterialDto; |
| | | } |
| | | BeanUtils.copyBeanProp(rawMaterialDto, rawMaterial); |
| | | // 获取检测项关联关系 |
| | | List<RawMaterialQualityInspectItem> rawQualityList = rawMaterialQualityInspectItemService.list(new LambdaQueryWrapper<RawMaterialQualityInspectItem>() |
| | |
| | | |
| | | // 查询产品id |
| | | ProductModel productModel = productModelMapper.selectById(rawMaterialDto.getProductModelId()); |
| | | Product product = productMapper.selectById(productModel.getProductId()); |
| | | rawMaterialDto.setProductId(productModel.getProductId()); |
| | | rawMaterialDto.setProductName(product.getProductName()); |
| | | rawMaterialDto.setModel(productModel.getModel()); |
| | | rawMaterialDto.setUnit(productModel.getUnit()); |
| | | rawMaterialDto.setCheckResultText(RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()) == null ? "" : RawMaterialCheckResult.fromValue(rawMaterial.getCheckResult()).getValue()); |
| | | rawMaterialDto.setCheckTypeText(RawMaterialCheckType.fromValue(rawMaterial.getCheckType()) == null ? "" : RawMaterialCheckType.fromValue(rawMaterial.getCheckType()).getValue()); |
| | | return rawMaterialDto; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean submit(Long id) { |
| | | RawMaterial rawMaterial = rawMaterialMapper.selectById(id); |
| | | if (rawMaterial.getCheckResult() == null) { |
| | | throw new RuntimeException("请先判断是否合格"); |
| | | } |
| | | |
| | | // 不合格:生成不合格记录 |
| | | if (rawMaterial.getCheckResult().equals(RawMaterialCheckResult.RawMaterialCheckResultUnqualified.getCode())) { |
| | | QualityUnqualified qualityUnqualified = new QualityUnqualified(); |
| | | qualityUnqualified.setInspectId(rawMaterial.getId());//检验id |
| | | qualityUnqualified.setInspectType(rawMaterial.getCheckType());//检验类型 |
| | | qualityUnqualified.setInspectState(0);//待处理 |
| | | qualityUnqualified.setCheckName(rawMaterial.getCheckUserName());//检验员名称 |
| | | qualityUnqualified.setCheckTime(rawMaterial.getCheckTime());//检验日期 |
| | | ProductModel productModel = productModelMapper.selectById(rawMaterial.getProductModelId()); |
| | | Product product = productMapper.selectById(productModel.getProductId()); |
| | | qualityUnqualified.setProductId(productModel.getProductId());//产品id |
| | | qualityUnqualified.setProductName(product.getProductName());//产品名称 |
| | | qualityUnqualified.setModel(productModel.getModel());//规格型号 |
| | | qualityUnqualified.setUnit(productModel.getUnit());//单位 |
| | | List<RawMaterialQualityInspectItem> inspectParams = rawMaterialQualityInspectItemService.list(Wrappers.<RawMaterialQualityInspectItem>lambdaQuery().eq(RawMaterialQualityInspectItem::getRawMaterialId, rawMaterial.getId())); |
| | | // 获取关联的QualityInspectItem项目名 |
| | | String text = inspectParams.stream().map(item -> { |
| | | QualityInspectItem qualityInspectItem = qualityInspectItemMapper.selectById(item.getQualityInspectItemId()); |
| | | return qualityInspectItem != null ? qualityInspectItem.getName() : ""; |
| | | }).collect(Collectors.joining(",")); |
| | | qualityUnqualified.setDefectivePhenomena(text + "这些项目中存在不合格");//不合格现象 |
| | | qualityUnqualifiedMapper.insert(qualityUnqualified); |
| | | } else { |
| | | //合格: 产生原料审核记录 |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | ApproveProcessVO approveProcessVO = new ApproveProcessVO(); |
| | | approveProcessVO.setApproveType(9); |
| | | approveProcessVO.setApproveRecordId(rawMaterial.getId()); |
| | | approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId()); |
| | | approveProcessVO.setApproveReason( "原料审核批号:"+rawMaterial.getBatchNo()); |
| | | Long adminUserId = 1L; // todo 假设第一个管理员的ID为1 |
| | | approveProcessVO.setApproveUserIds(String.valueOf(adminUserId)); |
| | | approveProcessVO.setApproveUser(loginUser.getUserId()); |
| | | approveProcessVO.setApproveTime(LocalDate.now().toString()); |
| | | try { |
| | | approveProcessService.addApprove(approveProcessVO); |
| | | }catch (Exception e){ |
| | | log.error("RawMaterialServiceImpl error:{}", e); |
| | | throw new RuntimeException("审批失败"); |
| | | } |
| | | } |
| | | |
| | | rawMaterial.setInspectState(RawMaterialInspectState.RawMaterialInspectStateSubmitted.getCode()); |
| | | return rawMaterialMapper.updateById(rawMaterial) > 0; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean add(RawMaterialDto rawMaterialDto) { |
| | | rawMaterialDto.setInspectState(RawMaterialInspectState.RawMaterialInspectStateUnsubmitted.getCode()); |
| | | // 新增原料 |