Browse Source

检验单中添加了是否传输,数量等字段

master
shenzhouyu 1 week ago
parent
commit
571a265172
  1. 33
      cclqms-java/src/main/java/com/gaotao/modules/pms/data/SubDetailValues.java
  2. 52
      cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/EquipmentDataImportServiceImpl.java
  3. 58
      cclqms-java/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java
  4. 97
      cclqms-java/src/main/java/com/gaotao/modules/pms/util/QcSubDetailQualifyHelper.java
  5. 40
      cclqms-java/src/main/resources/mapper/pms/QcMapper.xml

33
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;
}
}

52
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<String, QcFAIRecordData> 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<String, QcFAIRecordData> itemSpecMap) {
List<String> 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<String, QcFAIRecordData> 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<String, QcFAIRecordData> loadItemSpecMap(QcFAIRecordData data) {
QcFAIRecordData query = new QcFAIRecordData();
query.setSite(data.getSite());
query.setBuNo(data.getBuNo());
query.setInspectionNo(data.getInspectionNo());
query.setFlag(data.getFlag());
List<QcFAIRecordData> specs = qcMapper.listInspectionDetailMeasuredValues(query);
Map<String, QcFAIRecordData> 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<SubDetailValues> rows, Map<String, QcFAIRecordData> 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);

58
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<SubDetailValues> 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<SubDetailValues> 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<SubDetailValues> 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<SubDetailValues> 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<SubDetailValues> 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<SubDetailValues> 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;

97
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其余情况存空
* 同时写入 defectQtyA~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();
}
}

40
cclqms-java/src/main/resources/mapper/pms/QcMapper.xml

@ -875,10 +875,10 @@
<!-- 新增IPQC子明细信息 -->
<insert id="saveIPQCSubDetailed">
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
<foreach collection="list" item="item" separator=",">
(#{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())
</foreach>
</insert>
@ -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 id="saveSQCSubDetailed">
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
<foreach collection="list" item="item" separator=",">
(#{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())
</foreach>
</insert>
@ -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 @@
<!-- 新增IQC子明细信息 -->
<insert id="saveIQCSubDetailed">
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
<foreach collection="list" item="item" separator=",">
(#{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())
</foreach>
</insert>
@ -2653,10 +2662,10 @@
<!-- 新增子明细信息 -->
<insert id="saveFQCSubDetailed">
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
<foreach collection="list" item="item" separator=",">
(#{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())
</foreach>
</insert>
@ -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 @@
<!-- 新增FQAS子明细信息 -->
<insert id="saveFQASSubDetailed">
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
<foreach collection="list" item="item" separator=",">
(#{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())
</foreach>
</insert>
@ -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
<choose>
<when test="flag == 'ipqc'">qc_ipqc_sub_detail_record</when>

Loading…
Cancel
Save