Browse Source

qms修改

master
shenzhouyu 7 months ago
parent
commit
2dbebce0af
  1. 18
      src/main/java/com/heai/modules/pms/controller/QcController.java
  2. 12
      src/main/java/com/heai/modules/pms/mapper/QcMapper.java
  3. 153
      src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java
  4. 6
      src/main/java/com/heai/modules/pms/service/QcService.java
  5. 102
      src/main/resources/mapper/pms/QcMapper.xml

18
src/main/java/com/heai/modules/pms/controller/QcController.java

@ -1613,6 +1613,24 @@ public class QcController {
return R.ok();
}
@PostMapping("/faiRecordOverLoad")
public R faiRecordOverLoad(@RequestBody QcFAIRecordData data){
qcService.faiRecordOverLoad(data);
return R.ok();
}
@PostMapping("/ipqcRecordOverLoad")
public R ipqcRecordOverLoad(@RequestBody QcFAIRecordData data){
qcService.ipqcRecordOverLoad(data);
return R.ok();
}
@PostMapping("/fqcRecordOverLoad")
public R fqcRecordOverLoad(@RequestBody QcFAIRecordData data){
qcService.fqcRecordOverLoad(data);
return R.ok();
}
// ======================= SQC检验API =======================
@PostMapping(value="/qcSQCInspectionSearch")

12
src/main/java/com/heai/modules/pms/mapper/QcMapper.java

