质量报表修改

master
zhaoxiaolin 8 months ago
parent 617f8add00
commit 4f6b7c2990

@ -131,8 +131,9 @@
<if test="prodType != null and prodType != ''">and pow.prod_type = #{prodType}</if> <if test="prodType != null and prodType != ''">and pow.prod_type = #{prodType}</if>
<if test="factoryCode != null and factoryCode != ''">and pow.factory_code = #{factoryCode}</if> <if test="factoryCode != null and factoryCode != ''">and pow.factory_code = #{factoryCode}</if>
<if test="endFlag != null and endFlag != ''">and pow.end_flag = #{endFlag}</if> <if test="endFlag != null and endFlag != ''">and pow.end_flag = #{endFlag}</if>
<if test="productDateStart != null ">and CONVERT(varchar(10),pow.product_date, 120) >= <if test="productDateStart != null ">and CONVERT(varchar(10),pow.product_date, 120) >= '${productDateStart}'</if>
'${productDateStart}' <if test="prodLineCode != null and prodLineCode != ''">
and pow.prod_line_code like concat('%', #{prodLineCode},'%')
</if> </if>
<if test="productDateEnd != null ">and '${productDateEnd}' >= CONVERT(varchar(10),pow.product_date, 120)</if> <if test="productDateEnd != null ">and '${productDateEnd}' >= CONVERT(varchar(10),pow.product_date, 120)</if>
and pow.parent_order = #{parentOrder} and pow.parent_order = #{parentOrder}

@ -124,11 +124,6 @@ public class QcStaticTableController extends BaseController {
} }
List<QcStaticTable> serieDTOs = qcStaticTableService.getProduceNames(qcStaticTable);
//legendData
List<String> pnames = serieDTOs.stream().map(u -> u.getMaterialName()).collect(Collectors.toList());
resultdto.setLegendData(pnames);
Map<String, QcStaticTable> seriesdtos = null; Map<String, QcStaticTable> seriesdtos = null;
if ("ymd".equals(qcStaticTable.getDataType())) {//ymd if ("ymd".equals(qcStaticTable.getDataType())) {//ymd
//code->materialCode+yyyy-mm-dd //code->materialCode+yyyy-mm-dd
@ -139,46 +134,131 @@ public class QcStaticTableController extends BaseController {
} }
List<ChartDTO> seriesChart = new ArrayList<>(); List<ChartDTO> seriesChart = new ArrayList<>();
for (QcStaticTable serieDTO : serieDTOs) {
ChartDTO chartDTO = new ChartDTO();
chartDTO.setName(serieDTO.getMaterialName());
chartDTO.setType("line");
String keyPre = serieDTO.getMaterialCode();
List<Double> datas = new ArrayList<>();
for (String ymd : resultdto.getxAxis()) {
String key = keyPre + ymd;
QcStaticTable mdata = seriesdtos.get(key);
if (mdata != null) {
if (mdata.getaNoOkquality() == null) {
mdata.setaNoOkquality(new BigDecimal("0"));
}
if (mdata.getbNoOkquality() == null) {
mdata.setbNoOkquality(new BigDecimal("0"));
}
if (mdata.getcNoOkquality() == null) {
mdata.setcNoOkquality(new BigDecimal("0"));
}
if (!"0.00".equals(mdata.getSampleQuality())) {
BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65"))
.add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35)))
.divide(new BigDecimal(mdata.getSampleQuality()))
.setScale(2, BigDecimal.ROUND_HALF_UP);
datas.add(defectRate.doubleValue());
} else {
datas.add(0.00);
}
ChartDTO chartDTO = new ChartDTO();
List<Double> datas = new ArrayList<>();
for (String ymd : resultdto.getxAxis()) {
String key = ymd;
QcStaticTable mdata = seriesdtos.get(key);
if (mdata != null) {
if (mdata.getaNoOkquality() == null) {
mdata.setaNoOkquality(new BigDecimal("0"));
}
if (mdata.getbNoOkquality() == null) {
mdata.setbNoOkquality(new BigDecimal("0"));
}
if (mdata.getcNoOkquality() == null) {
mdata.setcNoOkquality(new BigDecimal("0"));
}
if (!"0.00".equals(mdata.getSampleQuality())) {
BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).add(mdata.getcNoOkquality()))
.divide(new BigDecimal(mdata.getSampleQuality()),2,BigDecimal.ROUND_HALF_UP)
.multiply(new BigDecimal("100.00"));
datas.add(defectRate.doubleValue());
} else { } else {
datas.add(0.00); datas.add(0.00);
} }
} else {
datas.add(0.00);
} }
chartDTO.setData(datas);
seriesChart.add(chartDTO);
} }
chartDTO.setData(datas);
seriesChart.add(chartDTO);
resultdto.setSeries(seriesChart); resultdto.setSeries(seriesChart);
return resultdto; return resultdto;
} }
/**精确到每个产品**/
// public QcStaticTable getProduceChartData(QcStaticTable qcStaticTable) {
// QcStaticTable resultdto = new QcStaticTable();
// //默认时间范围T 00:00:00~T+1 00:00:00
// if (StringUtils.isEmpty(qcStaticTable.getYmArrayStart())) {
// LocalDate date = LocalDate.now();
// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM");
// String ymStr = dtf.format(date);
// qcStaticTable.setYmArrayStart(ymStr);
// qcStaticTable.setYmArrayEnd(ymStr);
// }
// if (StringUtils.isNotBlank(qcStaticTable.getMaterialCode())) {
// qcStaticTable.setMaterialCode("'" + qcStaticTable.getMaterialCode().replace(",", "','") + "'");
// }
// //xAxis;
// if (qcStaticTable.getYmArrayStart().equals(qcStaticTable.getYmArrayEnd())) {
// /**月内每日**/
// List<String> days = this.getXNames(qcStaticTable.getYmArrayStart() + "-01",
// qcStaticTable.getYmArrayEnd() + "-01", "ymd");
// resultdto.setxAxis(days);
//
// qcStaticTable.setDataType("ymd");
// qcStaticTable.setYmArrayStart(days.get(0));
// qcStaticTable.setYmArrayEnd(days.get(days.size() - 1));
// } else {
// /**年内各月**/
// List<String> months = this.getXNames(qcStaticTable.getYmArrayStart(), qcStaticTable.getYmArrayEnd(), "ym");
// resultdto.setxAxis(months);
//
// qcStaticTable.setDataType("ym");
// qcStaticTable.setYmArrayStart(months.get(0));
// qcStaticTable.setYmArrayEnd(months.get(months.size() - 1));
// }
//
//
// List<QcStaticTable> serieDTOs = qcStaticTableService.getProduceNames(qcStaticTable);
// //legendData
// List<String> pnames = serieDTOs.stream().map(u -> u.getMaterialName()).collect(Collectors.toList());
// resultdto.setLegendData(pnames);
//
// Map<String, QcStaticTable> seriesdtos = null;
// if ("ymd".equals(qcStaticTable.getDataType())) {//ymd
// //code->materialCode+yyyy-mm-dd
// seriesdtos = qcStaticTableService.getProduceChartData(qcStaticTable);
// } else {//ym
// //code->materialCode+yyyy-mm-dd
// seriesdtos = qcStaticTableService.getProduceChartDataYM(qcStaticTable);
// }
//
// List<ChartDTO> seriesChart = new ArrayList<>();
// for (QcStaticTable serieDTO : serieDTOs) {
// ChartDTO chartDTO = new ChartDTO();
// chartDTO.setName(serieDTO.getMaterialName());
// chartDTO.setType("line");
// String keyPre = serieDTO.getMaterialCode();
// List<Double> datas = new ArrayList<>();
// for (String ymd : resultdto.getxAxis()) {
// String key = keyPre + ymd;
// QcStaticTable mdata = seriesdtos.get(key);
// if (mdata != null) {
// if (mdata.getaNoOkquality() == null) {
// mdata.setaNoOkquality(new BigDecimal("0"));
// }
// if (mdata.getbNoOkquality() == null) {
// mdata.setbNoOkquality(new BigDecimal("0"));
// }
// if (mdata.getcNoOkquality() == null) {
// mdata.setcNoOkquality(new BigDecimal("0"));
// }
// if (!"0.00".equals(mdata.getSampleQuality())) {
// BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65"))
// .add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35)))
// .divide(new BigDecimal(mdata.getSampleQuality()))
// .setScale(2, BigDecimal.ROUND_HALF_UP);
// datas.add(defectRate.doubleValue());
// } else {
// datas.add(0.00);
// }
//
// } else {
// datas.add(0.00);
// }
// }
// chartDTO.setData(datas);
// seriesChart.add(chartDTO);
// }
// resultdto.setSeries(seriesChart);
//
// return resultdto;
// }
public List<String> getXNames(String startMonth, String endMonth, String type) { public List<String> getXNames(String startMonth, String endMonth, String type) {
// 返回的日期集合 // 返回的日期集合
@ -262,12 +342,12 @@ public class QcStaticTableController extends BaseController {
public TableDataInfo getXJCheckTableList(QcStaticTable qcStaticTable) { public TableDataInfo getXJCheckTableList(QcStaticTable qcStaticTable) {
//默认时间范围T 00:00:00~T+1 00:00:00 //默认时间范围T 00:00:00~T+1 00:00:00
if (StringUtils.isEmpty(qcStaticTable.getYearMonth())) { // if (StringUtils.isEmpty(qcStaticTable.getYearMonth())) {
LocalDate date = LocalDate.now(); // LocalDate date = LocalDate.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM"); // DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM");
String ymStr = dtf.format(date); // String ymStr = dtf.format(date);
qcStaticTable.setYearMonth(ymStr);//end // qcStaticTable.setYearMonth(ymStr);//end
} // }
startPage(); startPage();
List<QcStaticTable> list = qcStaticTableService.getXJCheckTableList(qcStaticTable); List<QcStaticTable> list = qcStaticTableService.getXJCheckTableList(qcStaticTable);
return getDataTable(list); return getDataTable(list);

@ -61,6 +61,7 @@ public class QcStaticTable extends BaseEntity {
private String unit; private String unit;
@Excel(name = "抽样数量") @Excel(name = "抽样数量")
private String sampleQuality; private String sampleQuality;
private String noOkQuality;
@Excel(name = "不良数量") @Excel(name = "不良数量")
private int noOkNums; private int noOkNums;
@Excel(name = "不良比例") @Excel(name = "不良比例")
@ -79,6 +80,7 @@ public class QcStaticTable extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date incomeTime; private Date incomeTime;
private String incomeTimeStr;
private String checkManCode; private String checkManCode;
private String checkManName; private String checkManName;
private String ruleName; private String ruleName;
@ -109,6 +111,22 @@ public class QcStaticTable extends BaseEntity {
private BigDecimal upperDiff; private BigDecimal upperDiff;
private BigDecimal downDiff; private BigDecimal downDiff;
public String getIncomeTimeStr() {
return incomeTimeStr;
}
public void setIncomeTimeStr(String incomeTimeStr) {
this.incomeTimeStr = incomeTimeStr;
}
public String getNoOkQuality() {
return noOkQuality;
}
public void setNoOkQuality(String noOkQuality) {
this.noOkQuality = noOkQuality;
}
public String getDetailId() { public String getDetailId() {
return detailId; return detailId;
} }

@ -126,15 +126,15 @@ public class QcDefectTypeServiceImpl implements IQcDefectTypeService {
public AjaxResult updateQcDefectType(QcDefectType qcDefectType) { public AjaxResult updateQcDefectType(QcDefectType qcDefectType) {
// 检验 // 检验
QcDefectType checkQuery = new QcDefectType(); // QcDefectType checkQuery = new QcDefectType();
checkQuery.setDefectType(qcDefectType.getDefectType()); // checkQuery.setDefectType(qcDefectType.getDefectType());
checkQuery.setDefectSubclass(qcDefectType.getDefectSubclass()); // checkQuery.setDefectSubclass(qcDefectType.getDefectSubclass());
List<QcDefectType> check = qcDefectTypeMapper.selectQcDefectTypeList(checkQuery); // List<QcDefectType> check = qcDefectTypeMapper.selectQcDefectTypeList(checkQuery);
if (check.size() > 0) { // if (check.size() > 0) {
if (!check.get(0).equals(qcDefectType.getDefectCode())) { // if (!check.get(0).equals(qcDefectType.getDefectCode())) {
return error(500, "不良子类已存在!修改失败!"); // return error(500, "不良子类已存在!修改失败!");
} // }
} // }
qcDefectType.setUpdateBy(SecurityContextHolder.getUserName()); qcDefectType.setUpdateBy(SecurityContextHolder.getUserName());
qcDefectType.setUpdateTime(DateUtils.getNowDate()); qcDefectType.setUpdateTime(DateUtils.getNowDate());
// 插入数据库 // 插入数据库

@ -85,7 +85,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
//合格批次 //合格批次
int okBatchs = tabledto.getBatchs() - tabledto.getNoOkBatchs(); int okBatchs = tabledto.getBatchs() - tabledto.getNoOkBatchs();
tabledto.setOkBatchs(okBatchs); tabledto.setOkBatchs(okBatchs);
//批次合格 //批次不良
if (tabledto.getBatchs() != 0) { if (tabledto.getBatchs() != 0) {
BigDecimal noOkBatchRate = new BigDecimal(tabledto.getNoOkBatchs()).multiply(new BigDecimal("100.00")) BigDecimal noOkBatchRate = new BigDecimal(tabledto.getNoOkBatchs()).multiply(new BigDecimal("100.00"))
.divide(new BigDecimal(tabledto.getBatchs()), BigDecimal.ROUND_CEILING) .divide(new BigDecimal(tabledto.getBatchs()), BigDecimal.ROUND_CEILING)
@ -464,15 +464,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
@DS("#header.poolName") @DS("#header.poolName")
public ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable) { public ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable) {
ChartSeriesDTO seriesDTO = new ChartSeriesDTO(); ChartSeriesDTO seriesDTO = new ChartSeriesDTO();
//获取当天参与生产的车间
List<QcStaticTable> legends = qcStaticTableMapper.getLegendData(qcStaticTable);
List<String> legendData = new ArrayList<>();
if (!CollectionUtils.isEmpty(legends)) {
legendData = legends.stream().map(QcStaticTable::getSupplierName).collect(Collectors.toList());
} else {
return null;
}
seriesDTO.setLegendData(legendData);
//横轴时间 //横轴时间
qcStaticTable.setStartDateStr(qcStaticTable.getYmdms() + " 08:00:00"); qcStaticTable.setStartDateStr(qcStaticTable.getYmdms() + " 08:00:00");
qcStaticTable.setEndDateStr(qcStaticTable.getYmdms() + " 08:00:00"); qcStaticTable.setEndDateStr(qcStaticTable.getYmdms() + " 08:00:00");
@ -482,31 +474,71 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
Map<String, QcStaticTable> dataMap = qcStaticTableMapper.getXJMapData(qcStaticTable); Map<String, QcStaticTable> dataMap = qcStaticTableMapper.getXJMapData(qcStaticTable);
List<ChartDTO> series = new ArrayList<>(); List<ChartDTO> series = new ArrayList<>();
ChartDTO serie = null; ChartDTO serie = new ChartDTO();
for (QcStaticTable legend : legends) { List<Double> data = new ArrayList<>();
serie = new ChartDTO(); for (String houreName : xAxisData) {
serie.setName(legend.getSupplierName()); String key = houreName.replace("时", "");
List<Double> data = new ArrayList<>(); QcStaticTable qt = dataMap.get(key);
for (String houreName : xAxisData) { if (qt != null && StringUtils.isNotBlank(qt.getSampleQuality())) {
String key = legend.getSupplierCode() + houreName.replace("时", ""); BigDecimal noOkRate = new BigDecimal(qt.getNoOkNums())
QcStaticTable qt = dataMap.get(key); .multiply(new BigDecimal(100))
if (qt != null && StringUtils.isNotBlank(qt.getSampleQuality())) { .divide(new BigDecimal(qt.getSampleQuality()), 2, BigDecimal.ROUND_HALF_UP);
BigDecimal noOkRate = new BigDecimal(qt.getNoOkNums()) data.add(noOkRate.doubleValue());
.multiply(new BigDecimal(100)) } else {
.divide(new BigDecimal(qt.getSampleQuality()), 2, BigDecimal.ROUND_HALF_UP); data.add(0.00);
data.add(noOkRate.doubleValue());
} else {
data.add(0.00);
}
serie.setData(data);
} }
serie.setData(data); serie.setData(data);
series.add(serie);
} }
serie.setData(data);
series.add(serie);
seriesDTO.setSeries(series); seriesDTO.setSeries(series);
return seriesDTO; return seriesDTO;
} }
// public ChartSeriesDTO getXJChartData(QcStaticTable qcStaticTable) {
// ChartSeriesDTO seriesDTO = new ChartSeriesDTO();
// //获取当天参与生产的车间
// List<QcStaticTable> legends = qcStaticTableMapper.getLegendData(qcStaticTable);
// List<String> legendData = new ArrayList<>();
// if (!CollectionUtils.isEmpty(legends)) {
// legendData = legends.stream().map(QcStaticTable::getSupplierName).collect(Collectors.toList());
// } else {
// return null;
// }
// seriesDTO.setLegendData(legendData);
// //横轴时间
// qcStaticTable.setStartDateStr(qcStaticTable.getYmdms() + " 08:00:00");
// qcStaticTable.setEndDateStr(qcStaticTable.getYmdms() + " 08:00:00");
// List<String> xAxisData = this.getHourProductionTitle(qcStaticTable);
// seriesDTO.setxAxisData(xAxisData);
// //数据
// Map<String, QcStaticTable> dataMap = qcStaticTableMapper.getXJMapData(qcStaticTable);
//
// List<ChartDTO> series = new ArrayList<>();
// ChartDTO serie = null;
// for (QcStaticTable legend : legends) {
// serie = new ChartDTO();
// serie.setName(legend.getSupplierName());
// List<Double> data = new ArrayList<>();
// for (String houreName : xAxisData) {
// String key = legend.getSupplierCode() + houreName.replace("时", "");
// QcStaticTable qt = dataMap.get(key);
// if (qt != null && StringUtils.isNotBlank(qt.getSampleQuality())) {
// BigDecimal noOkRate = new BigDecimal(qt.getNoOkNums())
// .multiply(new BigDecimal(100))
// .divide(new BigDecimal(qt.getSampleQuality()), 2, BigDecimal.ROUND_HALF_UP);
// data.add(noOkRate.doubleValue());
// } else {
// data.add(0.00);
// }
// serie.setData(data);
// }
// serie.setData(data);
// series.add(serie);
// }
// seriesDTO.setSeries(series);
//
// return seriesDTO;
// }
@Override @Override
@DS("#header.poolName") @DS("#header.poolName")

@ -87,8 +87,8 @@
<if test="factoryCode != null and factoryCode != ''">and qct.factory_code = #{factoryCode}</if> <if test="factoryCode != null and factoryCode != ''">and qct.factory_code = #{factoryCode}</if>
<if test="incomeTimeStart != null ">and CONVERT(varchar(30),qct.income_time, 120) >= #{incomeTimeStart}</if> <if test="incomeTimeStart != null ">and CONVERT(varchar(30),qct.income_time, 120) >= #{incomeTimeStart}</if>
<if test="incomeTimeEnd != null ">and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120)</if> <if test="incomeTimeEnd != null ">and #{incomeTimeEnd} > CONVERT(varchar(30),qct.income_time, 120)</if>
<if test="checkTimeStart != null ">and CONVERT(varchar(30),qct.check_time, 120) >= #{checkTimeStart}</if> <if test="checkTimeStart != null ">and CONVERT(varchar(30),qct.create_time, 120) >= #{checkTimeStart}</if>
<if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.check_time, 120)</if> <if test="checkTimeEnd != null ">and #{checkTimeEnd} > CONVERT(varchar(30),qct.create_time, 120)</if>
<if test="checkType != null ">and qct.check_type = #{checkType}</if> <if test="checkType != null ">and qct.check_type = #{checkType}</if>
<if test="typeCode != null ">and q.type_code = #{typeCode}</if> <if test="typeCode != null ">and q.type_code = #{typeCode}</if>
</where> </where>

@ -56,6 +56,7 @@
group by qct.supplier_code,qct.supplier_name group by qct.supplier_code,qct.supplier_name
</select> </select>
<select id="getProduceChartData" resultType="com.op.quality.domain.QcStaticTable"> <select id="getProduceChartData" resultType="com.op.quality.domain.QcStaticTable">
<!--
select concat(qct.material_code,CONVERT(varchar(10),qct.income_time, 120)) materailDate, select concat(qct.material_code,CONVERT(varchar(10),qct.income_time, 120)) materailDate,
qct.material_code materialCode, qct.material_code materialCode,
qct.material_name materialName, qct.material_name materialName,
@ -69,7 +70,25 @@
<if test="materialCode != null ">and qct.material_code in (${materialCode})</if> <if test="materialCode != null ">and qct.material_code in (${materialCode})</if>
<if test="workCenter != null ">and qct.supplier_code = #{workCenter}</if> <if test="workCenter != null ">and qct.supplier_code = #{workCenter}</if>
<if test="ymArrayStart != null ">and CONVERT(varchar(10),qct.income_time, 120) >= #{ymArrayStart}</if> <if test="ymArrayStart != null ">and CONVERT(varchar(10),qct.income_time, 120) >= #{ymArrayStart}</if>
<if test="ymArrayEnd != null ">and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if> <if test="ymArrayEnd != null ">and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if>-->
select CONVERT(varchar(10),qct.income_time, 120) materailDate,
sum(qct.sample_quality) sampleQuality,
sum(qctd1.noOk_quality)*type1.ratio aNoOkquality,
sum(qctd2.noOk_quality)*type2.ratio bNoOkquality,
sum(qctd3.noOk_quality)*type3.ratio cNoOkquality
from qc_check_task qct
left join qc_check_task_defect qctd1 on qct.record_id = qctd1.belong_to and qctd1.defect_code = '20231212001'
left join qc_defect_type type1 on qctd1.defect_code = type1.defect_code
left join qc_check_task_defect qctd2 on qct.record_id = qctd2.belong_to and qctd2.defect_code = '20231212002'
left join qc_defect_type type2 on qctd2.defect_code = type2.defect_code
left join qc_check_task_defect qctd3 on qct.record_id = qctd3.belong_to and qctd3.defect_code = '20231212003'
left join qc_defect_type type3 on qctd3.defect_code = type3.defect_code
where qct.del_flag = '0' and qct.type_code = 'produce'
<if test="materialCode != null ">and qct.material_code in (${materialCode})</if>
<if test="workCenter != null ">and qct.supplier_code = #{workCenter}</if>
<if test="ymArrayStart != null ">and CONVERT(varchar(10),qct.create_time, 120) >= #{ymArrayStart}</if>
<if test="ymArrayEnd != null ">and #{ymArrayEnd}>= CONVERT(varchar(10),qct.create_time, 120)</if>
group by CONVERT(varchar(10),qct.income_time, 120),type1.ratio,type2.ratio,type3.ratio
</select> </select>
<select id="getProduceNames" resultType="com.op.quality.domain.QcStaticTable"> <select id="getProduceNames" resultType="com.op.quality.domain.QcStaticTable">
select distinct qct.material_code materialCode, select distinct qct.material_code materialCode,
@ -82,6 +101,7 @@
<if test="ymArrayEnd != null ">and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if> <if test="ymArrayEnd != null ">and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time, 120)</if>
</select> </select>
<select id="getProduceChartDataYM" resultType="com.op.quality.domain.QcStaticTable"> <select id="getProduceChartDataYM" resultType="com.op.quality.domain.QcStaticTable">
<!--
select select
<if test='dataType=="ymd" '> <if test='dataType=="ymd" '>
concat(qct.material_code,CONVERT(varchar(10),qct.income_time, 120)) materailDate, concat(qct.material_code,CONVERT(varchar(10),qct.income_time, 120)) materailDate,
@ -119,6 +139,41 @@
<if test='dataType=="ym" '> <if test='dataType=="ym" '>
,CONVERT(varchar(7),qct.income_time, 120) ,CONVERT(varchar(7),qct.income_time, 120)
</if> </if>
-->
select
<if test='dataType=="ymd" '>
CONVERT(varchar(10),qct.income_time, 120) materailDate,
</if>
<if test='dataType=="ym" '>
CONVERT(varchar(7),qct.income_time, 120) materailDate,
</if>
sum(qct.sample_quality) sampleQuality,
sum(qctd1.noOk_quality)*type1.ratio aNoOkquality,
sum(qctd2.noOk_quality)*type2.ratio bNoOkquality,
sum(qctd3.noOk_quality)*type3.ratio cNoOkquality
from qc_check_task qct
left join qc_check_task_defect qctd1 on qct.record_id = qctd1.belong_to and qctd1.defect_code = '20231212001'
left join qc_defect_type type1 on qctd1.defect_code = type1.defect_code
left join qc_check_task_defect qctd2 on qct.record_id = qctd2.belong_to and qctd2.defect_code = '20231212002'
left join qc_defect_type type2 on qctd2.defect_code = type2.defect_code
left join qc_check_task_defect qctd3 on qct.record_id = qctd3.belong_to and qctd3.defect_code = '20231212003'
left join qc_defect_type type3 on qctd3.defect_code = type3.defect_code
where qct.del_flag = '0' and qct.type_code = 'produce'
<if test="materialCode != null ">and qct.material_code in (${materialCode})</if>
<if test="workCenter != null ">and qct.supplier_code = #{workCenter}</if>
<if test='ymArrayStart != null and dataType=="ym" '>and CONVERT(varchar(7),qct.income_time, 120) >=#{ymArrayStart}</if>
<if test='ymArrayEnd != null and dataType=="ym"'>and #{ymArrayEnd}>= CONVERT(varchar(7),qct.income_time, 120)</if>
<if test='ymArrayStart != null and dataType=="ymd" '>and CONVERT(varchar(10),qct.income_time, 120) >=#{ymArrayStart}</if>
<if test='ymArrayEnd != null and dataType=="ymd"'>and #{ymArrayEnd}>= CONVERT(varchar(10),qct.income_time,120)</if>
group by type1.ratio,type2.ratio,type3.ratio
<if test='dataType=="ymd" '>
,CONVERT(varchar(10),qct.income_time, 120)
</if>
<if test='dataType=="ym" '>
,CONVERT(varchar(7),qct.income_time, 120)
</if>
</select> </select>
<select id="getWorkcenterList" resultType="com.op.system.api.domain.quality.FactoryDto"> <select id="getWorkcenterList" resultType="com.op.system.api.domain.quality.FactoryDto">
select factory_name factoryName, select factory_name factoryName,
@ -127,20 +182,21 @@
</select> </select>
<select id="getXJCheckTableList" resultType="com.op.quality.domain.QcStaticTable"> <select id="getXJCheckTableList" resultType="com.op.quality.domain.QcStaticTable">
select distinct select distinct
order_no orderNo, qct.order_no orderNo,
material_code materialCode, material_name materialName, qct.material_code materialCode, qct.material_name materialName,
quality,unit, qct.quality,qct.unit,
supplier_code supplierCode,supplier_name supplierName, qct.supplier_code supplierCode,qct.supplier_name supplierName,
income_time incomeTime pow.product_date incomeTimeStr,
from qc_check_task pow.shift_id shiftId
where check_type = 'checkTypeSCXJ' and del_flag = '0' from qc_check_task qct
<if test="orderNo != null ">and check_no like concat('%',#{orderNo},'%')</if> left join pro_order_workorder pow on pow.workorder_code = qct.order_no
<if test="materialCode != null ">and material_code like concat('%',#{materialCode},'%')</if> where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0'
<if test="incomeBatchNo != null ">and income_batch_no like concat('%',#{incomeBatchNo},'%')</if> <if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if>
<if test="incomeTime != null ">and CONVERT(varchar(10),income_time, 120) >= CONVERT(varchar(10),#{incomeTime}, <if test="materialCode != null ">and qct.material_code like concat('%',#{materialCode},'%')</if>
120) <if test="incomeBatchNo != null ">and qct.income_batch_no like concat('%',#{incomeBatchNo},'%')</if>
<if test="incomeTimeStr != null ">and CONVERT(varchar(10),pow.product_date, 120) = #{incomeTimeStr}
</if> </if>
order by income_time desc order by pow.product_date desc
</select> </select>
<select id="getXJProjects" resultType="com.op.quality.domain.QcStaticTable"> <select id="getXJProjects" resultType="com.op.quality.domain.QcStaticTable">
select qct.rule_name ruleName, select qct.rule_name ruleName,
@ -223,6 +279,7 @@
and CONVERT(varchar(10),income_time, 120) = #{ymdms} and CONVERT(varchar(10),income_time, 120) = #{ymdms}
</select> </select>
<select id="getXJMapData" resultType="com.op.quality.domain.QcStaticTable"> <select id="getXJMapData" resultType="com.op.quality.domain.QcStaticTable">
<!--
select qct.supplier_code supplierCode, select qct.supplier_code supplierCode,
qct.supplier_name supplierName, qct.supplier_name supplierName,
sum(qct.sample_quality) sampleQuality, sum(qct.sample_quality) sampleQuality,
@ -234,6 +291,15 @@
<if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if> <if test="orderNo != null ">and qct.check_no like concat('%',#{orderNo},'%')</if>
<if test="materialCode != null ">and qct.material_code like concat('%',#{materialCode},'%')</if> <if test="materialCode != null ">and qct.material_code like concat('%',#{materialCode},'%')</if>
group by qct.supplier_code,qct.supplier_name,CONVERT(VARCHAR(2), qct.check_time, 108) group by qct.supplier_code,qct.supplier_name,CONVERT(VARCHAR(2), qct.check_time, 108)
-->
select
sum(qct.sample_quality) sampleQuality,
sum(qct.noOk_quality) noOkNums,
CONVERT(VARCHAR(2), qct.check_time, 108) ymdms
from qc_check_task qct
where qct.check_type = 'checkTypeSCXJ' and qct.del_flag = '0'
and CONVERT(varchar(10),qct.income_time, 120) = #{ymdms}
group by CONVERT(VARCHAR(2), qct.check_time, 108)
</select> </select>
<select id="getQmsRateTable" resultType="com.op.quality.domain.QcStaticTable"> <select id="getQmsRateTable" resultType="com.op.quality.domain.QcStaticTable">
select qct.supplier_code supplierCode, select qct.supplier_code supplierCode,

Loading…
Cancel
Save