feat: 接口IQC检验bug修复

This commit is contained in:
angus liu 2024-12-12 15:03:18 +08:00
parent d99945c8ed
commit d9512eb250
4 changed files with 43 additions and 34 deletions

View File

@ -33,6 +33,11 @@ public class InspecJobExtend{
*/
private String targetBo;
/**
* 检验计划
*/
private String qcPlan;
/*
* 检验级别
*/

View File

@ -37,7 +37,7 @@ public class QmsIqcBarcodeMDTO {
// SAP批次
private String sapBatch;
// 收货批次
private String receiptBath;
private String receiptBatch;
// 收货数量
private BigDecimal receivedQuantity ;
// 退回数量

View File

@ -1305,7 +1305,7 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
jsonBody.put("sysFlowGUID", StrUtil.uuid());
jsonBody.put("createrUsercode", inspecJob.getApprovalUser());
jsonBody.put("formId", "-238");//固定
jsonBody.put("requestName", String.format("物料[%s] + 来料检验不合格,任务号:[%s],时间:[%s]", item.getDescription(), inspecJob.getJobNo(),LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));// [物料描述] + 来料检验不合格 + [检验任务编号],+ 时间:[时间]
jsonBody.put("requestName", String.format("物料:[%s]来料检验不合格,任务号:[%s],时间:[%s]", item.getDescription(), inspecJob.getJobNo(),LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))));// [物料描述] + 来料检验不合格 + [检验任务编号],+ 时间:[时间]
jsonBody.put("remark", "");
jsonBody.put("isNextFlow", "0");
jsonBody.put("mainData", mainDataJsonBody);
@ -1699,33 +1699,27 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
List<CreateAndCollectInspectDataSourceResponse> result = new ArrayList<>();
try {
validation(inspecJobExtend);
// 获取物料+检验级别对应的检验计划
List<QmsQcPlanTargetDTO> qmsQcPlanTargetList = qmsQcPlanTargetService.getByTargetBoAndInspectLevel(inspecJobExtend.getItemBo(), inspecJobExtend.getInspectLevel());
if (CollUtil.isNotEmpty(qmsQcPlanTargetList)) {
// 根据检验计划项,生成对应数量的检验批次编号
GenerateNextNumberRequest generateNextNumberRequest = new GenerateNextNumberRequest();
generateNextNumberRequest.setSite(inspecJobExtend.getSite());
generateNextNumberRequest.setNextNumberType("QMS_INSPEC_BATCH");// 硬编码
generateNextNumberRequest.setNumberOfValues(qmsQcPlanTargetList.size());
R<GenerateNextNumberResponse> generates = remoteNextNumberService.generate(generateNextNumberRequest, SecurityConstants.FROM_IN);
// 根据检验计划项,生成对应数量的检验批次编号
GenerateNextNumberRequest generateNextNumberRequest = new GenerateNextNumberRequest();
generateNextNumberRequest.setSite(inspecJobExtend.getSite());
generateNextNumberRequest.setNextNumberType("QMS_INSPEC_BATCH");// 硬编码
generateNextNumberRequest.setNumberOfValues(1);
R<GenerateNextNumberResponse> generates = remoteNextNumberService.generate(generateNextNumberRequest, SecurityConstants.FROM_IN);
if (generates != null && generates.getData() != null && generates.getData().getIds() != null) {
String inspectionBatch = generates.getData().getIds().get(0); // 通过编号规则生成
// 1.创建任务
QmsInspecJob returnJob = createInspecJob(inspecJobExtend, inspectionBatch);
// 2.存入数据 QMS_IQC_INSPEC_DATA_SOURCE
QmsIqcInspecDataSource qmsIqcInspecDataSource = createQmsIqcInspecDataSource(inspecJobExtend, returnJob, inspectionBatch);
qmsIqcInspecDataSourceService.save(qmsIqcInspecDataSource);
// 3.处理返回结果
CreateAndCollectInspectDataSourceResponse response = new CreateAndCollectInspectDataSourceResponse();
response.setJobNo(returnJob.getJobNo());
response.setInspectionBatch(inspectionBatch);
result.add(response);
if (generates != null && generates.getData() != null && generates.getData().getIds() != null) {
for (int i = 0; i < qmsQcPlanTargetList.size(); i++) {
String inspectionBatch = generates.getData().getIds().get(i); // 通过编号规则生成
// 1.创建任务
QmsInspecJob returnJob = createInspecJob(qmsQcPlanTargetList.get(i), inspecJobExtend, inspectionBatch);
// 2.存入数据 QMS_IQC_INSPEC_DATA_SOURCE
QmsIqcInspecDataSource qmsIqcInspecDataSource = createQmsIqcInspecDataSource(inspecJobExtend, returnJob, inspectionBatch);
qmsIqcInspecDataSourceService.save(qmsIqcInspecDataSource);
// 3.处理返回结果
CreateAndCollectInspectDataSourceResponse response = new CreateAndCollectInspectDataSourceResponse();
response.setJobNo(returnJob.getJobNo());
response.setInspectionBatch(inspectionBatch);
result.add(response);
}
} else {
throw BusinessException.build("生成检验批次编号失败");
}
} else {
throw BusinessException.build("生成检验批次编号失败");
}
} catch (BusinessException e) {
throw e;
@ -1843,15 +1837,14 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
/**
* 创建检验作业
* 根据质量计划目标和检验作业扩展信息来创建一个新的检验作业对象
* @param qcPlanTarget 质量计划目标DTO,包含了与质量计划相关的必要信息
* @param inspecJobExtend 检验作业扩展对象,包含了创建检验作业所需的额外信息
* @return 返回创建好的QmsInspecJob对象
*/
private QmsInspecJob createInspecJob(QmsQcPlanTargetDTO qcPlanTarget, InspecJobExtend inspecJobExtend, String inspectionBatch) {
private QmsInspecJob createInspecJob(InspecJobExtend inspecJobExtend, String inspectionBatch) {
// 创建一个新的检验作业对象
InspecJob job = new InspecJob();
// 设置质量计划
job.setQcPlan(qcPlanTarget.getQcPlan());
job.setQcPlan(inspecJobExtend.getQcPlan());
// 设置检验频率为“收货时”
job.setQcFreq("RECEIPT");
// 设置下一个编号类型为QMS_IQC_INSPEC_JOB,用于标识检验作业

View File

@ -8,14 +8,17 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.integration.feign.RemoteInvokeService;
import com.foreverwin.iep.prd.entity.Item;
import com.foreverwin.iep.prd.entity.ReasonCode;
import com.foreverwin.iep.qms.domain.InspecJob;
import com.foreverwin.iep.qms.dto.QmsIqcBarcodeDDTO;
import com.foreverwin.iep.qms.dto.QmsIqcBarcodeDTO;
import com.foreverwin.iep.qms.dto.QmsIqcBarcodeMDTO;
import com.foreverwin.iep.qms.entity.QmsInspecJob;
import com.foreverwin.iep.qms.entity.QmsInspecNcBarcodeD;
import com.foreverwin.iep.qms.entity.QmsInspecNcBarcodeM;
import com.foreverwin.iep.qms.entity.QmsIqcInspecDataSource;
@ -127,10 +130,12 @@ public class QmsInspecNcBarcodeMServiceImpl extends ServiceImpl<QmsInspecNcBarco
@Override
public void commitBarcodeList(QmsIqcBarcodeMDTO qmsIqcBarcodeMDTO) {
String site = TenantContextHolder.getTenantId();
String handle = qmsIqcBarcodeMDTO.getHandle();
String receiptNo = qmsIqcBarcodeMDTO.getReceiptNo();
String item = qmsIqcBarcodeMDTO.getItem();
String sapBatch = qmsIqcBarcodeMDTO.getInspectBatch();
String itemNumber = qmsIqcBarcodeMDTO.getItemNumber();
String inspectBatch = qmsIqcBarcodeMDTO.getInspectBatch();
BigDecimal populationQty = qmsIqcBarcodeMDTO.getReceivedQuantity() == null ? BigDecimal.ZERO: qmsIqcBarcodeMDTO.getReceivedQuantity();//收货数量(采购数量)
BigDecimal returnQty = qmsIqcBarcodeMDTO.getReturnQuantity() == null ? BigDecimal.ZERO:qmsIqcBarcodeMDTO.getReturnQuantity();//退回数量
BigDecimal destructiveQty = qmsIqcBarcodeMDTO.getDestructiveQuantity() == null ? BigDecimal.ZERO: qmsIqcBarcodeMDTO.getDestructiveQuantity();//破坏数量
@ -163,6 +168,11 @@ public class QmsInspecNcBarcodeMServiceImpl extends ServiceImpl<QmsInspecNcBarco
if (ObjectUtil.isNotNull(sysActivityOptionErp) && "Y".equals(sysActivityOptionErp.getOptionValue())){
callErpInterface("103",sapBatch,item,populationQty,storageQty,returnQty,destructiveQty,testsampleQty);
}
// 更新状态
super.update(Wrappers.<QmsInspecNcBarcodeM>lambdaUpdate().eq(QmsInspecNcBarcodeM::getHandle, handle)
.set(QmsInspecNcBarcodeM::getStatus, "1")
.set(QmsInspecNcBarcodeM::getUpdater, SecurityUtils.getUserName())
.set(QmsInspecNcBarcodeM::getDateUpdate, LocalDateTime.now()));
}
/**
@ -190,16 +200,17 @@ public class QmsInspecNcBarcodeMServiceImpl extends ServiceImpl<QmsInspecNcBarco
inputJsonObject.put("WERKS",TenantContextHolder.getTenantId());//工厂
inputJsonObject.put("MATNR", item);//物料编号
inputJsonObject.put("CHARG",sapBatch);//批次编号 SAP批次
inputJsonObject.put("Z_MENGE0",populationQty );// 总数量
inputJsonObject.put("Z_MENGE1",storageQty );// 合格数量
inputJsonObject.put("Z_MENGE2",returnQty );// 退货数量
inputJsonObject.put("Z_MENGE3",destructiveQty.add(testsampleQty) );// 取样消耗数量
JSONArray jsonArray = new JSONArray();
jsonArray.add(inputJsonObject);
// JSONArray jsonArray = new JSONArray();
// jsonArray.add(inputJsonObject);
JSONObject bodyJsonObject = new JSONObject();
bodyJsonObject.put("IT_INPUT", jsonArray);
bodyJsonObject.put("IS_INPUT", inputJsonObject);// update by liuqiangguo 20241212 更改IT_INPUT为IS_INPUT
jsonBody.put("REQUEST_BODY", bodyJsonObject);