Browse Source

添加同步方法

master
shenzhouyu 3 months ago
parent
commit
0c83a2f9d9
  1. 70
      src/main/java/com/heai/modules/pms/data/QcFAIRecordData.java
  2. 56
      src/main/java/com/heai/modules/pms/entity/InspectInfoToQmsDto.java
  3. 6
      src/main/java/com/heai/modules/pms/mapper/QcMapper.java
  4. 26
      src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java
  5. 216
      src/main/java/com/heai/modules/pms/service/Impl/SynInspectInfoToQmsServiceImpl.java
  6. 9
      src/main/java/com/heai/modules/pms/service/SynInspectInfoToQmsService.java
  7. 79
      src/main/resources/mapper/pms/QcMapper.xml

70
src/main/java/com/heai/modules/pms/data/QcFAIRecordData.java

@ -275,6 +275,20 @@ public class QcFAIRecordData extends QueryPage {
private Integer imageDetailNum;
private String receiptNo; //ERP的接收单号
private String receiptItemNo; //ERP的接收单序号
private String refInfo1; //MES中的实验室检验单单号 SOOPSTransHeader中的TransNo
private String refInfo2;//MES中的实验室检验单单序号SOOPSTransDetail中的ItemNo
private String refInfo3;
private String refInfo4;
private String refInfo5;
public String getTemplateName() {
return templateName;
}
@ -1217,4 +1231,60 @@ public class QcFAIRecordData extends QueryPage {
public void setOrderId(Integer orderId) {
this.orderId = orderId;
}
public String getReceiptNo() {
return receiptNo;
}
public void setReceiptNo(String receiptNo) {
this.receiptNo = receiptNo;
}
public String getReceiptItemNo() {
return receiptItemNo;
}
public void setReceiptItemNo(String receiptItemNo) {
this.receiptItemNo = receiptItemNo;
}
public String getRefInfo1() {
return refInfo1;
}
public void setRefInfo1(String refInfo1) {
this.refInfo1 = refInfo1;
}
public String getRefInfo2() {
return refInfo2;
}
public void setRefInfo2(String refInfo2) {
this.refInfo2 = refInfo2;
}
public String getRefInfo3() {
return refInfo3;
}
public void setRefInfo3(String refInfo3) {
this.refInfo3 = refInfo3;
}
public String getRefInfo4() {
return refInfo4;
}
public void setRefInfo4(String refInfo4) {
this.refInfo4 = refInfo4;
}
public String getRefInfo5() {
return refInfo5;
}
public void setRefInfo5(String refInfo5) {
this.refInfo5 = refInfo5;
}
}

56
src/main/java/com/heai/modules/pms/entity/InspectInfoToQmsDto.java

@ -0,0 +1,56 @@
package com.heai.modules.pms.entity;
import lombok.Data;
import java.util.Date;
@Data
public class InspectInfoToQmsDto {
private String transNo;
private String site;
private String fromProLineNo;
private String toProLineNo;
private String toWarehouseID;
private String fromEnteredby;
private Date fromEnteredDate;
private Date transDate;
private String toReceiver;
private String fromReceiver;
private String fromRemark;
private String toRemark;
private String confirmedFlag;
private String toConfirmedBy;
private String toEnteredby;
private Date toEnteredDate;
private String latestUpdatedBy;
private Date latestUpdatedDate;
private String recordVersion;
private String status;
private String toTypeFlagDB;
private String toTypeFlag;
private String confirmedTransNo;
private String needInspectFlag;
private String inspectedFlag;
private String inspectResult;
private String inspectRemark;
private String needReceiveFlag;
private Integer itemNo;
private Integer fromOpsID;
private String fromWorkCenterNo;
private String toWorkCenterNo;
private Integer toOpsID;
private String orderNo;
private String partNo;
private Double transQty;
private Double confirmQty;
private String taskNo;
private String insStatus;
private Double toConfirmQty;
private Integer seqNo;
private Double boxWeight;
private String orderRef1;
private String orderRef2;
private String orderRef3;
private String orderRef4;
private String orderRef5;
}

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

@ -246,6 +246,8 @@ public interface QcMapper {
void saveIPQCRecord(QcFAIRecordData qcFAIRecordData);
void saveIQCRecord(QcFAIRecordData qcFAIRecordData);
IPage<QcFAIRecordData> qcIPQCInspectionSearch(Page<QcFAIRecordData> qcFAIRecordDataPage,@Param("query") QcFAIRecordData data);
List<QcFAIRecordData> ipqcDetailSearch(QcFAIRecordData data);
@ -387,6 +389,8 @@ public interface QcMapper {
String selectIPQCInspectionNo(QcFAIRecordData data);
String selectIQCInspectionNo(QcFAIRecordData data);
String selectFAIInspectionNo(QcFAIRecordData data);
void saveReceivingTask(PoOrderData data);
@ -399,6 +403,8 @@ public interface QcMapper {
List<QcFAIRecordData> selectTemplate(QcFAIRecordData data);
List<QcFAIRecordData> selectTemplateByPartNo(QcFAIRecordData data);
String getMethodNo(QcMethodData data);
String getItemNo(QcItemData data);

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

@ -18,8 +18,10 @@ import com.heai.modules.pms.mapper.QcMapper;
import com.heai.modules.pms.service.QcService;
import com.heai.modules.pms.util.HttpClientUtil;
import com.heai.modules.pms.util.ResponseData;
import com.heai.modules.production.service.InspectService;
import com.heai.modules.report.dao.ProcedureDao;
import com.heai.modules.sys.entity.SysSceneDynamicControlModelEntity;
import com.heai.modules.sys.entity.SysUserEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
@ -29,6 +31,7 @@ import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -88,6 +91,8 @@ public class QcServiceImpl implements QcService {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private InspectService inspectService;
// ======================= 检验方法 =======================
@ -2198,6 +2203,7 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void saveFQCSubmitResult(QcFAIRecordData data) {
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
for (QcFAIRecordData qcData : data.getSubmitList()) {
// 修改主记录标识为已提交
qcMapper.updateFQCMasterSubmitFlag(qcData);
@ -2205,6 +2211,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updateFQCDetailSubmitFlag(qcData);
// 修改子明细记录标识为已提交
qcMapper.updateFQCSubDetailSubmitFlag(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
// 发送邮件
// if ("不合格".equals(qcData.getInspectionResult())) {
@ -3327,6 +3336,7 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void cancelApproval(QcFAIRecordData data) {
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
for (QcFAIRecordData qcData : data.getSubmitList()) {
// 物料的controlMes为G的不允许取消审核
List<QcFAIRecordData> partInformationList = qcMapper.getPartInformation(qcData);
@ -3347,6 +3357,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updateIQCSubDetailSubmitFlag2(qcData);
// 删除相应task表的数据
qcMapper.deleteReceivingTaskByInspectionNo(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
}
}
@ -3356,6 +3369,7 @@ public class QcServiceImpl implements QcService {
@Override
@Transactional
public void cancelApproval2(QcFAIRecordData data) {
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
if ("fai".equals(data.getType())) {
for (QcFAIRecordData qcData : data.getSubmitList()) {
qcData.setUpdateBy(data.getUpdateBy());
@ -3363,6 +3377,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updateFAIMasterSubmitFlag2(qcData);
qcMapper.updateFAIDetailSubmitFlag2(qcData);
qcMapper.updateFAISubDetailSubmitFlag2(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
}
} else if ("ipqc".equals(data.getType())) {
for (QcFAIRecordData qcData : data.getSubmitList()) {
@ -3370,6 +3387,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updateIPQCMasterSubmitFlag2(qcData);
qcMapper.updateIPQCDetailSubmitFlag2(qcData);
qcMapper.updateIPQCSubDetailSubmitFlag2(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
}
} else if ("fqc".equals(data.getType())) {
for (QcFAIRecordData qcData : data.getSubmitList()) {
@ -3377,6 +3397,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updateFQCMasterSubmitFlag2(qcData);
qcMapper.updateFQCDetailSubmitFlag2(qcData);
qcMapper.updateFQCSubDetailSubmitFlag2(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
}
} else if ("pqc".equals(data.getType())) {
for (QcFAIRecordData qcData : data.getSubmitList()) {
@ -3384,6 +3407,9 @@ public class QcServiceImpl implements QcService {
qcMapper.updatePQCMasterSubmitFlag2(qcData);
qcMapper.updatePQCDetailSubmitFlag2(qcData);
qcMapper.updatePQCSubDetailSubmitFlag2(qcData);
if (StringUtils.isNotBlank(data.getRefInfo1()) && StringUtils.isNotBlank(data.getRefInfo2())){
inspectService.inspectForQMS(qcData.getSite(), qcData.getRefInfo1(), Integer.parseInt(qcData.getRefInfo2()), "submit", qcData.getInspectionResult(), qcData.getInspectionRemark(), currentUser.getUsername());
}
}
}
}

216
src/main/java/com/heai/modules/pms/service/Impl/SynInspectInfoToQmsServiceImpl.java

@ -0,0 +1,216 @@
package com.heai.modules.pms.service.Impl;
import com.heai.modules.pms.data.QcFAIRecordData;
import com.heai.modules.pms.data.QcSamplingInspectionProgrammeData;
import com.heai.modules.pms.data.QcTemplateData;
import com.heai.modules.pms.entity.InspectInfoToQmsDto;
import com.heai.modules.pms.mapper.QcMapper;
import com.heai.modules.pms.service.SynInspectInfoToQmsService;
import com.heai.modules.sys.entity.SysSceneDynamicControlModelEntity;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class SynInspectInfoToQmsServiceImpl implements SynInspectInfoToQmsService {
@Autowired
private QcMapper qcMapper;
@Override
@Transactional
public String synInspectInfoToQms(List<InspectInfoToQmsDto> inspect) {
for (InspectInfoToQmsDto inspectInfoToQmsDto : inspect){
QcFAIRecordData data = new QcFAIRecordData();
data.setSite(inspectInfoToQmsDto.getSite());
data.setPartNo(inspectInfoToQmsDto.getPartNo());
data.setRefInfo1(inspectInfoToQmsDto.getTransNo());
data.setRefInfo2(inspectInfoToQmsDto.getItemNo().toString());
data.setOrderNo(inspectInfoToQmsDto.getOrderNo());
data.setTaskDate(new Date());
if("W".equals(inspectInfoToQmsDto.getToTypeFlagDB())){//FQC
String InspectionNo = qcMapper.selectFQCInspectionNo(data);
data.setInspectionNo("FQC" + InspectionNo);
data.setState("未开始");
List<QcFAIRecordData> partAttribute;
// 检查动控是否已开启
// 根据用户选择的模板编码获取模板详情,todo同步的数据模板id哪里来
//partAttribute = qcMapper.selectTemplate(data);
partAttribute = qcMapper.selectTemplateByPartNo(data);
// 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
}
// 获取抽样数量
BigDecimal samplingQty = getInspectionSamplingQty(partAttribute, data.getRollQty());
data.setSamplingQty(samplingQty);
// 获取检验明细数据
List<QcFAIRecordData> faiRecordDataList = getInspectionDetails(partAttribute.get(0), data);
// 新增FQC明细记录信息
for (QcFAIRecordData recordData : faiRecordDataList) {
qcMapper.saveFQCDetailedRecord(recordData);
}
// 新增FQC主记录信息
qcMapper.saveFQCRecord(data);
}else if("I".equals(inspectInfoToQmsDto.getToTypeFlagDB())){//IPQC
String InspectionNo = qcMapper.selectIPQCInspectionNo(data);
data.setInspectionNo("IPQC" + InspectionNo);
data.setState("未开始");
List<QcFAIRecordData> partAttribute;
// 检查动控是否已开启
// 根据用户选择的模板编码获取模板详情
//partAttribute = qcMapper.selectTemplate(data);
partAttribute = qcMapper.selectTemplateByPartNo(data);
// 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
}
// 获取抽样数量
BigDecimal samplingQty = getInspectionSamplingQty(partAttribute, data.getRollQty());
data.setSamplingQty(samplingQty);
// 获取检验明细数据
List<QcFAIRecordData> faiRecordDataList = getInspectionDetails(partAttribute.get(0), data);
// 新增IPQC明细记录信息
for (QcFAIRecordData recordData : faiRecordDataList) {
qcMapper.saveIPQCDetailedRecord(recordData);
}
// 新增IPQC主记录信息
qcMapper.saveIPQCRecord(data);
}else if ("Q".equals(inspectInfoToQmsDto.getToTypeFlagDB())){ //IQC
String InspectionNo = qcMapper.selectIQCInspectionNo(data);
data.setInspectionNo("IQC" + InspectionNo);
data.setState("未开始");
List<QcFAIRecordData> partAttribute;
// 检查动控是否已开启
// 根据用户选择的模板编码获取模板详情
//partAttribute = qcMapper.selectTemplate(data);
partAttribute = qcMapper.selectTemplateByPartNo(data);
// 获取检验周期
if (partAttribute.get(0).getInspectionCycle() != null) {
data.setInspectionCycle(partAttribute.get(0).getInspectionCycle());
}
// 获取抽样数量
BigDecimal samplingQty = getInspectionSamplingQty(partAttribute, data.getRollQty());
data.setSamplingQty(samplingQty);
// 获取检验明细数据
List<QcFAIRecordData> faiRecordDataList = getInspectionDetails(partAttribute.get(0), data);
// 新增IPQC明细记录信息
for (QcFAIRecordData recordData : faiRecordDataList) {
qcMapper.saveIQCDetailedRecord(recordData);
}
// 新增IPQC主记录信息
qcMapper.saveIQCRecord(data);
}else if("S".equals(inspectInfoToQmsDto.getToTypeFlagDB())){ //过期复检
}
}
return "200";
}
public BigDecimal getInspectionSamplingQty(List<QcFAIRecordData> partAttribute, BigDecimal rollQty) {
QcFAIRecordData firstPart = partAttribute.get(0);
BigDecimal samplingQty = null;
// 如果该检验模板有维护抽样方案
if (StringUtils.isNotBlank(firstPart.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData searchCriteria = new QcSamplingInspectionProgrammeData();
searchCriteria .setSite(firstPart.getSite());
searchCriteria .setBuNo(firstPart.getBuNo());
searchCriteria .setSamplingProgrammeNo(firstPart.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(searchCriteria);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(firstPart.getSamplingLevelNo()) && (rollQty.compareTo(programmeData.getMinQty()) > 0 || rollQty.compareTo(programmeData.getMinQty()) == 0) && (rollQty.compareTo(programmeData.getMaxQty()) < 0 || rollQty.compareTo(programmeData.getMaxQty()) == 0) ){
samplingQty = programmeData.getSamplingQty();
break;
}
}
}
// 没有维护抽样方案再根据默认抽样数来确定
if (samplingQty == null && firstPart.getDefaultSamplingQuantity() != null) {
samplingQty = firstPart.getDefaultSamplingQuantity();
}
// 也没有维护默认抽样数最后根据默认抽样比例来确定
if (samplingQty == null && firstPart.getDefaultSamplingProportion() != null) {
samplingQty = firstPart.getDefaultSamplingProportion().multiply(rollQty).divide(new BigDecimal(100),3,BigDecimal.ROUND_HALF_UP);
}
return samplingQty;
}
public List<QcFAIRecordData> getInspectionDetails(QcFAIRecordData firstPart, QcFAIRecordData data) {
// 获取根据该检验模板下维护的检验项目
QcTemplateData templateData = new QcTemplateData();
templateData.setSite(data.getSite());
templateData.setBuNo(data.getBuNo());
templateData.setTemplateId(firstPart.getTemplateId());
templateData.setItemType("D");
List<QcTemplateData> itemList = qcMapper.templateDetailsSearch(templateData);
List<QcFAIRecordData> faiRecordDataList = new ArrayList<>();
for (QcTemplateData qcTemplateData : itemList) {
QcFAIRecordData faiRecordData = new QcFAIRecordData();
faiRecordData.setSite(data.getSite()); // 工厂
faiRecordData.setBuNo(data.getBuNo()); // BU
faiRecordData.setInspectionNo(data.getInspectionNo()); // 检验单号
faiRecordData.setOrderNo(data.getOrderNo()); // 工单号
faiRecordData.setTemplateId(firstPart.getTemplateId()); // 模板编码
faiRecordData.setAql(firstPart.getAql()); // aql
faiRecordData.setAc(firstPart.getAc()); // ac
faiRecordData.setRe(firstPart.getRe()); // re
faiRecordData.setSamplingQty(null);
faiRecordData.setSamplingLevelNo(qcTemplateData.getSamplingLevelNo()); // 检验水平编码
faiRecordData.setSamplingLevelDesc(qcTemplateData.getSamplingLevelDesc()); // 检验水平名称
faiRecordData.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo()); // 抽样方案编码
faiRecordData.setSamplingProgrammeDesc(qcTemplateData.getSamplingProgrammeDesc()); // 抽样方案名称
faiRecordData.setItemNo(qcTemplateData.getItemNo()); // 项目编码
faiRecordData.setItemDesc(qcTemplateData.getItemDesc()); // 项目名称
faiRecordData.setObjectId(qcTemplateData.getObjectID()); // 设备编码
faiRecordData.setObjectDesc(qcTemplateData.getObjectDesc()); // 设备名称
faiRecordData.setDefaultValue(qcTemplateData.getDefaultValue()); // 默认值
faiRecordData.setMinValue(qcTemplateData.getMinValue()); // 最小值
faiRecordData.setMaxValue(qcTemplateData.getMaxValue()); // 最大值
faiRecordData.setValueType(qcTemplateData.getValueType()); // 检测值类型
faiRecordData.setValueTypeDb(qcTemplateData.getValueTypeDb());
faiRecordData.setOrderId(qcTemplateData.getOrderId());
// 获取抽样数量
// 如果该检验项目有维护抽样方案
BigDecimal samplingQty = null;
if (StringUtils.isNotBlank(qcTemplateData.getSamplingProgrammeNo())) {
QcSamplingInspectionProgrammeData searchCriteria = new QcSamplingInspectionProgrammeData();
searchCriteria.setSite(qcTemplateData.getSite());
searchCriteria.setBuNo(qcTemplateData.getBuNo());
searchCriteria.setSamplingProgrammeNo(qcTemplateData.getSamplingProgrammeNo());
// 获取抽样方案维护的矩阵详情
List<QcSamplingInspectionProgrammeData> dataList = qcMapper.searchSamplingProgrammeDetails(searchCriteria);
// 根据抽样方案确定抽样数
for (QcSamplingInspectionProgrammeData programmeData : dataList) {
if (programmeData.getSamplingLevelNo().equals(qcTemplateData.getSamplingLevelNo()) && (data.getRollQty().compareTo(programmeData.getMinQty()) > 0 || data.getRollQty().compareTo(programmeData.getMinQty()) == 0) && (data.getRollQty().compareTo(programmeData.getMaxQty()) < 0 || data.getRollQty().compareTo(programmeData.getMaxQty()) == 0)) {
samplingQty = programmeData.getSamplingQty();
break;
}
}
}
// 没有维护抽样方案再根据默认抽样数来确定
if (samplingQty == null && qcTemplateData.getItemSamplingQuantity() != null) {
samplingQty = qcTemplateData.getItemSamplingQuantity();
}
// 也没有维护默认抽样数最后根据默认抽样比例来确定
if (samplingQty == null && qcTemplateData.getDefaultSamplingProportion() != null) {
samplingQty = qcTemplateData.getDefaultSamplingProportion().multiply(data.getRollQty()).divide(new BigDecimal(100), 3, BigDecimal.ROUND_HALF_UP);
}
// 最后则根据检验单抽样数量赋值
if (samplingQty == null) {
samplingQty = data.getSamplingQty();
}
faiRecordData.setSamplingQty(samplingQty);
faiRecordDataList.add(faiRecordData);
}
return faiRecordDataList;
}
}

9
src/main/java/com/heai/modules/pms/service/SynInspectInfoToQmsService.java

@ -0,0 +1,9 @@
package com.heai.modules.pms.service;
import com.heai.modules.pms.entity.InspectInfoToQmsDto;
import java.util.List;
public interface SynInspectInfoToQmsService {
String synInspectInfoToQms(List<InspectInfoToQmsDto> inspect);
}

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

@ -1567,6 +1567,70 @@
LEFT JOIN qc_sampling_inspection_programme as qsip ON qt.sampling_programme_no = qsip.sampling_programme_no and qt.site = qsip.site and qt.bu_no = qsip.bu_no
WHERE qt.site = #{site} and qt.template_id = #{templateId} and qt.bu_no = #{buNo}
</select>
<select id="selectTemplateByPartNo" resultType="com.heai.modules.pms.data.QcFAIRecordData">
SELECT
DISTINCT
B.TransNo,B.Site,
B.ItemNo,
B.FromOpsID,
B.FromWorkCenterNo,
B.ToWorkCenterNo,
B.ToOpsID,
B.OrderNo,
B.PartNo,
B.TransQty,
B.ConfirmQty,
B.TaskNo,
B.InsStatus,
B.ToConfirmQty,
B.seqNo,
A.FromProLineNo,
A.ToProLineNo,
A.ToWarehouseID,
A.FromEnteredby,
A.FromEnteredDate,
A.TransDate,
A.ToReceiver,
A.FromReceiver,
A.FromRemark,
A.ToRemark,
A.ConfirmedFlag,
A.ToConfirmedBy,
A.ToEnteredby,
A.ToEnteredDate,
A.LatestUpdatedBy,
A.LatestUpdatedDate,
A.RecordVersion,
A.Status,
A.ToTypeFlag_DB,
A.ToTypeFlag,
A.ConfirmedTransNo,
A.need_inspect_flag,
A.inspected_flag,
A.inspect_result,
A.inspect_remark,
A.NeedReceiveFlag,
qt.site,
qt.bu_no,
qt.template_id,
qt.sampling_level_no,
qsil.sampling_level_desc,
qt.inspection_cycle,
qt.sampling_programme_no,
qsip.sampling_programme_desc,
qt.AQL,
qt.AC,
qt.RE,
qt.default_sampling_quantity,
qt.default_sampling_proportion
FROM SOOpsTransferHeader A
INNER JOIN SOOpsTransferDetail B ON A.Site = B.SITE AND A.TransNo = B.TransNo
INNER JOIN part D ON D.SITE = B.Site AND D.PartNo = B.PartNo
INNER JOIN qc_template as qt ON D.SITE = qt.site AND D.PartNo = qt.template_id
LEFT JOIN qc_sampling_inspection_level as qsil ON qt.sampling_level_no = qsil.sampling_level_no and qt.site = qsil.site and qt.bu_no = qsil.bu_no
LEFT JOIN qc_sampling_inspection_programme as qsip ON qt.sampling_programme_no = qsip.sampling_programme_no and qt.site = qsip.site and qt.bu_no = qsip.bu_no
WHERE A.SITE = #{site} AND A.bu_no = #{buNo} AND A.TransNo = #{TransNo}
</select>
<!-- 新增FAI主记录信息 -->
@ -1971,6 +2035,14 @@
(#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
#{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId})
</insert>
<insert id="saveIQCRecord" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
INSERT INTO qc_iqc_record
(inspection_no, site, bu_no, state, task_date, inspection_type_no, inspection_cycle, order_no, operation_desc, resource_id,
part_no, roll_qty, sampling_qty, ssr_id, seq_no, batch_roll_no, special_requirements, work_center_no, roll_no, um_id)
VALUES
(#{inspectionNo}, #{site}, #{buNo}, #{state}, getDate(), #{inspectionTypeNo}, #{inspectionCycle,jdbcType=DECIMAL}, #{orderNo}, #{operationDesc}, #{resourceId},
#{partNo}, #{rollQty}, #{samplingQty,jdbcType=DECIMAL}, #{ssrId}, #{seqNo}, #{batchRollNo}, #{specialRequirements}, #{workCenterNo}, #{rollNo}, #{umId})
</insert>
<!-- 查询IPQC主记录信息 -->
<select id="qcIPQCInspectionSearch" parameterType="com.heai.modules.pms.data.QcFAIRecordData" resultType="com.heai.modules.pms.data.QcFAIRecordData">
@ -3071,6 +3143,13 @@
WHERE site = #{site} and bu_no = #{buNo}
</select>
<select id="selectIQCInspectionNo" resultType="java.lang.String">
SELECT
Right('0000000000'+ convert(VARCHAR(10), isnull(max(convert(INT,SUBSTRING(inspection_no,5,10))),0)+1),8)
FROM qc_iqc_record
WHERE site = #{site} and bu_no = #{buNo}
</select>
<!-- 生成FAI检验单号 -->
<select id="selectFAIInspectionNo" resultType="string" parameterType="com.heai.modules.pms.data.QcFAIRecordData">
SELECT

Loading…
Cancel
Save