iqc库存检测任务修改
This commit is contained in:
parent
c72ca41728
commit
d176f0e628
|
|
@ -32,8 +32,12 @@ import org.springframework.web.client.RestTemplate;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -164,16 +168,7 @@ public class QmsService {
|
||||||
apply.setStorageLocation(inventory.getBinLocation());
|
apply.setStorageLocation(inventory.getBinLocation());
|
||||||
apply.setStorageDays(request.getStorageDays());
|
apply.setStorageDays(request.getStorageDays());
|
||||||
|
|
||||||
List<String> qrCodes = qrCodeMasterService.lambdaQuery()
|
List<String> qrCodes = getInventoryInspectionQrCodes(apply);
|
||||||
.select(WmsQrCodeMaster::getBarcodeCode)
|
|
||||||
.eq(WmsQrCodeMaster::getMaterialCode, apply.getMaterialNo())
|
|
||||||
.eq(WmsQrCodeMaster::getFactoryCode, apply.getFactory())
|
|
||||||
.eq(WmsQrCodeMaster::getStorageLocation, apply.getWarehouse())
|
|
||||||
.eq(WmsQrCodeMaster::getBinLocation, apply.getStorageLocation())
|
|
||||||
.list()
|
|
||||||
.stream()
|
|
||||||
.map(WmsQrCodeMaster::getBarcodeCode)
|
|
||||||
.toList();
|
|
||||||
apply.setQrCodes(qrCodes);
|
apply.setQrCodes(qrCodes);
|
||||||
log.info("推送库存检测申请到QMS:申请参数={},关联二维码={}",
|
log.info("推送库存检测申请到QMS:申请参数={},关联二维码={}",
|
||||||
JSONUtil.toJsonStr(apply), JSONUtil.toJsonStr(qrCodes));
|
JSONUtil.toJsonStr(apply), JSONUtil.toJsonStr(qrCodes));
|
||||||
|
|
@ -243,4 +238,42 @@ public class QmsService {
|
||||||
return LocalDateTime.now().format(INVENTORY_INSPECTION_REQUEST_NO_FORMATTER) + inventoryId;
|
return LocalDateTime.now().format(INVENTORY_INSPECTION_REQUEST_NO_FORMATTER) + inventoryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> getInventoryInspectionQrCodes(ExternalInventoryInspectionApplyQO apply) {
|
||||||
|
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.lambdaQuery()
|
||||||
|
.select(WmsQrCodeMaster::getId, WmsQrCodeMaster::getBarcodeCode)
|
||||||
|
.eq(WmsQrCodeMaster::getMaterialCode, apply.getMaterialNo())
|
||||||
|
.eq(WmsQrCodeMaster::getFactoryCode, apply.getFactory())
|
||||||
|
.eq(WmsQrCodeMaster::getStorageLocation, apply.getWarehouse())
|
||||||
|
.eq(WmsQrCodeMaster::getBinLocation, apply.getStorageLocation())
|
||||||
|
.list();
|
||||||
|
if (qrCodeMasters.isEmpty()) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> qrCodeIds = qrCodeMasters.stream()
|
||||||
|
.map(WmsQrCodeMaster::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.toList();
|
||||||
|
Map<Long, List<WmsQrCodeMaster>> childrenMap = qrCodeMasterService.lambdaQuery()
|
||||||
|
.select(WmsQrCodeMaster::getParentBarcodeId, WmsQrCodeMaster::getBarcodeCode)
|
||||||
|
.in(WmsQrCodeMaster::getParentBarcodeId, qrCodeIds)
|
||||||
|
.list()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.groupingBy(WmsQrCodeMaster::getParentBarcodeId));
|
||||||
|
|
||||||
|
LinkedHashSet<String> qrCodes = new LinkedHashSet<>();
|
||||||
|
qrCodeMasters.forEach(qrCodeMaster -> {
|
||||||
|
List<WmsQrCodeMaster> children = childrenMap.get(qrCodeMaster.getId());
|
||||||
|
if (Objects.nonNull(children) && !children.isEmpty()) {
|
||||||
|
children.stream()
|
||||||
|
.map(WmsQrCodeMaster::getBarcodeCode)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.forEach(qrCodes::add);
|
||||||
|
} else if (Objects.nonNull(qrCodeMaster.getBarcodeCode())) {
|
||||||
|
qrCodes.add(qrCodeMaster.getBarcodeCode());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return new ArrayList<>(qrCodes);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue