feat: 接口IQC检验bug修复
This commit is contained in:
parent
d99945c8ed
commit
d9512eb250
@ -33,6 +33,11 @@ public class InspecJobExtend{
|
||||
*/
|
||||
private String targetBo;
|
||||
|
||||
/**
|
||||
* 检验计划
|
||||
*/
|
||||
private String qcPlan;
|
||||
|
||||
/*
|
||||
* 检验级别
|
||||
*/
|
||||
|
||||
@ -37,7 +37,7 @@ public class QmsIqcBarcodeMDTO {
|
||||
// SAP批次
|
||||
private String sapBatch;
|
||||
// 收货批次
|
||||
private String receiptBath;
|
||||
private String receiptBatch;
|
||||
// 收货数量
|
||||
private BigDecimal receivedQuantity ;
|
||||
// 退回数量
|
||||
|
||||
@ -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,用于标识检验作业
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user