Browse Source

2025-03-27

FQAS任务重载修改
master
fengyuan_yang 1 year ago
parent
commit
0510d4e45d
  1. 2
      src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java
  2. 114
      src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java
  3. 22
      src/main/resources/mapper/pms/QcMapper.xml

2
src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java

@ -229,7 +229,7 @@ public interface QcMapper {
List<QcFAIRecordData> selectFAIBasicData();
List<QcFAIRecordData> selectPartAttributeByPartNo(String site, String buNo, String partNo, String attributeType, String inspectionTypeNo, String supplierNo);
List<QcFAIRecordData> selectPartAttributeByPartNo(@Param("site") String site, @Param("buNo") String buNo, @Param("partNo") String partNo, @Param("attributeType") String attributeType, @Param("inspectionTypeNo") String inspectionTypeNo, @Param("supplierNo") String supplierNo);
void saveFAIRecord(QcFAIRecordData data);

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

@ -5567,15 +5567,117 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void fqasRecordOverLoad(QcFAIRecordData data) {
for (QcFAIRecordData qcData : data.getSubmitList()){
// 新建对象存放主记录
QcFAIRecordData qcFAIRecordData = new QcFAIRecordData();
for (QcFAIRecordData recordData : data.getSubmitList()) {
// 删除明细记录信息
qcMapper.deleteFQASDetailedRecord(qcData);
qcMapper.deleteFQASDetailedRecord(recordData);
// 删除子明细记录信息
qcMapper.deleteFQASSubDetailedRecord(qcData);
// 修改detailFlag字段为N
//qcMapper.updateFQASDetailFlag(qcData);
qcMapper.deleteFQASSubDetailedRecord(recordData);
// 删除文件
qcMapper.deleteInspectionFiles(qcData);
qcMapper.deleteInspectionFiles(recordData);
// 主记录信息赋值
qcFAIRecordData.setSite(recordData.getSite());
qcFAIRecordData.setBuNo(recordData.getBuNo());
qcFAIRecordData.setInspectionNo(recordData.getInspectionNo()); // 检验单号
qcFAIRecordData.setInspectionTypeNo("108"); // 检验类型编码
qcFAIRecordData.setPartDesc(recordData.getPartDesc());
qcFAIRecordData.setRollQty(recordData.getRollQty());
// 明细记录信息赋值
String partNo = recordData.getPartNo();
String attributeType1 = "A";
// 获取该物料属性下维护的FQAS检验模板
List<QcFAIRecordData> partAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), partNo, attributeType1, qcFAIRecordData.getInspectionTypeNo(), "");
if (!partAttribute.isEmpty()) {
// 检验周期
if (partAttribute.get(0).getInspectionCycle() != null) {
qcFAIRecordData.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
}
// 获取抽样数量
// 如果该检验模板有维护抽样方案
if (StringUtils.isNotBlank(partAttribute.get(0).getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSite(partAttribute.get(0).getSite());
samplingInspectionProgrammeData.setBuNo(partAttribute.get(0).getBuNo());
samplingInspectionProgrammeData.setSamplingProgrammeNo(partAttribute.get(0).getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
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());
}
}
} else if (partAttribute.get(0).getDefaultSamplingQuantity() != null) {
// 没有维护抽样方案再根据默认抽样数来确定
qcFAIRecordData.setSamplingQty(partAttribute.get(0).getDefaultSamplingQuantity());
} else if (partAttribute.get(0).getDefaultSamplingProportion() != null) {
// 也没有维护默认抽样数最后根据默认抽样比例来确定
BigDecimal d = partAttribute.get(0).getDefaultSamplingProportion().multiply(recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP);
qcFAIRecordData.setSamplingQty(d);
}
// 获取根据该检验模板下维护的检验项目
QcTemplateData templateData = new QcTemplateData();
templateData.setSite(recordData.getSite());
templateData.setBuNo(recordData.getBuNo());
templateData.setTemplateId(partAttribute.get(0).getTemplateId());
templateData.setItemType("D");
List<QcTemplateData> itemList = qcMapper.templateDetailsSearch(templateData);
QcFAIRecordData faiRecordData = new QcFAIRecordData();
faiRecordData.setSite(recordData.getSite()); // 工厂
faiRecordData.setBuNo(recordData.getBuNo()); // BU
faiRecordData.setInspectionNo(qcFAIRecordData.getInspectionNo()); // 检验单号
faiRecordData.setTemplateId(partAttribute.get(0).getTemplateId()); // 模板编码
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()); // 设备编码
faiRecordData.setObjectDesc(itemData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(itemData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(itemData.getMinValue()); // 最小值
faiRecordData.setMaxValue(itemData.getMaxValue()); // 最大值
faiRecordData.setValueType(itemData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(itemData.getValueTypeDb());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
if (StringUtils.isNotBlank(itemData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSite(itemData.getSite());
samplingInspectionProgrammeData.setBuNo(itemData.getBuNo());
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()); // 抽样数量
}
// 新增FQAS明细记录信息
qcMapper.saveFQASDetailedRecord(faiRecordData);
}
}
// 更新FQAS主记录信息
qcMapper.updateFQASRecord(qcFAIRecordData);
}
}

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

@ -1504,11 +1504,15 @@
LEFT JOIN qc_template as qt ON qat.template_id = qt.template_id and qat.site = qt.site and qat.bu_no = qt.bu_no
LEFT JOIN qc_sampling_inspection_level as qsil ON qat.sampling_level_no = qsil.sampling_level_no and qat.site = qsil.site and qat.bu_no = qsil.bu_no
LEFT JOIN qc_sampling_inspection_programme as qsip ON qat.sampling_programme_no = qsip.sampling_programme_no and qat.site = qsip.site and qat.bu_no = qsip.bu_no
WHERE qat.site = #{site} and qat.bu_no = #{buNo}
AND qat.attribute_no = #{partNo}
AND qat.attribute_type = #{attributeType}
AND qt.inspection_type_no = #{inspectionTypeNo}
AND qat.manufacturer_id = #{supplierNo}
<where>
qat.site = #{site} and qat.bu_no = #{buNo}
AND qat.attribute_no = #{partNo}
AND qat.attribute_type = #{attributeType}
AND qt.inspection_type_no = #{inspectionTypeNo}
<if test = "supplierNo != null and supplierNo != ''">
AND qat.manufacturer_id = #{supplierNo}
</if>
</where>
</select>
<!-- 获取该物料属性下维护的ipqc -->
@ -3774,8 +3778,12 @@
<!-- 新增FQAS明细记录信息 -->
<insert id="saveFQASDetailedRecord" parameterType="QcFAIRecordData">
INSERT INTO qc_stock_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, bu_no, serial_no)
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}, #{buNo}, #{serialNo})
INSERT INTO qc_stock_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, bu_no, serial_no)
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}, #{buNo}, #{serialNo})
</insert>
<!-- 修改FQAS检验记录 -->

Loading…
Cancel
Save