@ -319,8 +319,20 @@ public interface QcMapper {
void saveIQCDetailedRecordByTemplate(QcFAIRecordData data);
void saveFAIDetailedRecordByTemplate(QcFAIRecordData data);
void saveIPQCDetailedRecordByTemplate(QcFAIRecordData data);
void saveFQCDetailedRecordByTemplate(QcFAIRecordData data);
void updateIQCRecord(QcFAIRecordData qcFAIRecordData);
void updateFAIRecordOverLoad(QcFAIRecordData data);
void updateIPQCRecordOverLoad(QcFAIRecordData data);
void updateFQCRecordOverLoad(QcFAIRecordData data);
IPage<QcFAIRecordData> qcIQCInspectionSearch(Page<QcFAIRecordData> qcFAIRecordDataPage,@Param("query") QcFAIRecordData data);
List<QcFAIRecordData> iqcDetailSearch(QcFAIRecordData data);

153
src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java

@ -3017,6 +3017,155 @@ public class QcServiceImpl implements QcService {
}
}
@Override
@Transactional
public void faiRecordOverLoad(QcFAIRecordData data) {
for (QcFAIRecordData recordData : data.getSubmitList()) {
qcMapper.deleteFAIDetailedRecord(recordData);
qcMapper.deleteFAISubDetailedRecord(recordData);
//qcMapper.deleteEquipmentDataAcquisition(recordData);
qcMapper.deleteInspectionFiles(recordData);
QcFAIRecordData masterData = buildOverLoadMasterData(recordData, "106");
List<QcFAIRecordData> templates = queryOverLoadTemplates(recordData, masterData);
if (!templates.isEmpty()) {
applySamplingFromTemplate(masterData, recordData, templates.get(0));
insertDetailedByTemplate(templates, masterData, recordData, "FAI",recordData.getOrderNo());
}
qcMapper.updateFAIRecordOverLoad(masterData);
}
}
@Override
@Transactional
public void ipqcRecordOverLoad(QcFAIRecordData data) {
for (QcFAIRecordData recordData : data.getSubmitList()) {
qcMapper.deleteIPQCDetailedRecord(recordData);
qcMapper.deleteIPQCSubDetailedRecord(recordData);
//qcMapper.deleteEquipmentDataAcquisition(recordData);
qcMapper.deleteInspectionFiles(recordData);
QcFAIRecordData masterData = buildOverLoadMasterData(recordData, "101");
List<QcFAIRecordData> templates = queryOverLoadTemplates(recordData, masterData);
if (!templates.isEmpty()) {
applySamplingFromTemplate(masterData, recordData, templates.get(0));
insertDetailedByTemplate(templates, masterData, recordData, "IPQC",recordData.getOrderNo());
}
qcMapper.updateIPQCRecordOverLoad(masterData);
}
}
@Override
@Transactional
public void fqcRecordOverLoad(QcFAIRecordData data) {
for (QcFAIRecordData recordData : data.getSubmitList()) {
qcMapper.deleteFQCDetailedRecord(recordData);
qcMapper.deleteFQCSubDetailedRecord(recordData);
//qcMapper.deleteEquipmentDataAcquisition(recordData);
qcMapper.deleteInspectionFiles(recordData);
QcFAIRecordData masterData = buildOverLoadMasterData(recordData, "107");
List<QcFAIRecordData> templates = queryOverLoadTemplates(recordData, masterData);
if (!templates.isEmpty()) {
applySamplingFromTemplate(masterData, recordData, templates.get(0));
insertDetailedByTemplate(templates, masterData, recordData, "FQC",recordData.getOrderNo());
}
qcMapper.updateFQCRecordOverLoad(masterData);
}
}
private QcFAIRecordData buildOverLoadMasterData(QcFAIRecordData recordData, String inspectionTypeNo) {
QcFAIRecordData masterData = new QcFAIRecordData();
String supplierNo = StringUtils.defaultString(recordData.getSupplierNo(), "");
masterData.setSite(recordData.getSite());
masterData.setBuNo(recordData.getBuNo());
masterData.setInspectionNo(recordData.getInspectionNo());
masterData.setInspectionTypeNo(inspectionTypeNo);
masterData.setPartNo(recordData.getPartNo());
masterData.setPartDesc(recordData.getPartDesc());
masterData.setRollQty(recordData.getRollQty());
masterData.setSupplierNo(supplierNo);
return masterData;
}
private List<QcFAIRecordData> queryOverLoadTemplates(QcFAIRecordData recordData, QcFAIRecordData masterData) {
String supplierNo = StringUtils.defaultString(recordData.getSupplierNo(), "");
String partNo = recordData.getPartNo();
String attributeType1 = "A";
recordData.setInspectionTypeNo(masterData.getInspectionTypeNo());
List<QcFAIRecordData> partAttribute = qcMapper.selectTemplateByPartNoForOverLoad(recordData);
if (partAttribute == null || partAttribute.isEmpty()) {
partAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), partNo, attributeType1, masterData.getInspectionTypeNo(), supplierNo);
}
if (partAttribute != null && !partAttribute.isEmpty()) {
return partAttribute;
}
String familyId = qcMapper.selectFamilyIdByPartNo(partNo, recordData.getSite());
String attributeType2 = "B";
List<QcFAIRecordData> familyAttribute = qcMapper.selectPartAttributeByPartNo(recordData.getSite(), recordData.getBuNo(), familyId, attributeType2, masterData.getInspectionTypeNo(), supplierNo);
return familyAttribute == null ? new ArrayList<>() : familyAttribute;
}
private void applySamplingFromTemplate(QcFAIRecordData masterData, QcFAIRecordData recordData, QcFAIRecordData template) {
if (template.getInspectionCycle() != null) {
masterData.setInspectionCycle(template.getInspectionCycle());
}
if (StringUtils.isNotBlank(template.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData samplingInspectionProgrammeData = new QcSamplingInspectionProgrammeData();
samplingInspectionProgrammeData.setSite(template.getSite());
samplingInspectionProgrammeData.setBuNo(template.getBuNo());
samplingInspectionProgrammeData.setSamplingProgrammeNo(template.getSamplingProgrammeNo());
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(samplingInspectionProgrammeData);
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(template.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)) {
masterData.setSamplingQty(programmeData.getSamplingQty());
}
}
} else if (template.getDefaultSamplingQuantity() != null) {
masterData.setSamplingQty(template.getDefaultSamplingQuantity());
} else if (template.getDefaultSamplingProportion() != null) {
BigDecimal d = template.getDefaultSamplingProportion().multiply(recordData.getRollCount() == null? new BigDecimal(0) : recordData.getRollCount()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP);
masterData.setSamplingQty(d);
}
}
private void insertDetailedByTemplate(List<QcFAIRecordData> templates, QcFAIRecordData masterData, QcFAIRecordData recordData, String type,String orderNo) {
for (QcFAIRecordData template : templates) {
QcFAIRecordData detailData = new QcFAIRecordData();
detailData.setSite(recordData.getSite());
detailData.setBuNo(recordData.getBuNo());
detailData.setInspectionNo(masterData.getInspectionNo());
detailData.setTemplateId(template.getTemplateId());
detailData.setSamplingLevelNo(template.getSamplingLevelNo());
detailData.setSamplingLevelDesc(template.getSamplingLevelDesc());
detailData.setSamplingProgrammeNo(template.getSamplingProgrammeNo());
detailData.setSamplingProgrammeDesc(template.getSamplingProgrammeDesc());
detailData.setAql(template.getAql());
detailData.setAc(template.getAc());
detailData.setRe(template.getRe());
detailData.setSamplingQty(masterData.getSamplingQty());
detailData.setPartNo(recordData.getPartNo());
detailData.setOrderNo(orderNo);
switch (type) {
case "FAI":
qcMapper.saveFAIDetailedRecordByTemplate(detailData);
break;
case "IPQC":
qcMapper.saveIPQCDetailedRecordByTemplate(detailData);
break;
case "FQC":
qcMapper.saveFQCDetailedRecordByTemplate(detailData);
break;
default:
break;
}
}
}
// ======================= SQC检验维护 =======================
@Override
@ -3186,7 +3335,7 @@ public class QcServiceImpl implements QcService {
qcMapper.deleteSQCDetailedRecord(recordData);
qcMapper.deleteSQCSubDetailedRecord(recordData);
qcMapper.deleteSQCRecord(recordData);
qcMapper.deleteEquipmentDataAcquisition(recordData);
//qcMapper.deleteEquipmentDataAcquisition(recordData);
qcMapper.deleteInspectionFiles(recordData);
}
}
@ -3198,7 +3347,7 @@ public class QcServiceImpl implements QcService {
for (QcFAIRecordData recordData : data.getSubmitList()) {
qcMapper.deleteSQCDetailedRecord(recordData);
qcMapper.deleteSQCSubDetailedRecord(recordData);
qcMapper.deleteEquipmentDataAcquisition(recordData);
//qcMapper.deleteEquipmentDataAcquisition(recordData);
qcMapper.deleteInspectionFiles(recordData);
String supplierNo = "";

6
src/main/java/com/heai/modules/pms/service/QcService.java

@ -310,6 +310,12 @@ public interface QcService {
void iqcRecordOverLoad(QcFAIRecordData data);
void faiRecordOverLoad(QcFAIRecordData data);
void ipqcRecordOverLoad(QcFAIRecordData data);
void fqcRecordOverLoad(QcFAIRecordData data);
List<SysOssEntity> upload(MultipartFile[] list, GetParamInData inData);

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

@ -2883,6 +2883,72 @@
WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
</insert>
<insert id="saveFAIDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
INSERT INTO dbo.qc_fai_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,
item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
)
SELECT
#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
#{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
A.ItemNo, B.ItemDesc, A.object_id, A.object_desc,
COALESCE(C.default_value, A.default_value, B.defaultValue),
COALESCE(C.min_value, A.min_value, B.minvalue),
COALESCE(C.max_value, A.max_value, B.maxValue),
'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
FROM qc_template_detailed A
INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
</insert>
<insert id="saveIPQCDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
INSERT INTO dbo.qc_ipqc_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,
item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
)
SELECT
#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
#{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
A.ItemNo, B.ItemDesc, A.object_id, A.object_desc,
COALESCE(C.default_value, A.default_value, B.defaultValue),
COALESCE(C.min_value, A.min_value, B.minvalue),
COALESCE(C.max_value, A.max_value, B.maxValue),
'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
FROM qc_template_detailed A
INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
</insert>
<insert id="saveFQCDetailedRecordByTemplate" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
INSERT INTO dbo.qc_fqc_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, default_value, min_value, max_value,
item_result, value_type_db, value_type, is_submit, site, sampling_qty, bu_no, order_id,order_no
)
SELECT
#{inspectionNo}, #{templateId}, #{samplingLevelNo}, #{samplingLevelDesc},
#{samplingProgrammeNo}, #{samplingProgrammeDesc}, #{aql,jdbcType=DECIMAL}, #{ac,jdbcType=DECIMAL}, #{re,jdbcType=DECIMAL},
A.ItemNo, B.ItemDesc, A.object_id,
COALESCE(C.default_value, A.default_value, B.defaultValue),
COALESCE(C.min_value, A.min_value, B.minvalue),
COALESCE(C.max_value, A.max_value, B.maxValue),
'Y', B.ValueType_DB, B.ValueType, 'N', #{site}, #{samplingQty,jdbcType=DECIMAL}, #{buNo}, A.order_id,#{orderNo}
FROM qc_template_detailed A
INNER JOIN eam_properties_item B ON A.SITE = B.SITE AND A.bu_no = B.bu_no AND A.ItemNo = B.ItemNo
LEFT JOIN qc_part_attr_detailed C ON B.site = C.site AND B.bu_no = C.bu_no AND B.ItemNo = C.item_no AND C.attribute_no = #{partNo}
WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.template_id = #{templateId}
</insert>
<!-- 修改IQC检验记录 -->
<update id="updateIQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
UPDATE qc_iqc_record
@ -2899,6 +2965,42 @@
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
<update id="updateFAIRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
UPDATE qc_fai_record
SET inspection_type_no = #{inspectionTypeNo},
sampling_qty = #{samplingQty},
inspection_cycle = #{inspectionCycle},
part_no = #{partNo},
state = '未开始',
action_date = '',
action_by = ''
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
<update id="updateIPQCRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
UPDATE qc_ipqc_record
SET inspection_type_no = #{inspectionTypeNo},
sampling_qty = #{samplingQty},
inspection_cycle = #{inspectionCycle},
part_no = #{partNo},
state = '未开始',
action_date = '',
action_by = ''
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
<update id="updateFQCRecordOverLoad" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
UPDATE qc_fqc_record
SET inspection_type_no = #{inspectionTypeNo},
sampling_qty = #{samplingQty},
inspection_cycle = #{inspectionCycle},
part_no = #{partNo},
state = '未开始',
action_date = '',
action_by = ''
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</update>
<!-- 查询IQC主记录信息 -->
<select id="qcIQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
SELECT

Loading…
Cancel
Save