Browse Source

2023-12-13 IQC抽样数量允许修改

java8
fengyuan_yang 2 years ago
parent
commit
9e17c6dd0d
  1. 66
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  2. 12
      src/main/resources/mapper/pms/QcMapper.xml

66
src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java

@ -3116,7 +3116,7 @@ public class QcServiceImpl implements QcService {
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) == 1 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) == -1 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){
if (programmeData.getSamplingLevelNo().equals(partAttribute.get(0).getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0) ){
qcFAIRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
@ -3139,14 +3139,15 @@ public class QcServiceImpl implements QcService {
faiRecordData.setSite(data.getSite()); // 工厂
faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(partAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(partAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(partAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(partAttribute.get(0).getAql()); // aql
faiRecordData.setAc(partAttribute.get(0).getAc()); // ac
faiRecordData.setRe(partAttribute.get(0).getRe()); // re
for (QcTemplateData itemData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码
@ -3156,6 +3157,29 @@ public class QcServiceImpl implements QcService {
faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值
faiRecordData.setValueType(itemData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(itemData.getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (itemData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(itemData.getItemSamplingQuantity());
} else if (itemData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(itemData.getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else {
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(qcFAIRecordData.getSamplingQty()); // 抽样数量
}
// 新增IQC明细记录信息
qcMapper.saveIQCDetailedRecord(faiRecordData);
}
@ -3200,14 +3224,15 @@ public class QcServiceImpl implements QcService {
QcFAIRecordData faiRecordData = new QcFAIRecordData();
faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号
faiRecordData.setTemplateId(familyAttribute.get(0).getTemplateId()); // 模板编码
faiRecordData.setSamplingLevelNo(familyAttribute.get(0).getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(familyAttribute.get(0).getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(familyAttribute.get(0).getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(familyAttribute.get(0).getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setAql(familyAttribute.get(0).getAql()); // aql
faiRecordData.setAc(familyAttribute.get(0).getAc()); // ac
faiRecordData.setRe(familyAttribute.get(0).getRe()); // re
for (QcTemplateData itemData : itemList) {
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(itemData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(itemData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(itemData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(itemData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(itemData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(itemData.getObjectID()); // 设备编码
@ -3217,6 +3242,29 @@ public class QcServiceImpl implements QcService {
faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值
faiRecordData.setValueType(itemData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSamplingProgrammeNo(itemData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(itemData.getSamplingLevelNo()) && (recordData.getRollCount().compareTo(programmeData.getMinQty()) > 0 || recordData.getRollCount().compareTo(programmeData.getMinQty()) == 0) && (recordData.getRollCount().compareTo(programmeData.getMaxQty()) < 0 || recordData.getRollCount().compareTo(programmeData.getMaxQty()) == 0)) {
faiRecordData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (itemData.getItemSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
faiRecordData.setSamplingQty(itemData.getItemSamplingQuantity());
} else if (itemData.getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
faiRecordData.setSamplingQty(itemData.getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP));
} else {
// 最后则根据检验单抽样数量赋值
faiRecordData.setSamplingQty(qcFAIRecordData.getSamplingQty()); // 抽样数量
}
// 新增IQC明细记录信息
qcMapper.saveIQCDetailedRecord(faiRecordData);
}

12
src/main/resources/mapper/pms/QcMapper.xml

@ -1077,7 +1077,7 @@
qat.resource_id
FROM qc_attribute_template as qat
LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site
LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no
LEFT JOIN qc_inspection_type AS qit ON qt.inspection_type_no = qit.inspection_type_no and qt.site = qit.site
WHERE qt.site = #{site}
AND qat.attribute_no = #{attributeNo}
</select>
@ -2098,8 +2098,8 @@
<!-- 新增IQC明细记录信息 -->
<insert id="saveIQCDetailedRecord" parameterType="QcFAIRecordData">
INSERT INTO qc_iqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site)
VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site})
INSERT INTO qc_iqc_detailed_record (inspection_no, template_id, sampling_level_no, sampling_level_desc, sampling_programme_no, sampling_programme_desc, AQL, AC, RE, item_no, item_desc, object_id, object_desc, default_value, min_value, max_value, value_type_db, value_type, site, sampling_qty)
VALUES(#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc}, #{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL}, #{itemNo}, #{itemDesc}, #{objectId}, #{objectDesc}, #{defaultValue}, #{minValue,jdbcType=DECIMAL}, #{maxValue,jdbcType=DECIMAL}, #{valueTypeDb}, #{valueType}, #{site}, #{samplingQty})
</insert>
<!-- 修改IQC检验记录 -->
@ -2213,7 +2213,8 @@
dbo.qc_get_iqc_sub_record_num(a.site, a.inspection_no, a.item_no) as subDetailRecordNum,
c.method_no,
c.method_name,
c.method_remark
c.method_remark,
a.sampling_qty
FROM qc_iqc_detailed_record as a
LEFT JOIN qc_method_item as b on a.site = b.site and a.item_no = b.ItemNo
LEFT JOIN qc_method as c on b.site = c.site and b.method_no = c.method_no
@ -2251,6 +2252,8 @@
state = #{state},
inspection_remark = #{inspectionRemark},
inspector_date = getDate(),
roll_count = #{rollCount,jdbcType=DECIMAL},
sampling_qty = #{samplingQty,jdbcType=DECIMAL},
unqualified_qty = #{unqualifiedQty,jdbcType=DECIMAL}
WHERE site = #{site} and inspection_no = #{inspectionNo}
</update>
@ -2260,6 +2263,7 @@
UPDATE qc_iqc_detailed_record
SET item_result = #{itemResult},
unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL},
sampling_qty = #{samplingQty,jdbcType=DECIMAL},
text_value = #{textValue},
number_value = #{numberValue,jdbcType=DECIMAL}
WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site}

Loading…
Cancel
Save