package com.ruoyi.inspect.controller;
|
|
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;
|
import io.swagger.annotations.ApiOperation;
|
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;
|
|
/**
|
* @Author zhuo
|
* @Date 2024/10/16
|
*/
|
@RequestMapping("/dataAnalysis")
|
@RestController
|
@AllArgsConstructor
|
@Api(tags = "数据分析")
|
public class DataAnalysisController {
|
|
private DataAnalysisService dataAnalysisService;
|
|
/**
|
* 查询物料属性柱状统计
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询物料属性柱状统计")
|
@GetMapping("/getRawPassRateByBarChart")
|
public Result getRawPassRateByBarChart(DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawPassRateByBarChart(dataAnalysisDto));
|
}
|
|
/**
|
* 查询物料属性柱状统计
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询物料属性合格率饼状图")
|
@GetMapping("/getRawPassRateByCake")
|
public Result getRawPassRateByCake(DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawPassRateByCake(dataAnalysisDto));
|
}
|
|
/**
|
* 查询物料属性合格率表格
|
*
|
* @param dataAnalysisDto 查询参数
|
* @return
|
*/
|
@ApiOperation(value = "查询物料属性合格率表格")
|
@GetMapping("/getMaterialPropTable")
|
public Result getMaterialPropTable(DataAnalysisDto dataAnalysisDto) {
|
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, "合格率统计");
|
}
|
|
/**
|
* 查询原材料项
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询原材料项")
|
@GetMapping("/getRawItemNames")
|
public Result getRawItemNames(DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawItemNames(dataAnalysisDto));
|
}
|
|
/**
|
* 查询原材料项检分析
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询原材料项检分析")
|
@PostMapping("/getRawProductAnalysis")
|
public Result getRawProductAnalysis(@RequestBody DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawProductAnalysis(dataAnalysisDto));
|
}
|
|
/**
|
* 查询原材料项检分析列表
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询原材料项检分析列表")
|
@PostMapping("/getRawProductAnalysisAllList")
|
public Result<List<IfsInventoryQuantitySupplierDto>> getRawProductAnalysisAllList(@RequestBody DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawProductAnalysisAllList(dataAnalysisDto));
|
}
|
|
/**
|
* 查询原材料项检分析列表
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询原材料项检分析合格率")
|
@PostMapping("/getRawProductAnalysisRawPass")
|
public Result getRawProductAnalysisRawPass(@RequestBody DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawProductAnalysisRawPass(dataAnalysisDto));
|
}
|
|
/**
|
* 查询原材料项检和厂家数据对比
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询原材料项检和厂家数据对比")
|
@PostMapping("/getRawSupplierCompare")
|
public Result<DeviationAnalyzeVo> getRawSupplierCompare(@RequestBody DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawSupplierCompare(dataAnalysisDto));
|
}
|
|
/**
|
* 查询本月与上个月合格率对比
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询本月与上个月合格率对比")
|
@GetMapping("/getRawUpMonth")
|
public Result getRawUpMonth(DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getRawUpMonth(dataAnalysisDto));
|
}
|
|
/**
|
* 查询检验项类型饼图
|
*
|
* @param dataAnalysisDto
|
* @return
|
*/
|
@ApiOperation(value = "查询检验项类型饼图")
|
@GetMapping("/getOrderTypeCookie")
|
public Result getOrderTypeCookie(DataAnalysisDto dataAnalysisDto) {
|
return Result.success(dataAnalysisService.getOrderTypeCookie(dataAnalysisDto));
|
}
|
|
}
|