diff --git a/cclqms-java/src/main/java/com/gaotao/modules/pms/data/SubDetailValues.java b/cclqms-java/src/main/java/com/gaotao/modules/pms/data/SubDetailValues.java index 851b019..026208a 100644 --- a/cclqms-java/src/main/java/com/gaotao/modules/pms/data/SubDetailValues.java +++ b/cclqms-java/src/main/java/com/gaotao/modules/pms/data/SubDetailValues.java @@ -66,6 +66,15 @@ public class SubDetailValues extends QueryPage { /** 采集源文件名 */ private String fileName; + /** 是否传输 Y/N */ + private String isTransfer; + + /** 是否合格 Y/N */ + private String isQualified; + + /** 不良数量(实测值 A~E 不合格个数) */ + private Integer defectQty; + /** 创建时间 */ private String createTime; @@ -293,4 +302,28 @@ public class SubDetailValues extends QueryPage { public void setIsSubmit(String isSubmit) { this.isSubmit = isSubmit; } + + public String getIsTransfer() { + return isTransfer; + } + + public void setIsTransfer(String isTransfer) { + this.isTransfer = isTransfer; + } + + public String getIsQualified() { + return isQualified; + } + + public void setIsQualified(String isQualified) { + this.isQualified = isQualified; + } + + public Integer getDefectQty() { + return defectQty; + } + + public void setDefectQty(Integer defectQty) { + this.defectQty = defectQty; + } } diff --git a/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java b/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java index 0bb0edb..5cb6d63 100644 --- a/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java +++ b/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java @@ -5,6 +5,7 @@ import com.gaotao.modules.pms.data.*; import com.gaotao.modules.pms.mapper.QcMapper; import com.gaotao.modules.pms.service.EquipmentDataImportService; import com.gaotao.modules.pms.util.PmsI18nHelper; +import com.gaotao.modules.pms.util.QcSubDetailQualifyHelper; import com.gaotao.modules.reader.entity.EquipmentDataDetail; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -23,8 +24,8 @@ import java.util.stream.Collectors; @Slf4j public class EquipmentDataImportServiceImpl implements EquipmentDataImportService { - /** SQL Server 单条 INSERT 最多 2100 个参数;子明细每行 13 个字段 */ - private static final int SUB_DETAIL_BATCH_SIZE = 150; + /** SQL Server 单条 INSERT 最多 2100 个参数;子明细每行 16 个字段 */ + private static final int SUB_DETAIL_BATCH_SIZE = 120; private static final String COLLECTION_SOURCE_FILE_NAME = "file_name"; @@ -98,6 +99,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic } String recordOperationDesc = resolveInspectionOperationDesc(data); + Map itemSpecMap = loadItemSpecMap(data); boolean imported = false; boolean hasMappingConfig = false; @@ -106,7 +108,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic for (ItemImportTarget target : targets) { boolean accumulate = isAccumulateCollect(accumulateByEquipment, target.getEquipmentNo()); if (target.isStandardMode()) { - importStandard(data, target, accumulate); + importStandard(data, target, accumulate, itemSpecMap); imported = true; continue; } @@ -134,7 +136,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic int fileMaxColumn = resolveFileMaxColumn(parsedRows); for (QcPartFileCollectData mapping : targetMappings) { - importMapping(data, mapping, target, fileMaxColumn, accumulate); + importMapping(data, mapping, target, fileMaxColumn, accumulate, itemSpecMap); imported = true; } } @@ -289,7 +291,8 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic } } - private void importStandard(QcFAIRecordData data, ItemImportTarget target, boolean accumulate) { + private void importStandard(QcFAIRecordData data, ItemImportTarget target, boolean accumulate, + Map itemSpecMap) { List collectionSources = parseCollectionSources(target.getCollectionSource()); if (collectionSources.isEmpty()) { throw new XJException( @@ -365,6 +368,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic deleteParam.setItemNo(target.getItemNo()); deleteSubDetails(data.getFlag(), deleteParam); } + fillAcquisitionRowFlags(toSave, itemSpecMap); saveSubDetails(data.getFlag(), toSave); } @@ -416,7 +420,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic } private void importMapping(QcFAIRecordData data, QcPartFileCollectData mapping, ItemImportTarget target, - int fileMaxColumn, boolean accumulate) { + int fileMaxColumn, boolean accumulate, Map itemSpecMap) { Integer fileColumnNo = mapping.getFileColumnNo(); if (fileColumnNo == null || fileColumnNo <= 0) { return; @@ -469,6 +473,7 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic deleteParam.setItemNo(mapping.getItemNo()); deleteSubDetails(data.getFlag(), deleteParam); } + fillAcquisitionRowFlags(subDetails, itemSpecMap); saveSubDetails(data.getFlag(), subDetails); } @@ -497,6 +502,41 @@ public class EquipmentDataImportServiceImpl implements EquipmentDataImportServic } } + private Map loadItemSpecMap(QcFAIRecordData data) { + QcFAIRecordData query = new QcFAIRecordData(); + query.setSite(data.getSite()); + query.setBuNo(data.getBuNo()); + query.setInspectionNo(data.getInspectionNo()); + query.setFlag(data.getFlag()); + List specs = qcMapper.listInspectionDetailMeasuredValues(query); + Map specMap = new HashMap<>(); + if (CollectionUtils.isEmpty(specs)) { + return specMap; + } + for (QcFAIRecordData spec : specs) { + if (spec != null && StringUtils.isNotBlank(spec.getItemNo())) { + specMap.putIfAbsent(spec.getItemNo(), spec); + } + } + return specMap; + } + + private void fillAcquisitionRowFlags(List rows, Map itemSpecMap) { + if (CollectionUtils.isEmpty(rows)) { + return; + } + for (SubDetailValues row : rows) { + row.setIsTransfer("N"); + QcFAIRecordData spec = itemSpecMap == null ? null : itemSpecMap.get(row.getItemNo()); + if (spec != null) { + QcSubDetailQualifyHelper.applyIsQualified(row, spec.getValueTypeDb(), spec.getMinValue(), spec.getMaxValue()); + } else { + row.setIsQualified(null); + row.setDefectQty(0); + } + } + } + private void deleteSubDetails(String flag, QcSubDetailInformationData param) { switch (normalizeFlag(flag)) { case "ipqc" -> qcMapper.delIPQCSubDetailedRecord(param); diff --git a/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java b/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java index df07afe..d3e6c62 100644 --- a/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java +++ b/cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java @@ -24,6 +24,7 @@ import com.gaotao.modules.pms.service.QcService; import com.gaotao.modules.pms.util.BuResolveUtil; import com.gaotao.modules.pms.util.PmsI18nHelper; import com.gaotao.modules.pms.util.QcSpecWarningEvaluator; +import com.gaotao.modules.pms.util.QcSubDetailQualifyHelper; import com.gaotao.modules.pms.util.HttpClientUtil; import com.gaotao.modules.pms.util.ResponseData; import com.gaotao.modules.report.dao.ProcedureDao; @@ -436,9 +437,10 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); } // 分批插入 - int batchSize = 150; // 假设每批200条记录 + int batchSize = 120; // 假设每批200条记录 for (int i = 0; i < subDetailValues.size(); i += batchSize) { int end = Math.min(i + batchSize, subDetailValues.size()); List subList = subDetailValues.subList(i, end); @@ -688,9 +690,10 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); } // 分批插入 - int batchSize = 150; // 假设每批200条记录 + int batchSize = 120; // 假设每批200条记录 for (int i = 0; i < subDetailValues.size(); i += batchSize) { int end = Math.min(i + batchSize, subDetailValues.size()); List subList = subDetailValues.subList(i, end); @@ -987,9 +990,10 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); } // 分批插入 - int batchSize = 150; // 假设每批200条记录 + int batchSize = 120; // 假设每批200条记录 for (int i = 0; i < subDetailValues.size(); i += batchSize) { int end = Math.min(i + batchSize, subDetailValues.size()); List subList = subDetailValues.subList(i, end); @@ -1171,8 +1175,9 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); } - int batchSize = 150; + int batchSize = 120; for (int i = 0; i < subDetailValues.size(); i += batchSize) { int end = Math.min(i + batchSize, subDetailValues.size()); List subList = subDetailValues.subList(i, end); @@ -1898,10 +1903,11 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); } // 分批插入 - int batchSize = 150; // 假设每批200条记录 + int batchSize = 120; // 假设每批200条记录 for (int i = 0; i < subDetailValues.size(); i += batchSize) { int end = Math.min(i + batchSize, subDetailValues.size()); List subList = subDetailValues.subList(i, end); @@ -2438,6 +2444,11 @@ public class QcServiceImpl implements QcService { itemData.getValueTypeDb(), itemData.getMinValue(), itemData.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified( + task, + itemData.getValueTypeDb(), + itemData.getMinValue(), + itemData.getMaxValue()); if (outOfSpecCount > 0) { countMap.put(task.getItemNo(), countMap.get(task.getItemNo()) + outOfSpecCount); } @@ -2617,6 +2628,8 @@ public class QcServiceImpl implements QcService { copy.setSamplingLocationB(src.getSamplingLocationB()); copy.setNum(src.getNum()); copy.setFileName(src.getFileName()); + copy.setIsTransfer(src.getIsTransfer()); + QcSubDetailQualifyHelper.applyIsQualified(copy, valueTypeDb, minValue, maxValue); toSave.add(copy); outOfSpecCount += countOutOfSpecSubDetailRow(copy, valueTypeDb, minValue, maxValue); } @@ -2697,7 +2710,7 @@ public class QcServiceImpl implements QcService { if (subDetails == null || subDetails.isEmpty()) { return; } - int batchSize = 150; + int batchSize = 120; for (int i = 0; i < subDetails.size(); i += batchSize) { List batch = new ArrayList<>(subDetails.subList(i, Math.min(i + batchSize, subDetails.size()))); switch (normalizeQcFlag(flag)) { @@ -2739,35 +2752,16 @@ public class QcServiceImpl implements QcService { } private int countOutOfSpecSubValue(String value, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { - if (StringUtils.isBlank(value) || !"N".equals(valueTypeDb) || (minValue == null && maxValue == null)) { - return 0; - } - if (!isNumberString(value)) { - return 1; - } - return countOutOfSpecNumber(new BigDecimal(value), minValue, maxValue); + return QcSubDetailQualifyHelper.countOutOfSpecSubValue(value, valueTypeDb, minValue, maxValue); } /** 统计单条子明细记录中实测值 A~E 的不合格数量 */ private int countOutOfSpecSubDetailRow(SubDetailValues row, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { - return countOutOfSpecSubValue(row.getSubDetailValue(), valueTypeDb, minValue, maxValue) - + countOutOfSpecSubValue(row.getSubDetailValueB(), valueTypeDb, minValue, maxValue) - + countOutOfSpecSubValue(row.getSubDetailValueC(), valueTypeDb, minValue, maxValue) - + countOutOfSpecSubValue(row.getSubDetailValueD(), valueTypeDb, minValue, maxValue) - + countOutOfSpecSubValue(row.getSubDetailValueE(), valueTypeDb, minValue, maxValue); + return QcSubDetailQualifyHelper.countOutOfSpecSubDetailRow(row, valueTypeDb, minValue, maxValue); } private int countOutOfSpecNumber(BigDecimal value, BigDecimal minValue, BigDecimal maxValue) { - if (value == null || (minValue == null && maxValue == null)) { - return 0; - } - if (maxValue != null && minValue == null) { - return value.compareTo(maxValue) > 0 ? 1 : 0; - } - if (maxValue == null) { - return value.compareTo(minValue) < 0 ? 1 : 0; - } - return (value.compareTo(maxValue) > 0 || value.compareTo(minValue) < 0) ? 1 : 0; + return QcSubDetailQualifyHelper.countOutOfSpecNumber(value, minValue, maxValue); } /** @@ -4960,9 +4954,13 @@ public class QcServiceImpl implements QcService { subDetailValues.get(i).setInspectionNo(data.getInspectionNo()); subDetailValues.get(i).setItemNo(data.getItemNo()); count += countOutOfSpecSubDetailRow(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + QcSubDetailQualifyHelper.applyIsQualified(subDetailValues.get(i), data.getValueTypeDb(), data.getMinValue(), data.getMaxValue()); + } + int batchSize = 120; + for (int i = 0; i < subDetailValues.size(); i += batchSize) { + int end = Math.min(i + batchSize, subDetailValues.size()); + qcMapper.saveFQASSubDetailed(subDetailValues.subList(i, end)); } - // 新增子明细新数据 - qcMapper.saveFQASSubDetailed(subDetailValues); } syncDetailItemResultFromSubDetail("oqc", data, count); return count; diff --git a/cclqms-java/src/main/java/com/gaotao/modules/pms/util/QcSubDetailQualifyHelper.java b/cclqms-java/src/main/java/com/gaotao/modules/pms/util/QcSubDetailQualifyHelper.java new file mode 100644 index 0000000..fcd08b0 --- /dev/null +++ b/cclqms-java/src/main/java/com/gaotao/modules/pms/util/QcSubDetailQualifyHelper.java @@ -0,0 +1,97 @@ +package com.gaotao.modules.pms.util; + +import com.gaotao.modules.pms.data.SubDetailValues; +import org.apache.commons.lang3.StringUtils; + +import java.math.BigDecimal; +import java.util.regex.Pattern; + +/** + * 子明细合格判定:数字类型且存在最大/最小时,A~E 任一超限为 N,均在范围内为 Y;其余情况存空。 + * 同时写入 defectQty:A~E 不合格个数,无不合格为 0。 + */ +public final class QcSubDetailQualifyHelper { + + private static final Pattern NUMBER_PATTERN = Pattern.compile("-?[0-9]+(\\.[0-9]+)?"); + + private QcSubDetailQualifyHelper() { + } + + public static void applyIsQualified(SubDetailValues row, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { + if (row == null) { + return; + } + int defectQty = countOutOfSpecSubDetailRow(row, valueTypeDb, minValue, maxValue); + row.setDefectQty(defectQty); + row.setIsQualified(resolveIsQualified(row, valueTypeDb, minValue, maxValue)); + } + + public static String resolveIsQualified(SubDetailValues row, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { + if (row == null || !"N".equals(valueTypeDb) || (minValue == null && maxValue == null)) { + return null; + } + boolean hasComparable = false; + boolean outOfSpec = false; + String[] values = { + row.getSubDetailValue(), + row.getSubDetailValueB(), + row.getSubDetailValueC(), + row.getSubDetailValueD(), + row.getSubDetailValueE() + }; + for (String value : values) { + if (StringUtils.isBlank(value)) { + continue; + } + hasComparable = true; + if (countOutOfSpecSubValue(value, valueTypeDb, minValue, maxValue) > 0) { + outOfSpec = true; + } + } + if (!hasComparable) { + return null; + } + return outOfSpec ? "N" : "Y"; + } + + public static int countOutOfSpecSubValue(String value, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { + if (StringUtils.isBlank(value) || !"N".equals(valueTypeDb) || (minValue == null && maxValue == null)) { + return 0; + } + if (!isNumberString(value)) { + return 1; + } + return countOutOfSpecNumber(new BigDecimal(value), minValue, maxValue); + } + + public static int countOutOfSpecSubDetailRow(SubDetailValues row, String valueTypeDb, BigDecimal minValue, BigDecimal maxValue) { + if (row == null) { + return 0; + } + return countOutOfSpecSubValue(row.getSubDetailValue(), valueTypeDb, minValue, maxValue) + + countOutOfSpecSubValue(row.getSubDetailValueB(), valueTypeDb, minValue, maxValue) + + countOutOfSpecSubValue(row.getSubDetailValueC(), valueTypeDb, minValue, maxValue) + + countOutOfSpecSubValue(row.getSubDetailValueD(), valueTypeDb, minValue, maxValue) + + countOutOfSpecSubValue(row.getSubDetailValueE(), valueTypeDb, minValue, maxValue); + } + + public static int countOutOfSpecNumber(BigDecimal value, BigDecimal minValue, BigDecimal maxValue) { + if (value == null || (minValue == null && maxValue == null)) { + return 0; + } + if (maxValue != null && minValue == null) { + return value.compareTo(maxValue) > 0 ? 1 : 0; + } + if (maxValue == null) { + return value.compareTo(minValue) < 0 ? 1 : 0; + } + return (value.compareTo(maxValue) > 0 || value.compareTo(minValue) < 0) ? 1 : 0; + } + + public static boolean isNumberString(String str) { + if (str == null) { + return false; + } + return NUMBER_PATTERN.matcher(str).matches(); + } +} diff --git a/cclqms-java/src/main/resources/mapper/pms/QcMapper.xml b/cclqms-java/src/main/resources/mapper/pms/QcMapper.xml index b0426f7..d343cdd 100644 --- a/cclqms-java/src/main/resources/mapper/pms/QcMapper.xml +++ b/cclqms-java/src/main/resources/mapper/pms/QcMapper.xml @@ -875,10 +875,10 @@ INSERT INTO qc_ipqc_sub_detail_record - (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, create_time) + (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, is_transfer, is_qualified, defect_qty, create_time) VALUES - (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, getDate()) + (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, #{item.isTransfer}, #{item.isQualified}, #{item.defectQty}, getDate()) @@ -897,6 +897,9 @@ sub_detail_value_d, sub_detail_value_e, file_name, + is_transfer, + is_qualified, + defect_qty, CONVERT(VARCHAR(19), create_time, 120) AS createTime FROM qc_ipqc_sub_detail_record WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} @@ -1320,10 +1323,10 @@ INSERT INTO qc_sqc_sub_detail_record - (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, create_time) + (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, is_transfer, is_qualified, defect_qty, create_time) VALUES - (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, getDate()) + (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, #{item.isTransfer}, #{item.isQualified}, #{item.defectQty}, getDate()) @@ -1341,6 +1344,9 @@ sub_detail_value_d, sub_detail_value_e, file_name, + is_transfer, + is_qualified, + defect_qty, CONVERT(VARCHAR(19), create_time, 120) AS createTime FROM qc_sqc_sub_detail_record WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} @@ -2054,6 +2060,9 @@ sub_detail_value_d, sub_detail_value_e, file_name, + is_transfer, + is_qualified, + defect_qty, CONVERT(VARCHAR(19), create_time, 120) AS createTime FROM qc_iqc_sub_detail_record WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} @@ -2154,10 +2163,10 @@ INSERT INTO qc_iqc_sub_detail_record - (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, create_time) + (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, is_transfer, is_qualified, defect_qty, create_time) VALUES - (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, getDate()) + (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, #{item.isTransfer}, #{item.isQualified}, #{item.defectQty}, getDate()) @@ -2653,10 +2662,10 @@ INSERT INTO qc_fqc_sub_detail_record - (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, create_time) + (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, is_transfer, is_qualified, defect_qty, create_time) VALUES - (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, getDate()) + (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, #{item.isTransfer}, #{item.isQualified}, #{item.defectQty}, getDate()) @@ -2675,6 +2684,9 @@ sub_detail_value_d, sub_detail_value_e, file_name, + is_transfer, + is_qualified, + defect_qty, CONVERT(VARCHAR(19), create_time, 120) AS createTime FROM qc_fqc_sub_detail_record WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} @@ -4972,6 +4984,9 @@ sub_detail_value_d, sub_detail_value_e, file_name, + is_transfer, + is_qualified, + defect_qty, CONVERT(VARCHAR(19), create_time, 120) AS createTime FROM qc_oqc_sub_detail_record WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} @@ -5092,10 +5107,10 @@ INSERT INTO qc_oqc_sub_detail_record - (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, create_time) + (inspection_no, item_no, sub_detail_value, sampling_location, site, sampling_location_b, bu_no, num, sub_detail_value_b, sub_detail_value_c, sub_detail_value_d, sub_detail_value_e, file_name, is_transfer, is_qualified, defect_qty, create_time) VALUES - (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, getDate()) + (#{item.inspectionNo}, #{item.itemNo}, #{item.subDetailValue}, #{item.samplingLocation}, #{item.site}, #{item.samplingLocationB}, #{item.buNo}, #{item.num}, #{item.subDetailValueB}, #{item.subDetailValueC}, #{item.subDetailValueD}, #{item.subDetailValueE}, #{item.fileName}, #{item.isTransfer}, #{item.isQualified}, #{item.defectQty}, getDate()) @@ -5726,7 +5741,10 @@ sampling_location as samplingLocation, sampling_location_b as samplingLocationB, num, - file_name as fileName + file_name as fileName, + is_transfer as isTransfer, + is_qualified as isQualified, + defect_qty as defectQty from qc_ipqc_sub_detail_record