| ¶Ô±ÈÐÂÎļþ |
| | |
| | | SET |
| | | @col_exists = ( |
| | | SELECT COUNT(1) |
| | | FROM information_schema.COLUMNS |
| | | WHERE TABLE_SCHEMA = DATABASE() |
| | | AND TABLE_NAME = 'quality_test_standard_binding' |
| | | AND COLUMN_NAME = 'product_model_id' |
| | | ); |
| | | |
| | | SET |
| | | @ddl = IF(@col_exists = 0, |
| | | 'ALTER TABLE quality_test_standard_binding ADD COLUMN product_model_id BIGINT NULL COMMENT ''产åè§æ ¼åå·IDï¼ä¸ºç©ºè¡¨ç¤ºç»å®æ´ä¸ªäº§å'' AFTER product_id', |
| | | 'SELECT ''product_model_id å·²åå¨ï¼è·³è¿'' AS msg'); |
| | | |
| | | PREPARE stmt FROM @ddl; |
| | | EXECUTE stmt; |
| | | DEALLOCATE PREPARE stmt; |
| | | |
| | | SET |
| | | @idx_exists = ( |
| | | SELECT COUNT(1) |
| | | FROM information_schema.STATISTICS |
| | | WHERE TABLE_SCHEMA = DATABASE() |
| | | AND TABLE_NAME = 'quality_test_standard_binding' |
| | | AND INDEX_NAME = 'idx_qtsb_standard_product' |
| | | ); |
| | | |
| | | SET |
| | | @ddl = IF(@idx_exists = 0, |
| | | 'ALTER TABLE quality_test_standard_binding ADD INDEX idx_qtsb_standard_product (test_standard_id, product_id, product_model_id)', |
| | | 'SELECT ''ç´¢å¼å·²åå¨ï¼è·³è¿'' AS msg'); |
| | | |
| | | PREPARE stmt FROM @ddl; |
| | | EXECUTE stmt; |
| | | DEALLOCATE PREPARE stmt; |
| | |
| | | import com.ruoyi.project.system.service.ISysNoticeService; |
| | | import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; |
| | | import com.ruoyi.purchase.pojo.PurchaseLedger; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityInspectParamMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | |
| | | qualityInspect.setUnit(saleProduct.getUnit()); |
| | | qualityInspect.setQuantity(saleProduct.getQuantity()); |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0, null); |
| | | List<QualityTestStandardDto> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), saleProduct.getProductModelId(), 0, null); |
| | | if (qualityTestStandard.size() > 0) { |
| | | qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId()); |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | |
| | | import com.ruoyi.production.service.ProductionProductMainService; |
| | | import com.ruoyi.project.system.domain.SysUser; |
| | | import com.ruoyi.project.system.mapper.SysUserMapper; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.mapper.*; |
| | | import com.ruoyi.quality.pojo.*; |
| | | import com.ruoyi.stock.pojo.StockInRecord; |
| | |
| | | qualityInspect.setProductMainId(productionProductMain.getId()); |
| | | qualityInspect.setProductModelId(productModel.getId()); |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), inspectType, process); |
| | | List<QualityTestStandardDto> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(product.getId(), productModel.getId(), inspectType, process); |
| | | if (!qualityTestStandard.isEmpty()) { |
| | | qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId()); |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | |
| | | import com.ruoyi.purchase.mapper.PurchaseLedgerMapper; |
| | | import com.ruoyi.purchase.pojo.PurchaseLedger; |
| | | import com.ruoyi.purchase.service.IPurchaseLedgerService; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityInspectParamMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | |
| | | qualityInspect.setUnit(saleProduct.getUnit()); |
| | | qualityInspect.setQuantity(saleProduct.getQuantity()); |
| | | qualityInspectMapper.insert(qualityInspect); |
| | | List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0,null); |
| | | List<QualityTestStandardDto> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), saleProduct.getProductModelId(), 0,null); |
| | | if (qualityTestStandard.size()>0){ |
| | | qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId()); |
| | | qualityInspectMapper.updateById(qualityInspect); |
| | |
| | | @GetMapping("/getQualityTestStandardByProductId") |
| | | @Operation(summary = "æ ¹æ®äº§åidæ¥è¯¢ç¸å
³çæ£éªæ å") |
| | | @Log(title = "æ ¹æ®äº§åidæ¥è¯¢ç¸å
³çæ£éªæ å", businessType = BusinessType.OTHER) |
| | | public R<?> getQualityTestStandardByProductId(@Nonnull Long productId, @Nonnull Integer inspectType, String process) { |
| | | return R.ok(qualityTestStandardService.getQualityTestStandardByProductId(productId,inspectType,process)); |
| | | public R<?> getQualityTestStandardByProductId(@Nonnull Long productId, @Nonnull Integer inspectType, Long productModelId, String process) { |
| | | return R.ok(qualityTestStandardService.getQualityTestStandardByProductId(productId, productModelId, inspectType, process)); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | private String productName; |
| | | |
| | | private String model; |
| | | |
| | | private Long qualityTestStandardBindingId; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.quality.dto; |
| | | |
| | | import com.ruoyi.quality.pojo.QualityTestStandard; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class QualityTestStandardDto extends QualityTestStandard { |
| | | |
| | | private String productModel; |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.pojo.QualityTestStandard; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | |
| | | IPage<QualityTestStandard> qualityTestStandardListPage(Page page, @Param("c") QualityTestStandard qualityTestStandard); |
| | | |
| | | List<QualityTestStandard> getQualityTestStandardByProductId(@Param("productId") Long productId, @Param("inspectType") Integer inspectType, @Param("process") String process); |
| | | List<QualityTestStandardDto> getQualityTestStandardByProductId(@Param("productId") Long productId, @Param("productModelId") Long productModelId, @Param("inspectType") Integer inspectType, @Param("process") String process); |
| | | } |
| | |
| | | @Schema(description = "产åID") |
| | | private Long productId; |
| | | |
| | | @Schema(description = "产åè§æ ¼åå·IDï¼ä¸ºç©ºè¡¨ç¤ºç»å®æ´ä¸ªäº§å") |
| | | private Long productModelId; |
| | | |
| | | @Schema(description = "å
³èæ£æµæ å主表id") |
| | | private Integer testStandardId; |
| | | |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.pojo.QualityTestStandard; |
| | | import com.ruoyi.quality.pojo.QualityTestStandardParam; |
| | | |
| | |
| | | |
| | | int copyParam(QualityTestStandard qualityTestStandard); |
| | | |
| | | List<QualityTestStandard> getQualityTestStandardByProductId(Long productId, Integer inspectType,String process); |
| | | List<QualityTestStandardDto> getQualityTestStandardByProductId(Long productId, Long productModelId, Integer inspectType, String process); |
| | | |
| | | int delQualityTestStandard(List<Integer> ids); |
| | | } |
| | |
| | | package com.ruoyi.quality.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.quality.dto.QualityTestStandardBindingDto; |
| | |
| | | ArrayList<QualityTestStandardBinding> qualityTestStandardBindings1 = new ArrayList<>(qualityTestStandardBindings.size()); |
| | | //夿æ¯å¦å·²ç»æç»å®è¿çæ°æ® |
| | | for (QualityTestStandardBinding qualityTestStandardBinding : qualityTestStandardBindings) { |
| | | List<QualityTestStandardBinding> testStandardBindings = qualityTestStandardBindingMapper.selectList(Wrappers.<QualityTestStandardBinding>lambdaQuery() |
| | | LambdaQueryWrapper<QualityTestStandardBinding> queryWrapper = Wrappers.<QualityTestStandardBinding>lambdaQuery() |
| | | .eq(QualityTestStandardBinding::getTestStandardId, qualityTestStandardBinding.getTestStandardId()) |
| | | .eq(QualityTestStandardBinding::getProductId, qualityTestStandardBinding.getProductId())); |
| | | if (testStandardBindings.size() > 0){ |
| | | .eq(QualityTestStandardBinding::getProductId, qualityTestStandardBinding.getProductId()); |
| | | if (qualityTestStandardBinding.getProductModelId() == null) { |
| | | queryWrapper.isNull(QualityTestStandardBinding::getProductModelId); |
| | | } else { |
| | | queryWrapper.eq(QualityTestStandardBinding::getProductModelId, qualityTestStandardBinding.getProductModelId()); |
| | | } |
| | | if (qualityTestStandardBindingMapper.selectCount(queryWrapper) > 0) { |
| | | continue; |
| | | } |
| | | qualityTestStandardBindings1.add(qualityTestStandardBinding); |
| | | } |
| | | if (qualityTestStandardBindings1.isEmpty()) { |
| | | return 0; |
| | | } |
| | | saveBatch(qualityTestStandardBindings1); |
| | | return 0; |
| | | } |
| | |
| | | import com.ruoyi.quality.mapper.QualityInspectMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardMapper; |
| | | import com.ruoyi.quality.mapper.QualityTestStandardParamMapper; |
| | | import com.ruoyi.quality.dto.QualityTestStandardDto; |
| | | import com.ruoyi.quality.pojo.QualityInspect; |
| | | import com.ruoyi.quality.pojo.QualityTestStandard; |
| | | import com.ruoyi.quality.pojo.QualityTestStandardParam; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityTestStandard> getQualityTestStandardByProductId(Long productId, Integer inspectType, String process) { |
| | | return qualityTestStandardMapper.getQualityTestStandardByProductId(productId, inspectType, process); |
| | | public List<QualityTestStandardDto> getQualityTestStandardByProductId(Long productId, Long productModelId, Integer inspectType, String process) { |
| | | return qualityTestStandardMapper.getQualityTestStandardByProductId(productId, productModelId, inspectType, process); |
| | | } |
| | | |
| | | @Override |
| | |
| | | </resultMap> |
| | | <select id="listBinding" resultType="com.ruoyi.quality.dto.QualityTestStandardBindingDto"> |
| | | select t2.product_name, |
| | | t3.model, |
| | | t1.id qualityTestStandardBindingId |
| | | from quality_test_standard_binding t1 |
| | | left join product t2 on t1.product_id = t2.id |
| | | left join product_model t3 on t1.product_model_id = t3.id |
| | | where t1.test_standard_id = #{testStandardId} |
| | | </select> |
| | | |
| | |
| | | AND inspect_type =#{c.inspectType} |
| | | </if> |
| | | </select> |
| | | <select id="getQualityTestStandardByProductId" resultType="com.ruoyi.quality.pojo.QualityTestStandard"> |
| | | SELECT qts.* |
| | | <select id="getQualityTestStandardByProductId" resultType="com.ruoyi.quality.dto.QualityTestStandardDto"> |
| | | SELECT DISTINCT qts.*, pm.model as product_model |
| | | FROM quality_test_standard qts |
| | | left join quality_test_standard_binding qtsb on qtsb.test_standard_id = qts.id |
| | | left join technology_operation toper on qts.process_id = toper.id |
| | | WHERE qtsb.product_id = #{productId} |
| | | AND qts.inspect_type = #{inspectType} |
| | | left join product_model pm on qtsb.product_model_id = pm.id |
| | | WHERE qts.inspect_type = #{inspectType} |
| | | AND ( |
| | | qtsb.product_id = #{productId} |
| | | or qtsb.product_id in ( |
| | | WITH RECURSIVE product_parent AS ( |
| | | SELECT parent_id |
| | | FROM product |
| | | WHERE id = #{productId} AND parent_id IS NOT NULL |
| | | UNION ALL |
| | | SELECT p.parent_id |
| | | FROM product p |
| | | INNER JOIN product_parent pp ON p.id = pp.parent_id |
| | | WHERE p.parent_id IS NOT NULL |
| | | ) |
| | | SELECT parent_id FROM product_parent |
| | | ) |
| | | ) |
| | | <if test="productModelId != null"> |
| | | and (qtsb.product_model_id is null or qtsb.product_model_id = #{productModelId}) |
| | | </if> |
| | | <if test="process!='' and process!=null"> |
| | | and toper.name = #{process} |
| | | </if> |
| | | order by qts.id desc |
| | | order by qtsb.product_model_id is not null, qts.id desc |
| | | </select> |
| | | </mapper> |