Merge remote-tracking branch 'origin/qms/develop' into qms/develop
This commit is contained in:
commit
ce5ddd8aad
|
|
@ -476,8 +476,8 @@ public class IncomingInspectionTaskControllerService {
|
||||||
QmsIncomingInspectionTask newTask = new QmsIncomingInspectionTask()
|
QmsIncomingInspectionTask newTask = new QmsIncomingInspectionTask()
|
||||||
.setRequestNo(task.getRequestNo())
|
.setRequestNo(task.getRequestNo())
|
||||||
.setTaskNo(taskNo)
|
.setTaskNo(taskNo)
|
||||||
.setMaterialId(task.getId())
|
.setMaterialId(task.getMaterialId())
|
||||||
.setInspectionStandardId(task.getId())
|
.setInspectionStandardId(task.getInspectionStandardId())
|
||||||
.setTestingMethodDictItemId(testingMethodDictItemId)
|
.setTestingMethodDictItemId(testingMethodDictItemId)
|
||||||
.setSupplierCode(task.getSupplierCode())
|
.setSupplierCode(task.getSupplierCode())
|
||||||
.setSupplierName(task.getSupplierName())
|
.setSupplierName(task.getSupplierName())
|
||||||
|
|
@ -501,10 +501,10 @@ public class IncomingInspectionTaskControllerService {
|
||||||
.setDetectionQty(task.getUnqualifiedQty());
|
.setDetectionQty(task.getUnqualifiedQty());
|
||||||
incomingInspectionTaskService.save(newTask);
|
incomingInspectionTaskService.save(newTask);
|
||||||
|
|
||||||
List<QmsIncomingInspectionTaskQr> qrs = incomingInspectionTaskQrService.lambdaQuery().eq(QmsIncomingInspectionTaskQr::getTaskId, taskId).list();
|
if (incomingInspectionTaskQrService.lambdaQuery().eq(QmsIncomingInspectionTaskQr::getTaskId, taskId).exists()) {
|
||||||
if (CollectionUtil.isNotEmpty(qrs)) {
|
|
||||||
incomingInspectionTaskQrService.saveBatch(incomingInspectionTaskRecordService.lambdaQuery()
|
incomingInspectionTaskQrService.saveBatch(incomingInspectionTaskRecordService.lambdaQuery()
|
||||||
.eq(QmsIncomingInspectionTaskRecord::getQualified, false)
|
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId)
|
||||||
|
.gt(QmsIncomingInspectionTaskRecord::getUnqualifiedQty, 0)
|
||||||
.list()
|
.list()
|
||||||
.stream()
|
.stream()
|
||||||
.map(record -> new QmsIncomingInspectionTaskQr()
|
.map(record -> new QmsIncomingInspectionTaskQr()
|
||||||
|
|
@ -517,14 +517,14 @@ public class IncomingInspectionTaskControllerService {
|
||||||
QmsQualityInspector inspector = qualityInspectorService.getById(newTask.getInspectorId());
|
QmsQualityInspector inspector = qualityInspectorService.getById(newTask.getInspectorId());
|
||||||
User inspectorUser = userService.getById(inspector.getUserId());
|
User inspectorUser = userService.getById(inspector.getUserId());
|
||||||
String typeName = newTask.getInspectionType() == 0 ? "来料" : "库存";
|
String typeName = newTask.getInspectionType() == 0 ? "来料" : "库存";
|
||||||
Long sourceTypeId = task.getInspectionType() == 0
|
Long sourceTypeId = newTask.getInspectionType() == 0
|
||||||
? dictionaryItemService.getIdByCode("MessageType", "IQCIncomingInspectionAdd")
|
? dictionaryItemService.getIdByCode("MessageType", "IQCIncomingInspectionAdd")
|
||||||
: dictionaryItemService.getIdByCode("MessageType", "IQCInventoryInspectionAdd");
|
: dictionaryItemService.getIdByCode("MessageType", "IQCInventoryInspectionAdd");
|
||||||
QmsTodoItem qmsTodoItem = new QmsTodoItem()
|
QmsTodoItem qmsTodoItem = new QmsTodoItem()
|
||||||
.setTitle("新的IQC" + typeName + "检测任务" + task.getTaskNo())
|
.setTitle("新的IQC" + typeName + "检测任务" + newTask.getTaskNo())
|
||||||
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
|
.setCode(basdeSerialNumberControllerService.generateSerialNumber(32))
|
||||||
.setSourceTypeId(sourceTypeId)
|
.setSourceTypeId(sourceTypeId)
|
||||||
.setSourceId(task.getId())
|
.setSourceId(newTask.getId())
|
||||||
.setCreateUserId(inspectorUser.getId())
|
.setCreateUserId(inspectorUser.getId())
|
||||||
.setCreateUserName(inspectorUser.getUserName())
|
.setCreateUserName(inspectorUser.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
|
|
@ -1180,21 +1180,38 @@ public class IncomingInspectionTaskControllerService {
|
||||||
|
|
||||||
updateWrapper.update();
|
updateWrapper.update();
|
||||||
|
|
||||||
if (request.getQualified() && task.getQualifiedQty() > 0) {
|
long testingMethodId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod", "Full");
|
||||||
// 异步回调需等当前事务提交后再触发,否则异步线程可能读到未提交的旧状态,导致回调数据错误或漏回调
|
if (Objects.equals(task.getTestingMethodDictItemId(), testingMethodId)) {
|
||||||
Long taskId = task.getId();
|
//全检
|
||||||
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
@Override
|
@Override
|
||||||
public void afterCommit() {
|
public void afterCommit() {
|
||||||
wmsIncomingInspectionTaskCallbackService.processAsync(taskId, (short) 0);
|
wmsIncomingInspectionTaskCallbackService.processAsync(task.getId(), (short) 0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
wmsIncomingInspectionTaskCallbackService.processAsync(taskId, (short) 0);
|
wmsIncomingInspectionTaskCallbackService.processAsync(task.getId(), (short) 0);
|
||||||
|
}
|
||||||
|
if (task.getUnqualifiedQty() > 0) {
|
||||||
|
issueTicketControllerService.initiate(task.getId());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
issueTicketControllerService.initiate(task.getId());
|
//抽样
|
||||||
|
if (request.getQualified()) {
|
||||||
|
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||||
|
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
|
@Override
|
||||||
|
public void afterCommit() {
|
||||||
|
wmsIncomingInspectionTaskCallbackService.processAsync(task.getId(), (short) 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
wmsIncomingInspectionTaskCallbackService.processAsync(task.getId(), (short) 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
issueTicketControllerService.initiate(task.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,7 @@ import com.nflg.wms.repository.entity.QmsIncomingInspectionTask;
|
||||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord;
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord;
|
||||||
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
import com.nflg.wms.repository.entity.QmsIssueTicket;
|
||||||
import com.nflg.wms.repository.entity.WmsInventory;
|
import com.nflg.wms.repository.entity.WmsInventory;
|
||||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordService;
|
import com.nflg.wms.repository.service.*;
|
||||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService;
|
|
||||||
import com.nflg.wms.repository.service.IQmsIssueTicketService;
|
|
||||||
import com.nflg.wms.repository.service.IWmsInventoryService;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -52,6 +49,9 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
@Resource
|
@Resource
|
||||||
private IWmsInventoryService inventoryService;
|
private IWmsInventoryService inventoryService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IDictionaryItemService dictionaryItemService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向WMS系统发送来料检验任务回调
|
* 向WMS系统发送来料检验任务回调
|
||||||
*/
|
*/
|
||||||
|
|
@ -75,7 +75,6 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
.setProcessingResult(processingResult);
|
.setProcessingResult(processingResult);
|
||||||
|
|
||||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||||
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
|
|
||||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
|
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
|
||||||
.list();
|
.list();
|
||||||
if (processingResult == 4) {
|
if (processingResult == 4) {
|
||||||
|
|
@ -86,11 +85,12 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
.map(r -> new MaterialQrCodeDTO()
|
.map(r -> new MaterialQrCodeDTO()
|
||||||
.setQrCode(r.getMaterialUniqueNo())
|
.setQrCode(r.getMaterialUniqueNo())
|
||||||
.setInspectionQty(r.getInspectionQty())
|
.setInspectionQty(r.getInspectionQty())
|
||||||
.setUnqualifiedQty(r.getUnqualifiedQty())
|
.setUnqualifiedQty(0)
|
||||||
.setQualifiedQty(r.getQualifiedQty()))
|
.setQualifiedQty(r.getQualifiedQty()))
|
||||||
.toList()
|
.toList()
|
||||||
);
|
);
|
||||||
}else if (processingResult == 2){
|
} else if (processingResult == 2) {
|
||||||
|
//退货
|
||||||
qo.setUnqualifiedQty(taskVO.getInspectionQty());
|
qo.setUnqualifiedQty(taskVO.getInspectionQty());
|
||||||
qo.setQualifiedQty(0);
|
qo.setQualifiedQty(0);
|
||||||
qo.setQrCodes(records.stream()
|
qo.setQrCodes(records.stream()
|
||||||
|
|
@ -103,15 +103,29 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
.toList()
|
.toList()
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
qo.setUnqualifiedQty(taskVO.getUnqualifiedQty());
|
long testingMethodId = dictionaryItemService.getIdByCode("InspectionStandardTestingMethod", "Full");
|
||||||
qo.setQrCodes(records.stream()
|
if (Objects.equals(taskVO.getTestingMethodDictItemId(), testingMethodId)) {
|
||||||
.map(r -> new MaterialQrCodeDTO()
|
qo.setUnqualifiedQty(0);
|
||||||
.setQrCode(r.getMaterialUniqueNo())
|
qo.setQrCodes(records.stream()
|
||||||
.setInspectionQty(r.getInspectionQty())
|
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
||||||
.setUnqualifiedQty(r.getUnqualifiedQty())
|
.map(r -> new MaterialQrCodeDTO()
|
||||||
.setQualifiedQty(r.getQualifiedQty()))
|
.setQrCode(r.getMaterialUniqueNo())
|
||||||
.toList()
|
.setInspectionQty(r.getInspectionQty())
|
||||||
);
|
.setUnqualifiedQty(0)
|
||||||
|
.setQualifiedQty(r.getQualifiedQty()))
|
||||||
|
.toList()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
qo.setUnqualifiedQty(taskVO.getUnqualifiedQty());
|
||||||
|
qo.setQrCodes(records.stream()
|
||||||
|
.map(r -> new MaterialQrCodeDTO()
|
||||||
|
.setQrCode(r.getMaterialUniqueNo())
|
||||||
|
.setInspectionQty(r.getInspectionQty())
|
||||||
|
.setUnqualifiedQty(r.getUnqualifiedQty())
|
||||||
|
.setQualifiedQty(r.getQualifiedQty()))
|
||||||
|
.toList()
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注意:本方法不可被 @Transactional 包裹,否则下面"标记失败"的更新会随异常一起回滚,导致失败状态丢失
|
// 注意:本方法不可被 @Transactional 包裹,否则下面"标记失败"的更新会随异常一起回滚,导致失败状态丢失
|
||||||
|
|
@ -179,7 +193,8 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
private void updateCallbackResult(Long taskId, boolean callbackResult) {
|
private void updateCallbackResult(Long taskId, boolean callbackResult) {
|
||||||
incomingInspectionTaskService.lambdaUpdate()
|
incomingInspectionTaskService.lambdaUpdate()
|
||||||
.eq(QmsIncomingInspectionTask::getId, taskId)
|
.eq(QmsIncomingInspectionTask::getId, taskId)
|
||||||
.ne(QmsIncomingInspectionTask::getCallbackResult, true)
|
.and(w -> w.ne(QmsIncomingInspectionTask::getCallbackResult, true)
|
||||||
|
.or().isNull(QmsIncomingInspectionTask::getCallbackResult))
|
||||||
.set(QmsIncomingInspectionTask::getCallbackResult, callbackResult)
|
.set(QmsIncomingInspectionTask::getCallbackResult, callbackResult)
|
||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue