zss
5 小时以前 3bdaa5708b94e64f813f70ede8ba0bbd1a3179ec
成品检数据查询
已添加2个文件
已修改7个文件
238 ■■■■■ 文件已修改
src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/controller/QualityInspectController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/dto/FinishedPageDto.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/dto/FinishedRatioDto.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/service/IQualityInspectService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductOrderMapper.xml 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProductOrderMapper.java
@@ -8,6 +8,8 @@
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProcessRoute;
import com.ruoyi.production.pojo.ProductOrder;
import com.ruoyi.quality.dto.FinishedPageDto;
import com.ruoyi.quality.dto.FinishedRatioDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -29,4 +31,8 @@
    Integer countPending(@Param("startDate") String startDate, @Param("endDate") String endDate);
    List<ProductOrderSourceDto> productOrderSource(@Param("orderId") Long orderId);
    IPage<FinishedPageDto> finishedPage(Page page, @Param("c") FinishedPageDto finishedPageDto);
    List<FinishedRatioDto> finishedRatio(@Param("productOrderId") Long productOrderId);
}
src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -7,6 +7,7 @@
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.quality.dto.FinishedPageDto;
import com.ruoyi.quality.dto.ProcessPageDto;
import com.ruoyi.quality.dto.QualityInspectDto;
import com.ruoyi.quality.pojo.QualityInspect;
@@ -169,4 +170,28 @@
    public AjaxResult processDetails(ProcessPageDto processPageDto) {
        return AjaxResult.success(qualityInspectService.processDetails(processPageDto));
    }
    /**
     * æˆå“æ£€åˆ†é¡µæŸ¥è¯¢
     * @param page
     * @param finishedPageDto
     * @return
     */
    @GetMapping("/finishedPage")
    @ApiOperation("成品检分页查询")
    public AjaxResult finishedPage(Page page, FinishedPageDto finishedPageDto) {
        return AjaxResult.success(qualityInspectService.finishedPage(page, finishedPageDto));
    }
    /**
     * æˆå“æ£€-计算实际投入产出比例和标准投入产出比的偏差率
     * æ ¹æ®bom来算
     * @param finishedPageDto
     * @return
     */
    @GetMapping("/finishedRatio")
    @ApiOperation("成品检-查看标准投入产出比例")
    public AjaxResult finishedRatio(FinishedPageDto finishedPageDto) {
        return AjaxResult.success(qualityInspectService.finishedRatio(finishedPageDto));
    }
}
src/main/java/com/ruoyi/quality/dto/FinishedPageDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.ruoyi.quality.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@ApiModel("质量管理---成品检(台账)")
public class FinishedPageDto {
    @ApiModelProperty("生产订单id")
    private Long productOrderId;
    @ApiModelProperty(value = "状态(1.待开始、2.进行中、3.已完成、4.已取消)")
    private Integer status;
    @ApiModelProperty(value = "生产订单号")
    private String npsNo;
    @ApiModelProperty(value = "产品编码")
    private String materialCode;
    @ApiModelProperty(value = "产品名称")
    private String productName;
    @ApiModelProperty(value = "规格")
    private String model;
    @ApiModelProperty(value = "产品类型")
    private String strength;
    @ApiModelProperty(value = "生产订单需求数量")
    private BigDecimal needQuantity;
    @ApiModelProperty("总合格数量")
    private BigDecimal qualifiedQuantity;
    @ApiModelProperty("总不合格数量")
    private BigDecimal unqualifiedQuantity;
    @ApiModelProperty("总产出数量")
    private BigDecimal quantity;
}
src/main/java/com/ruoyi/quality/dto/FinishedRatioDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.ruoyi.quality.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("质量管理---成品检(查看标准投入产出比例)")
public class FinishedRatioDto {
    @ApiModelProperty(value = "产品编码")
    private String materialCode;
    @ApiModelProperty(value = "产品名称")
    private String productName;
    @ApiModelProperty(value = "规格")
    private String model;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value = "实际投入量")
    private BigDecimal actualInputQuantity;
    @ApiModelProperty(value = "实际产出量")
    private BigDecimal actualOutputQuantity;
    @ApiModelProperty("实际投入产出比例")
    private BigDecimal actualInputOutputRatio;
    @ApiModelProperty("标准投入产出比例")
    private BigDecimal standardInputOutputRatio;
    @ApiModelProperty("实际与标准的偏差率")
    private BigDecimal deviationRate;
}
src/main/java/com/ruoyi/quality/dto/ProcessPageDto.java
@@ -10,6 +10,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Data
@@ -17,7 +18,7 @@
public class ProcessPageDto {
    @ApiModelProperty("生产报工记录的工序表id")
    private Long ProductionProductRouteItemId;
    private Long productionProductRouteItemId;
    @ApiModelProperty(value = "日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -60,7 +61,11 @@
    @ApiModelProperty("产出数量")
    private BigDecimal quantity;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate startTime;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate endTime;
}
src/main/java/com/ruoyi/quality/service/IQualityInspectService.java
@@ -6,6 +6,8 @@
import com.ruoyi.production.dto.ProcessRouteItemParamDto;
import com.ruoyi.production.pojo.ProductionOrderRouteItemParam;
import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
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.pojo.QualityInspect;
@@ -33,4 +35,8 @@
    IPage<ProcessPageDto> processPage(Page page, ProcessPageDto processPageDto);
    List<ProductionProductRouteItemParam> processDetails(ProcessPageDto processPageDto);
    IPage<FinishedPageDto> finishedPage(Page page, FinishedPageDto finishedPageDto);
    List<FinishedRatioDto> finishedRatio(FinishedPageDto finishedPageDto);
}
src/main/java/com/ruoyi/quality/service/impl/QualityInspectServiceImpl.java
@@ -15,10 +15,13 @@
import com.ruoyi.procurementrecord.service.ProcurementRecordService;
import com.ruoyi.procurementrecord.utils.StockUtils;
import com.ruoyi.production.dto.ProcessRouteItemParamDto;
import com.ruoyi.production.mapper.ProductOrderMapper;
import com.ruoyi.production.mapper.ProductionProductRouteItemMapper;
import com.ruoyi.production.mapper.ProductionProductRouteItemParamMapper;
import com.ruoyi.production.pojo.ProductionOrderRouteItemParam;
import com.ruoyi.production.pojo.ProductionProductRouteItemParam;
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;
@@ -64,6 +67,8 @@
    private ProductionProductRouteItemMapper productionProductRouteItemMapper;
    private ProductionProductRouteItemParamMapper productionProductRouteItemParamMapper;
    private ProductOrderMapper productOrderMapper;
    @Override
    public int add(QualityInspectDto qualityInspectDto) {
@@ -177,6 +182,16 @@
    }
    @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()));
src/main/resources/mapper/production/ProductOrderMapper.xml
@@ -151,4 +151,84 @@
        ORDER BY pp.apply_no
    </select>
    <select id="finishedPage" resultType="com.ruoyi.quality.dto.FinishedPageDto">
        select * from
            (select po.id productOrderId,
                    po.status,
                    po.nps_no,
                    sku.material_code,
                    pm.product_name,
                    sku.model,
                    po.strength,
                    po.quantity needQuantity,
                    sum(ppo.quantity) qualifiedQuantity,
                    sum(ppo.scrap_qty) unqualifiedQuantity,
                    sum(ppo.quantity+ppo.scrap_qty) quantity
            from product_order po
            LEFT JOIN product_material_sku sku ON po.product_material_sku_id = sku.id
            LEFT JOIN product_material pm ON sku.product_id = pm.id
            LEFT JOIN production_product_main ppm ON ppm.product_order_id = po.id
            LEFT JOIN production_product_output ppo ON ppo.product_main_id = ppm.id
            group by po.id ,
                    po.status,
                    po.nps_no,
                    sku.material_code,
                    pm.product_name,
                    sku.model,
                    po.strength,
                    po.quantity
            order by po.id desc )A
        <where>
            <if test="c.npsNo != null and c.npsNo != ''">
                AND A.nps_no LIKE CONCAT('%', #{c.npsNo}, '%')
            </if>
            <if test="c.productName != null and c.productName != ''">
                AND A.product_name LIKE CONCAT('%', #{c.productName}, '%')
            </if>
            <if test="c.materialCode != null and c.materialCode != ''">
                AND A.material_code LIKE CONCAT('%', #{c.materialCode}, '%')
            </if>
            <if test="c.model != null and c.model != ''">
                AND A.model LIKE CONCAT('%', #{c.model}, '%')
            </if>
            <if test="c.strength != null and c.strength != ''">
                AND A.strength = #{c.strength}
            </if>
        </where>
    </select>
    <select id="finishedRatio" resultType="com.ruoyi.quality.dto.FinishedRatioDto">
        select A.material_code,
               product_name,
               model,
               unit,
               actualInputQuantity,
               actualOutputQuantity,
               actualInputQuantity / actualOutputQuantity actualInputOutputRatio,
               unit_quantity standardInputOutputRatio,
               (actualInputQuantity / actualOutputQuantity - unit_quantity)/unit_quantity  deviationRate
        from (select
               sku.material_code,
               pm.product_name,
               sku.model,
               pprip.unit,
               pos.unit_quantity,
               sum(pprip.product_value) actualInputQuantity,
               sum(ppo.quantity+ppo.scrap_qty) actualOutputQuantity
        from   production_product_route_item_param pprip
        left join production_product_route_item ppri on ppri.id=pprip.production_product_route_item_id
        left join production_product_main ppm on ppm.id=ppri.product_main_id
        left join production_product_output ppo on ppm.id=ppo.product_main_id
        left join product_material_sku sku ON pprip.product_id = sku.id
        left join product_material pm ON sku.product_id = pm.id
        left join production_order_structure pos ON pos.product_model_id = pprip.product_id
        where ppm.product_order_id = #{productOrderId}
        and pos.order_id = #{productOrderId}
        and pprip.order_item_param_id is null
        group by sku.material_code,
                 pm.product_name,
                 sku.model,
                 pos.unit_quantity,
                 pprip.unit)A
    </select>
</mapper>
src/main/resources/mapper/production/ProductionProductRouteItemMapper.xml
@@ -15,7 +15,7 @@
        <result column="tenant_id" property="tenantId"/>
    </resultMap>
    <select id="processPage" resultType="com.ruoyi.quality.dto.ProcessPageDto">
        select ppri.id ProductionProductRouteItemId,
        select ppri.id productionProductRouteItemId,
               ppri.create_time,
               ppm.product_no,
               po.nps_no,
@@ -59,7 +59,7 @@
                AND po.strength = #{c.strength}
            </if>
            <if test="c.startTime != null and c.endTime != null">
                AND po.create_time BETWEEN #{c.startTime} AND #{c.endTime}
                AND ppri.create_time BETWEEN #{c.startTime} AND #{c.endTime} + INTERVAL 1 DAY - INTERVAL 1 MICROSECOND
            </if>
        order by ppri.id desc
    </select>