zouyu
14 小时以前 d2f503f72b5485bfee54ea296c7d0a9a243cea02
Merge remote-tracking branch 'origin/dev_ztns' into dev_ztns
已修改4个文件
105 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/MaterialPropTableDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/DataAnalysisMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java
@@ -2,7 +2,9 @@
import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.inspect.dto.DataAnalysisDto;
import com.ruoyi.inspect.dto.MaterialPropTableDTO;
import com.ruoyi.inspect.service.DataAnalysisService;
import com.ruoyi.inspect.vo.DeviationAnalyzeVo;
import io.swagger.annotations.Api;
@@ -10,6 +12,9 @@
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
/**
@@ -51,7 +56,7 @@
    /**
     * 查询物料属性合格率表格
     *
     * @param dataAnalysisDto
     * @param dataAnalysisDto 查询参数
     * @return
     */
    @ApiOperation(value = "查询物料属性合格率表格")
@@ -60,6 +65,50 @@
        return Result.success(dataAnalysisService.getMaterialPropTable(dataAnalysisDto));
    }
    @PostMapping("/exportSupplierExcel")
    public void exportSupplierExcel(HttpServletResponse response, @RequestBody List<MaterialPropTableDTO> materialProps) {
        if (materialProps == null || materialProps.isEmpty()) {
            return;
        }
        int index = 1;
        for (MaterialPropTableDTO dto : materialProps) {
            dto.setIndex(String.valueOf(index++));
        }
        int totalBatchSum = 0;
        int unqualifiedBatchSum = 0;
        for (MaterialPropTableDTO dto : materialProps) {
            if (dto.getTotalBatch() != null) {
                totalBatchSum += dto.getTotalBatch();
            }
            if (dto.getUnqualifiedBatch() != null) {
                unqualifiedBatchSum += dto.getUnqualifiedBatch();
            }
        }
        BigDecimal passRateSum = BigDecimal.ZERO;
        if (totalBatchSum > 0) {
            passRateSum = BigDecimal
                    .valueOf(totalBatchSum - unqualifiedBatchSum)
                    .multiply(BigDecimal.valueOf(100))
                    .divide(BigDecimal.valueOf(totalBatchSum), 2, RoundingMode.HALF_UP);
        }
        MaterialPropTableDTO totalRow = new MaterialPropTableDTO();
        totalRow.setIndex("合计");
        totalRow.setSupplierName("");
        totalRow.setTotalBatch(totalBatchSum);
        totalRow.setUnqualifiedBatch(unqualifiedBatchSum);
        totalRow.setPassRate(passRateSum);
        materialProps.add(totalRow);
        ExcelUtil<MaterialPropTableDTO> excelUtil = new ExcelUtil<>(MaterialPropTableDTO.class);
        excelUtil.exportExcel(response, materialProps, "合格率统计");
    }
    /**
     * 查询原材料项
     *
inspect-server/src/main/java/com/ruoyi/inspect/dto/MaterialPropTableDTO.java
@@ -1,26 +1,31 @@
package com.ruoyi.inspect.dto;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class MaterialPropTableDTO {
    @ApiModelProperty(value = "修改后批次号")
    private String updateBatchNo;
    @Excel(name = "序号")
    @ApiModelProperty(value = "序号")
    private String index;
    @ApiModelProperty(value = "抵达的采购数量")
    private BigDecimal qtyArrived;
    @Excel(name = "供应商名称")
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;
    @ApiModelProperty(value = "零件描述")
    private String partDesc;
    @Excel(name = "到货批次")
    @ApiModelProperty(value = "到货批次")
    private Integer totalBatch;
    @ApiModelProperty(value = "合格状态")
    private Integer inspectStatus;
    @Excel(name = "不合格批次")
    @ApiModelProperty(value = "不合格批次")
    private Integer unqualifiedBatch;
    @ApiModelProperty(value = "下发时间")
    private Date sendTime;
}
    @Excel(name = "合格率(%)")
    @ApiModelProperty(value = "合格率(%)")
    private BigDecimal passRate;
}
inspect-server/src/main/java/com/ruoyi/inspect/mapper/DataAnalysisMapper.java
@@ -47,6 +47,12 @@
     */
    Map<String, Object> getRawPassRateByCake(@Param("dto") DataAnalysisDto dataAnalysisDto);
    /**
     * 查看物料属性明细表格
     *
     * @param dataAnalysisDto 查找值
     * @return 明细表格
     */
    List<MaterialPropTableDTO> getMaterialPropTable(@Param("dto") DataAnalysisDto dataAnalysisDto);
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -241,17 +241,18 @@
    <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
        SELECT
        iiq.update_batch_no AS updateBatchNo, -- 修改后批次号
        iiq.qty_arrived AS qtyArrived, -- 抵达的采购数量
        iiq.part_desc AS partDesc, -- 零件描述
        iiq.inspect_status AS inspectStatus, -- 合格状态
        io1.send_time AS sendTime -- 下发时间
        iiq.supplier_name AS supplierName,
        COUNT(*) AS totalBatch,
        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unqualifiedBatch,
        ROUND(SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
        FROM ifs_inventory_quantity iiq
        INNER JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN (
        SELECT
        ins_order_id,
@@ -260,6 +261,7 @@
        FROM ins_sample
        GROUP BY ins_order_id
        ) ins ON ins.ins_order_id = io1.id
        WHERE
        iiq.is_finish = 1
        AND iiq.inspect_status IN (1,2)
@@ -280,7 +282,12 @@
            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
        </if>
        ORDER BY io1.send_time DESC
        GROUP BY
        iiq.supplier_name
        ORDER BY
        passRate DESC;
    </select>
    <select id="getRawProductAnalysisAllSample" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto">