diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java
index a36a6e880..fc4e81ad4 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java
@@ -139,6 +139,7 @@ public class MesLineController extends BaseController {
excelCols.add(new ExcelCol("标准用人", "useMan", 20));
excelCols.add(new ExcelCol("标准效率", "efficiency", 20));
excelCols.add(new ExcelCol("标准工时", "attr1", 20));
+ excelCols.add(new ExcelCol("标准效率(PC/H)", "hourEfficiency", 20));
String titleName = "线体产品信息导入";
SXSSFWorkbook workbook = null;
try {
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java
index 96a59ba92..97ae9ce69 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java
@@ -47,7 +47,8 @@ public class MesLine extends BaseEntity {
*/
@Excel(name = "标准效率")
private BigDecimal efficiency;
-
+ @Excel(name = "标准效率(PC/H)")
+ private BigDecimal hourEfficiency;
/**
* 检验工具
*/
@@ -83,6 +84,14 @@ public class MesLine extends BaseEntity {
private BigDecimal standarXl;//标准效率
private BigDecimal actXl;//实际效率
+ public BigDecimal getHourEfficiency() {
+ return hourEfficiency;
+ }
+
+ public void setHourEfficiency(BigDecimal hourEfficiency) {
+ this.hourEfficiency = hourEfficiency;
+ }
+
public String getProductCode() {
return productCode;
}
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
index 6815cce65..1159895cf 100644
--- a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
@@ -108,6 +108,7 @@
product_name,
use_man,
efficiency,
+ hour_efficiency,
attr1,
attr2,
attr3,
@@ -126,6 +127,7 @@
#{productName},
#{useMan},
#{efficiency},
+ #{hourEfficiency},
#{attr1},
#{attr2},
#{attr3},
@@ -146,6 +148,7 @@
use_man = #{useMan},
efficiency = #{efficiency},
+ hour_efficiency= #{hourEfficiency},
attr1 = #{attr1},
attr2 = #{attr2},
attr3 = #{attr3},
@@ -164,6 +167,7 @@
use_man = #{useMan},
efficiency = #{efficiency},
+ hour_efficiency= #{hourEfficiency},
attr1 = #{attr1},
attr2 = #{attr2},
attr3 = #{attr3},
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml
index 2129a115d..ba186b9d0 100644
--- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml
@@ -681,7 +681,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pow.quantity_split quantitySplit,
pow.attr3 teamLeaderName,
mlp.use_man manStandard,
- mlp.efficiency efficiency,
+ mlp.hour_efficiency efficiency,
mlp.attr1 unitWorkingHours,
pow.workorder_code workorderCode,
pow.workorder_name workorderName,
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java
index 0a7b00e23..80bcf72e2 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java
@@ -46,7 +46,7 @@ public class QcInterfaceController {
}
/**
- * 来料--异常分布
+ * 巡检--异常分布
*
* @param qcInterface
* @return
@@ -56,6 +56,17 @@ public class QcInterfaceController {
return qcInterfaceService.getCheckProjectsPie(qcInterface);
}
+ /**
+ * 来料--异常分布
+ *
+ * @param qcInterface
+ * @return
+ */
+ @PostMapping("/getCheckProjectsPieLL")
+ public List getCheckProjectsPieLL(@RequestBody QcInterface qcInterface) {
+ return qcInterfaceService.getCheckProjectsPieLL(qcInterface);
+ }
+
/**
* 来料--供应商来料订单批次不良详情
*
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
index 1a3bb13ed..130dfc2cf 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java
@@ -22,6 +22,7 @@ import com.op.system.api.domain.quality.FactoryDto;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
@@ -72,7 +73,29 @@ public class QcStaticTableController extends BaseController {
}
startPage();
List list = qcStaticTableService.selectQcStaticTableList(qcStaticTable);
- return getDataTable(list);
+ if(!CollectionUtils.isEmpty(list)){
+ return getDataTable(list);
+ }
+ return null;
+ }
+
+ @PostMapping("/getIncomeChartList")
+ @Log(title = "供应商质量统计图表", businessType = BusinessType.QUERY)
+ public List getIncomeChartList(@RequestBody QcStaticTable qcStaticTable) {
+ if (StringUtils.isNotBlank(qcStaticTable.getSupplierCode())) {
+ List codes = Arrays.asList(qcStaticTable.getSupplierCode().split(","));
+ qcStaticTable.setSupplierCodes(codes);
+ }
+ //默认时间范围T 00:00:00~T+1 00:00:00
+ if (StringUtils.isEmpty(qcStaticTable.getYearMonth())) {
+ LocalDate date = LocalDate.now();
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM");
+ String ymStr = dtf.format(date);
+ qcStaticTable.setYearMonth(ymStr);//end
+ }
+ startPage();
+ List list = qcStaticTableService.getIncomeChartList(qcStaticTable);
+ return list;
}
@RequiresPermissions("quality:qcTableIncome:list")
@@ -506,4 +529,16 @@ public class QcStaticTableController extends BaseController {
public List getTableHzNoOkData(@RequestBody QcStaticTable qcStaticTable) {
return qcStaticTableService.getTableHzNoOkData(qcStaticTable);
}
+ /**
+ * 检验分析报表--首检不良趋势图
+ **/
+
+ @PostMapping("/getTableHzDataSC")
+ public List getTableHzDataSC(@RequestBody QcStaticTable qcStaticTable) {
+ return qcStaticTableService.getTableHzDataSC(qcStaticTable);
+ }
+ @PostMapping("/getTableHzNoOkDataSC")
+ public List getTableHzNoOkDataSC(@RequestBody QcStaticTable qcStaticTable) {
+ return qcStaticTableService.getTableHzNoOkDataSC(qcStaticTable);
+ }
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java
index 908cfe8f1..828514934 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java
@@ -53,6 +53,15 @@ public class QcInterface extends BaseEntity {
private List dataBarArrays;
private List dataLineArrays;
private String equipmentTypeCode;
+ private String checkType;
+
+ public String getCheckType() {
+ return checkType;
+ }
+
+ public void setCheckType(String checkType) {
+ this.checkType = checkType;
+ }
public String getEquipmentTypeCode() {
return equipmentTypeCode;
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
index ac22c1fe4..aa3f91bbc 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
@@ -41,6 +41,7 @@ public class QcStaticTable extends BaseEntity {
private String typeCode;
private String checkResult;
private String noOkBatchRate;
+ private Double noOkBatchRateVal;
private String shiftId;
private String ymArrayStart;
private String ymArrayEnd;
@@ -114,6 +115,14 @@ public class QcStaticTable extends BaseEntity {
private List columns1;
private List columns2;
+ public Double getNoOkBatchRateVal() {
+ return noOkBatchRateVal;
+ }
+
+ public void setNoOkBatchRateVal(Double noOkBatchRateVal) {
+ this.noOkBatchRateVal = noOkBatchRateVal;
+ }
+
public String getYmdUntype() {
return ymdUntype;
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java
index a125d650c..6121e3e04 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java
@@ -51,4 +51,6 @@ public interface QcInterfaceMapper {
Map getLineChartsDatas(QcInterface qcInterface);
QcInterface getProduceHz1(QcInterface qcInterface);
+
+ List getCheckProjectsPieLL(QcInterface qcInterface);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
index 02e1b577c..7c39eb6db 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
@@ -93,4 +93,10 @@ public interface QcStaticTableMapper {
List getTableHzNoOkData(QcStaticTable qcStaticTable);
@MapKey("ymdms")
Map getNoOkRatioNum(QcStaticTable qcStaticTable);
+ @MapKey("ymdms")
+ Map getSamplesPCNum(QcStaticTable qcStaticTable);
+ @MapKey("ymdUntype")
+ Map getNoOkPCNum(QcStaticTable qcStaticTable);
+
+ List getTableHzNoOkDataSC(QcStaticTable qcStaticTable);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java
index ddf9d41ce..7059b0ef0 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java
@@ -38,4 +38,5 @@ public interface IQcInterfaceService {
QcLineChartDto getLineQcData(QcInterface qcInterface);
+ List getCheckProjectsPieLL(QcInterface qcInterface);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
index b9134bf62..e72c34567 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java
@@ -56,4 +56,10 @@ public interface IQcStaticTableService {
List getTableHzData(QcStaticTable qcStaticTable);
List getTableHzNoOkData(QcStaticTable qcStaticTable);
+
+ List getTableHzDataSC(QcStaticTable qcStaticTable);
+
+ List getTableHzNoOkDataSC(QcStaticTable qcStaticTable);
+
+ List getIncomeChartList(QcStaticTable qcStaticTable);
}
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java
index 321d0a739..114426714 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java
@@ -3,10 +3,11 @@ package com.op.quality.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.op.common.core.utils.DateUtils;
+import com.op.common.core.utils.StringUtils;
import com.op.quality.domain.*;
import com.op.quality.mapper.QcInterfaceMapper;
+import com.op.quality.mapper.QcStaticTableMapper;
import com.op.quality.service.IQcInterfaceService;
-import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -29,6 +30,8 @@ import java.util.*;
public class QcInterfaceServiceImpl implements IQcInterfaceService {
@Autowired
private QcInterfaceMapper qcInterfaceMapper;
+ @Autowired
+ private QcStaticTableMapper qcStaticTableMapper;
@Override
public List getDictData(QcInterface qcInterface) {
@@ -42,37 +45,47 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
-//发布会
-// List dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
-// if (!CollectionUtils.isEmpty(dtos) && dtos.size() == 2) {
-// QcInterface qif = new QcInterface();
-// qif.setYmdTypeName("okRate");
-// if (dtos.get(1).getQuality().equals("0")) {
-// qif.setQuality("100%");
-// } else {
-// BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
-// .subtract(new BigDecimal(dtos.get(1).getQuality())))
-// .multiply(new BigDecimal("100"))
-// .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
-// qif.setQuality(okRate.toString() + "%");
-// }
-// dtos.add(qif);
-// }
- /**质量看板测试开始**/
- List dtos = new ArrayList<>();
- QcInterface qi0 = new QcInterface();
- qi0.setYmdTypeName("all");
- qi0.setQuality("33");
- dtos.add(qi0);
- QcInterface qi1 = new QcInterface();
- qi1.setYmdTypeName("unOk");
- qi1.setQuality("0");
- dtos.add(qi1);
- QcInterface qi2 = new QcInterface();
- qi2.setYmdTypeName("okRate");
- qi2.setQuality("100%");
- dtos.add(qi2);
- /**质量看板测试结束**/
+ qcInterface.setTypeCode("checkTypeLL");
+ List dtos = qcInterfaceMapper.getOverallInfo(qcInterface);
+ if (!CollectionUtils.isEmpty(dtos)) {
+ QcInterface qi0 = new QcInterface();
+ qi0.setYmdTypeName("all");
+ qi0.setQuality(dtos.get(0).getQuality());
+ dtos.add(qi0);
+ QcInterface qi1 = new QcInterface();
+ qi1.setYmdTypeName("unOk");
+ qi1.setQuality(dtos.get(0).getNoOkQuality());
+ dtos.add(qi1);
+ QcInterface qif = new QcInterface();
+ qif.setYmdTypeName("okRate");
+ if (dtos.get(0).getNoOkQuality().equals("0.00")) {
+ qif.setQuality("100%");
+ } else {
+ BigDecimal okRate = (new BigDecimal(dtos.get(0).getQuality())
+ .subtract(new BigDecimal(dtos.get(0).getNoOkQuality())))
+ .multiply(new BigDecimal("100"))
+ .divide(new BigDecimal(dtos.get(0).getQuality()), 2, RoundingMode.HALF_UP);
+ qif.setQuality(okRate.toString() + "%");
+ }
+ dtos.add(qif);
+ dtos.remove(0);
+ }else{
+
+ }
+// /**质量看板测试开始**/
+// QcInterface qi0 = new QcInterface();
+// qi0.setYmdTypeName("all");
+// qi0.setQuality("0");
+// dtos.add(qi0);
+// QcInterface qi1 = new QcInterface();
+// qi1.setYmdTypeName("unOk");
+// qi1.setQuality("0");
+// dtos.add(qi1);
+// QcInterface qi2 = new QcInterface();
+// qi2.setYmdTypeName("okRate");
+// qi2.setQuality("0.00%");
+// dtos.add(qi2);
+// /**质量看板测试结束**/
return dtos;
}
@@ -86,12 +99,24 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
return dtos;
}
+ @Override
+ public List getCheckProjectsPieLL(QcInterface qcInterface) {
+ DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode());
+
+ String nowYMD = DateUtils.getDate();
+ qcInterface.setYmd(nowYMD);
+ qcInterface.setCheckType("checkTypeLL");
+ List dtos = qcInterfaceMapper.getCheckProjectsPieLL(qcInterface);
+ return dtos;
+ }
+
@Override
public List getSupplierBadTOP5(QcInterface qcInterface) {
DynamicDataSourceContextHolder.push(qcInterface.getFactoryCode());
String nowYMD = DateUtils.getDate();
qcInterface.setYmd(nowYMD);
+ qcInterface.setCheckType("checkTypeLL");
List dtos = qcInterfaceMapper.getSupplierBadTOP5(qcInterface);
return dtos;
}
@@ -138,68 +163,6 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
dto.setCheckStatus("0".equals(dto.getCheckStatus()) ? "待检测" : "检测完成");
dto.setCheckResult("Y".equals(dto.getCheckResult()) ? "合格" : "不合格");
}
-// /**质量看板测试开始**/
-// QcInterface q0 = new QcInterface();
-// q0.setCheckNo("20240305001");
-// q0.setIncomeBatchNo("20270122LJ20240123BBBA0G");
-// q0.setOrderNo("000800000083-1");
-// q0.setMaterialName("10小时无烟型黑蚊香(繁体)纸盒");
-// q0.setQuality("19000");
-// q0.setUnit("个");
-// q0.setSupplierName("中山市粤华包装有限公司");
-// q0.setIncomeTime("2024-03-05 00:00:00");
-// q0.setCheckTime("2024-03-05 11:32:00");
-// q0.setCheckResult("合格");
-// q0.setCheckManName("马娥章");
-// q0.setCheckName("来料检验");
-// dtos.add(q0);
-//
-// QcInterface q1 = new QcInterface();
-// q1.setCheckNo("20240306002");
-// q1.setIncomeBatchNo("20270122LJ20240123BCCA0F");
-// q1.setOrderNo("0008000001093-1");
-// q1.setMaterialName("依素猫狗(黄色)气雾盖");
-// q1.setQuality("5000");
-// q1.setUnit("个");
-// q1.setSupplierName("广州盛盈环保科技有限公司");
-// q1.setIncomeTime("2024-03-05 00:00:00");
-// q1.setCheckTime("2024-03-05 13:32:00");
-// q1.setCheckResult("合格");
-// q1.setCheckManName("马娥章");
-// q1.setCheckName("来料检验");
-// dtos.add(q1);
-//
-// QcInterface q2 = new QcInterface();
-// q2.setCheckNo("20240307002");
-// q2.setIncomeBatchNo("20270122LJ20240456BCCA0D");
-// q2.setOrderNo("0008000001193-1");
-// q2.setMaterialName("King Brand蚊片(450装)纸箱");
-// q2.setQuality("5800");
-// q2.setUnit("个");
-// q2.setSupplierName("广州市网能产品设计有限公司");
-// q2.setIncomeTime("2024-08-06 00:00:00");
-// q2.setCheckTime("2024-08-06 13:42:00");
-// q2.setCheckResult("合格");
-// q2.setCheckManName("马娥章");
-// q2.setCheckName("来料检验");
-// dtos.add(q2);
-//
-// QcInterface q3 = new QcInterface();
-// q3.setCheckNo("20240308001");
-// q3.setIncomeBatchNo("20270122LJ20240456BCBB0D");
-// q3.setOrderNo("0008000001203-1");
-// q3.setMaterialName("榄菊牌清香型蚊液(空白)纸箱");
-// q3.setQuality("7800");
-// q3.setUnit("个");
-// q3.setSupplierName("广州市网能产品设计有限公司");
-// q3.setCheckTime("2024-03-05 13:50:00");
-// q3.setIncomeTime("2024-08-06 00:00:00");
-// q3.setCheckResult("合格");
-// q3.setCheckManName("马娥章");
-// q3.setCheckName("来料检验");
-// dtos.add(q3);
-//
-// /**质量看板测试结束**/
return dtos;
}
@@ -398,7 +361,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
List dataLine0 = new ArrayList<>();//不合格率
for (String day0 : daystr0) {
QcInterface last = noOkNum.get(day0);
- if (last != null) {
+ if (last != null&& !"0.00".equals(last.getQuality())) {
dataBar0.add(last.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(last.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(last.getQuality()), 2, RoundingMode.HALF_UP);
@@ -413,7 +376,7 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService {
List dataLine1 = new ArrayList<>();//不合格率
for (String day1 : daystr1) {
QcInterface now = noOkNum.get(day1);
- if (now != null) {
+ if (now != null && !"0.00".equals(now.getQuality())) {
dataBar1.add(now.getNoOkQuality());
BigDecimal norate0 = new BigDecimal(now.getNoOkQuality()).multiply(new BigDecimal(100))
.divide(new BigDecimal(now.getQuality()), 2, RoundingMode.HALF_UP);
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
index 9e0b332b4..0a893699a 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
@@ -118,9 +118,65 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
}
return tabledtos;
-// return tabledtos.stream()
-// .filter(obj -> obj.getBatchs() != 0)
-// .collect(Collectors.toList());
+ }
+
+ @Override
+ @DS("#header.poolName")
+ public List getIncomeChartList(QcStaticTable qcStaticTable) {
+ qcStaticTable.setTypeCode("material");
+ /**base_supplier**供应商**/
+ List tabledtos = qcStaticTableMapper.selectQcStaticTableList(qcStaticTable);
+ if (CollectionUtils.isEmpty(tabledtos)) {
+ return null;
+ }
+ /**qc_check_task**总批数**/
+ Map pcMap = qcStaticTableMapper.selectPcMap(qcStaticTable, tabledtos);
+ if (pcMap == null) {
+ return null;
+ }
+ /**qc_check_task**不合格批次数**/
+ qcStaticTable.setCheckResult("N");
+ Map noOkPcMap = qcStaticTableMapper.selectPcMap(qcStaticTable, tabledtos);
+
+
+ for (QcStaticTable tabledto : tabledtos) {
+ QcStaticTable pcdto = pcMap.get(tabledto.getSupplierCode());
+ QcStaticTable numdto = noOkPcMap.get(tabledto.getSupplierCode());
+ if (pcdto != null) {
+ //总批次
+ tabledto.setBatchs(pcdto.getBatchs());
+ //总数量
+ tabledto.setNums(pcdto.getNums());
+ } else {
+ tabledto.setBatchs(0);
+ tabledto.setNums(0);
+ }
+ if (numdto != null) {
+ //不合格批次
+ tabledto.setNoOkBatchs(numdto.getBatchs());
+ } else {
+ tabledto.setNoOkBatchs(0);
+ }
+ //合格批次
+ int okBatchs = tabledto.getBatchs() - tabledto.getNoOkBatchs();
+ tabledto.setOkBatchs(okBatchs);
+ //批次不良率
+ if (tabledto.getBatchs() != 0) {
+ BigDecimal noOkBatchRate = new BigDecimal(tabledto.getNoOkBatchs()).multiply(new BigDecimal("100.00"))
+ .divide(new BigDecimal(tabledto.getBatchs()), BigDecimal.ROUND_CEILING)
+ .setScale(2, BigDecimal.ROUND_HALF_UP);
+ tabledto.setNoOkBatchRate(noOkBatchRate.toString() + "%");
+ tabledto.setNoOkBatchRateVal(noOkBatchRate.doubleValue());
+ } else {
+ tabledto.setNoOkBatchRate("0.00%");
+ tabledto.setNoOkBatchRateVal(0.00);
+ }
+ }
+ tabledtos = tabledtos.stream()
+ .filter(pieData -> !pieData.getNoOkBatchRate().equals("0.00%"))
+ .sorted(Comparator.comparingDouble(QcStaticTable::getNoOkBatchRateVal).reversed())
+ .collect(java.util.stream.Collectors.toList());
+ return tabledtos;
}
/**
@@ -795,15 +851,10 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
//qcStaticTable.setDataType("unqualified_remark");
qcStaticTable.setRemark(qcStaticTable.getCheckType());
List cols1 = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
-
if(CollectionUtils.isEmpty(cols1)){
return dto;
}
-
dto.setColumns1(cols1);
-// List cols2 = qcStaticTableMapper.getTableHzTitle2(qcStaticTable);
-//
-// dto.setColumns2(cols2);
return dto;
}
@@ -882,7 +933,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
return days;
}
-
+ /**巡检**/
@Override
@DS("#header.poolName")
public List getTableHzData(QcStaticTable qcStaticTable) {
@@ -935,7 +986,6 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
return dtos;
}
-
@Override
@DS("#header.poolName")
public List getTableHzNoOkData(QcStaticTable qcStaticTable) {
@@ -956,7 +1006,75 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
}
return dtos;
}
+ /**首检**/
+ @Override
+ @DS("#header.poolName")
+ public List getTableHzDataSC(QcStaticTable qcStaticTable) {
+ List dtos = new ArrayList<>();
+ qcStaticTable.setRemark(qcStaticTable.getCheckType());
+ List noOkTyps = qcStaticTableMapper.getTableHzTitle(qcStaticTable);
+ //第一列日期
+ List days = this.getHzDays(qcStaticTable.getIncomeTimeStr(),qcStaticTable.getYmdms());
+ //抽样批次数、不合格数
+ Map samples = qcStaticTableMapper.getSamplesPCNum(qcStaticTable);
+ if(samples.isEmpty()){
+ return dtos;
+ }
+ HashMap colMap = null;
+ for(String col:days){
+ colMap = new HashMap();
+ colMap.put("timeCol",col);
+ String samKey = col;
+ QcStaticTable sampl = samples.get(samKey);
+ if(sampl!=null&&!sampl.getSampleQuality().equals("0.00")){
+ colMap.put("sampleQuality",sampl.getSampleQuality().replaceAll("\\..*", ""));
+ BigDecimal noOkRate = new BigDecimal(sampl.getNoOkQuality()).multiply(new BigDecimal("100.00"))
+ .divide(new BigDecimal(sampl.getSampleQuality()),2, BigDecimal.ROUND_HALF_UP);
+ colMap.put("noOkRate",noOkRate);
+ }else{
+ colMap.put("sampleQuality","0");
+ colMap.put("noOkRate","0");
+ }
+ //不良数(不折算)
+ Map noOks = qcStaticTableMapper.getNoOkPCNum(qcStaticTable);
+ //缺陷不良
+ for(int i=0;i< noOkTyps.size();i++){
+ String noOkTyp = noOkTyps.get(i);
+ String noOkTypeKey = col+noOkTyp;
+ QcStaticTable noOk = noOks.get(noOkTypeKey);
+ if(noOk!=null&&noOk.getNoOkQuality()!=null) {
+ colMap.put("col"+i, noOk.getNoOkQuality().replaceAll("\\..*", ""));
+ }else{
+ colMap.put("col"+i, "0");
+ }
+ }
+
+ dtos.add(colMap);
+ }
+
+ return dtos;
+ }
+ @Override
+ @DS("#header.poolName")
+ public List getTableHzNoOkDataSC(QcStaticTable qcStaticTable) {
+ //不良数
+ List dtos = qcStaticTableMapper.getTableHzNoOkDataSC(qcStaticTable);
+
+ BigDecimal totalNoOkQuality = BigDecimal.ZERO;
+ //求不良数和
+ for (QcStaticTable dto : dtos) {
+ totalNoOkQuality = totalNoOkQuality.add(new BigDecimal(dto.getNoOkQuality()));
+ }
+ //求占比
+ for (QcStaticTable dto : dtos) {
+ BigDecimal noOkratio = new BigDecimal(dto.getNoOkQuality())
+ .divide(totalNoOkQuality,2, BigDecimal.ROUND_HALF_UP);
+ dto.setNoOkNumRate(noOkratio.toString());
+ dto.setNoOkQuality(dto.getNoOkQuality().replaceAll("\\..*", ""));
+ }
+ return dtos;
+ }
/****/
public List getHzDays(String timeStr,String ymd) {
// 返回的日期集合
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml
index 072c12706..dbe8ce651 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml
@@ -12,35 +12,43 @@
where dict_type = #{dictType} and status = '0'
+
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
index 7bbeff110..99524e471 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
@@ -690,4 +690,111 @@
group by t.class_name
) t0 order by noOkQuality desc
+
+
+