Merge branch 'feature/NoScanning' into qms/develop-0625
This commit is contained in:
commit
34d75903c0
|
|
@ -861,10 +861,12 @@ public class NormalPGIController extends BaseController {
|
||||||
zwm3A17DTOS.add(zwm3A17DTO);
|
zwm3A17DTOS.add(zwm3A17DTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, String> codeBinNoMap = request.getItems().stream()
|
Map<String, String> codeBinNoMap = qo.getItems().stream()
|
||||||
.map(PoReceiveTaskItemConfirmQO::getItems)
|
|
||||||
.flatMap(List::stream)
|
|
||||||
.collect(Collectors.toMap(InCostCenterBackSubmitItemQRQO::getQrCode, InCostCenterBackSubmitItemQRQO::getBinNo));
|
.collect(Collectors.toMap(InCostCenterBackSubmitItemQRQO::getQrCode, InCostCenterBackSubmitItemQRQO::getBinNo));
|
||||||
|
// request.getItems().stream()
|
||||||
|
// .map(PoReceiveTaskItemConfirmQO::getItems)
|
||||||
|
// .flatMap(List::stream)
|
||||||
|
// .collect(Collectors.toMap(InCostCenterBackSubmitItemQRQO::getQrCode, InCostCenterBackSubmitItemQRQO::getBinNo));
|
||||||
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByCodes(codeBinNoMap.keySet());
|
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByCodes(codeBinNoMap.keySet());
|
||||||
List<String> tmpQrCodes = qrCodeMasters.stream()
|
List<String> tmpQrCodes = qrCodeMasters.stream()
|
||||||
.filter(qrCodeMaster -> !Objects.equals(qrCodeMaster.getProcessStage(), BarCodeProcessStage.Received.getState()))
|
.filter(qrCodeMaster -> !Objects.equals(qrCodeMaster.getProcessStage(), BarCodeProcessStage.Received.getState()))
|
||||||
|
|
|
||||||
|
|
@ -133,7 +133,6 @@ public class NormalQMController extends BaseController {
|
||||||
@PostMapping("PDA/task/confirm")
|
@PostMapping("PDA/task/confirm")
|
||||||
@ApiMark(moduleName = "质检物料管理", apiName = "质检任务上架确认")
|
@ApiMark(moduleName = "质检物料管理", apiName = "质检任务上架确认")
|
||||||
public ApiResult<Void> confirm(@Valid @RequestBody List<QCReceiveTaskConfirmQO> request) {
|
public ApiResult<Void> confirm(@Valid @RequestBody List<QCReceiveTaskConfirmQO> request) {
|
||||||
if (CollectionUtil.isEmpty(request))
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("入库参数为空");
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("入库参数为空");
|
||||||
|
|
||||||
//根据详情ID 获取到相应的入库单信息
|
//根据详情ID 获取到相应的入库单信息
|
||||||
|
|
@ -147,7 +146,7 @@ public class NormalQMController extends BaseController {
|
||||||
.apply("check_qty>in_qty")
|
.apply("check_qty>in_qty")
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("不存在待入库的物料(或此物料已入库)");
|
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(wmsQcReceiveItems)).throwMessage("不存在待入库的物料(或此物料已入库)");
|
||||||
|
|
||||||
List<String> qrCodes = CollectionUtil.unionAll(
|
List<String> qrCodes = CollectionUtil.unionAll(
|
||||||
request.stream()
|
request.stream()
|
||||||
|
|
@ -228,14 +227,14 @@ public class NormalQMController extends BaseController {
|
||||||
|
|
||||||
List<QCReceiveDTO> qcReceiveDTOS = new ArrayList<>();
|
List<QCReceiveDTO> qcReceiveDTOS = new ArrayList<>();
|
||||||
for (String poNum : poNums) {
|
for (String poNum : poNums) {
|
||||||
//封装一个数据
|
// //封装一个数据
|
||||||
QCReceiveDTO qcReceiveDTO = new QCReceiveDTO()
|
// QCReceiveDTO qcReceiveDTO = new QCReceiveDTO()
|
||||||
// .setUnqualifiedInventories(new ArrayList<>())
|
//// .setUnqualifiedInventories(new ArrayList<>())
|
||||||
.setQcIdList(new ArrayList<>())
|
// .setQcIdList(new ArrayList<>())
|
||||||
.setReceiveIds(new ArrayList<>())
|
// .setReceiveIds(new ArrayList<>())
|
||||||
.setWaitModifyItems(new ArrayList<>())
|
// .setWaitModifyItems(new ArrayList<>())
|
||||||
.setStorageLocationDTOS(new ArrayList<>())
|
// .setStorageLocationDTOS(new ArrayList<>())
|
||||||
.setQualifiednventories(new ArrayList<>());
|
// .setQualifiednventories(new ArrayList<>());
|
||||||
List<QCReceiveTaskConfirmQO> qcReceiveTaskConfirmQOS = request.stream()
|
List<QCReceiveTaskConfirmQO> qcReceiveTaskConfirmQOS = request.stream()
|
||||||
.filter(q -> q.getPoNum().equals(poNum))
|
.filter(q -> q.getPoNum().equals(poNum))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
@ -248,6 +247,15 @@ public class NormalQMController extends BaseController {
|
||||||
if (Objects.isNull(wmsQcReceiveItem)) {
|
if (Objects.isNull(wmsQcReceiveItem)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//封装一个数据
|
||||||
|
QCReceiveDTO qcReceiveDTO = new QCReceiveDTO()
|
||||||
|
// .setUnqualifiedInventories(new ArrayList<>())
|
||||||
|
.setQcIdList(new ArrayList<>())
|
||||||
|
.setReceiveIds(new ArrayList<>())
|
||||||
|
.setWaitModifyItems(new ArrayList<>())
|
||||||
|
.setStorageLocationDTOS(new ArrayList<>())
|
||||||
|
.setQualifiednventories(new ArrayList<>());
|
||||||
|
qcReceiveDTOS.add(qcReceiveDTO);
|
||||||
if (!qcReceiveDTO.getReceiveIds().stream().anyMatch(id -> id.equals(wmsQcReceiveItem.getReceiveId()))) {
|
if (!qcReceiveDTO.getReceiveIds().stream().anyMatch(id -> id.equals(wmsQcReceiveItem.getReceiveId()))) {
|
||||||
qcReceiveDTO.getReceiveIds().add(wmsQcReceiveItem.getReceiveId());
|
qcReceiveDTO.getReceiveIds().add(wmsQcReceiveItem.getReceiveId());
|
||||||
}
|
}
|
||||||
|
|
@ -362,7 +370,7 @@ public class NormalQMController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
qcReceiveDTOS.add(qcReceiveDTO);
|
// qcReceiveDTOS.add(qcReceiveDTO);
|
||||||
}
|
}
|
||||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||||
normalQMControllerService.confirmReceive(qcReceiveDTOS);
|
normalQMControllerService.confirmReceive(qcReceiveDTOS);
|
||||||
|
|
|
||||||
|
|
@ -389,7 +389,6 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
.setPackagingType((short) 0)
|
.setPackagingType((short) 0)
|
||||||
.setQuantity(BigDecimal.valueOf(it.getNum()))
|
.setQuantity(BigDecimal.valueOf(it.getNum()))
|
||||||
.setUnit(it.getUnit())
|
.setUnit(it.getUnit())
|
||||||
.setSupplierId(it.getSupplierId())
|
|
||||||
.setPoNumber(it.getExternalOrderNo())
|
.setPoNumber(it.getExternalOrderNo())
|
||||||
.setPoLineNumber(it.getRowNo())
|
.setPoLineNumber(it.getRowNo())
|
||||||
.setExtendId(it.getId())
|
.setExtendId(it.getId())
|
||||||
|
|
@ -1205,7 +1204,7 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
List<WmsStructuralPackageOrderTrayItem> items = structuralPackageOrderTrayItemService.getList(request.getId());
|
List<WmsStructuralPackageOrderTrayItem> items = structuralPackageOrderTrayItemService.getList(request.getId());
|
||||||
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
items.forEach(it -> it.setStoreNum(it.getShipmentNum()));
|
||||||
structuralPackageOrderTrayItemService.updateBatchById(items);
|
structuralPackageOrderTrayItemService.updateBatchById(items);
|
||||||
if (structuralPackageDeliverOrderService.updateStateByOrderId(request.getId()) == 2) {
|
structuralPackageDeliverOrderService.updateStateByOrderId(request.getId());
|
||||||
qrCodeMasterService.lambdaUpdate()
|
qrCodeMasterService.lambdaUpdate()
|
||||||
.set(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState())
|
.set(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState())
|
||||||
.set(WmsQrCodeMaster::getLastScanBy, UserUtil.getUserId())
|
.set(WmsQrCodeMaster::getLastScanBy, UserUtil.getUserId())
|
||||||
|
|
@ -1213,7 +1212,6 @@ public class StructuralPackageOrderController extends BaseController {
|
||||||
.set(WmsQrCodeMaster::getLastScanTime, LocalDateTime.now())
|
.set(WmsQrCodeMaster::getLastScanTime, LocalDateTime.now())
|
||||||
.eq(WmsQrCodeMaster::getExtendId, request.getId())
|
.eq(WmsQrCodeMaster::getExtendId, request.getId())
|
||||||
.update();
|
.update();
|
||||||
}
|
|
||||||
WmsStructuralPackageDeliverOrderMap om = structuralPackageDeliverOrderMapService.lambdaQuery()
|
WmsStructuralPackageDeliverOrderMap om = structuralPackageDeliverOrderMapService.lambdaQuery()
|
||||||
.eq(WmsStructuralPackageDeliverOrderMap::getOrderId, request.getId())
|
.eq(WmsStructuralPackageDeliverOrderMap::getOrderId, request.getId())
|
||||||
.one();
|
.one();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.nflg.wms.admin.pojo.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class StorageImportDTO {
|
||||||
|
|
||||||
|
private String factoryNo;
|
||||||
|
|
||||||
|
private String warehouseNo;
|
||||||
|
|
||||||
|
private String binNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存地点ID
|
||||||
|
*/
|
||||||
|
private Long warehouseId;
|
||||||
|
|
||||||
|
private Long binId;
|
||||||
|
|
||||||
|
private String error;
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,7 @@ import com.nflg.wms.admin.pojo.dto.ZWM3A27ItemDTO;
|
||||||
import com.nflg.wms.common.pojo.dto.OptRecordDTO;
|
import com.nflg.wms.common.pojo.dto.OptRecordDTO;
|
||||||
import com.nflg.wms.common.pojo.vo.QCTaskItemScanCodesVO;
|
import com.nflg.wms.common.pojo.vo.QCTaskItemScanCodesVO;
|
||||||
import com.nflg.wms.common.pojo.vo.QCTaskItemVO;
|
import com.nflg.wms.common.pojo.vo.QCTaskItemVO;
|
||||||
|
import com.nflg.wms.common.util.UserUtil;
|
||||||
import com.nflg.wms.repository.entity.WmsQcReceive;
|
import com.nflg.wms.repository.entity.WmsQcReceive;
|
||||||
import com.nflg.wms.repository.entity.WmsQcReceiveItem;
|
import com.nflg.wms.repository.entity.WmsQcReceiveItem;
|
||||||
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
||||||
|
|
@ -120,11 +121,17 @@ public class NormalQMControllerService {
|
||||||
iWmsQcReceiveService.lambdaUpdate()
|
iWmsQcReceiveService.lambdaUpdate()
|
||||||
.eq(WmsQcReceive::getId, receiveId)
|
.eq(WmsQcReceive::getId, receiveId)
|
||||||
.set(WmsQcReceive::getIsCompleted, 2)
|
.set(WmsQcReceive::getIsCompleted, 2)
|
||||||
|
.set(WmsQcReceive::getUpdateTime, LocalDateTime.now())
|
||||||
|
.set(WmsQcReceive::getUpdateUserId, UserUtil.getUserId())
|
||||||
|
.set(WmsQcReceive::getUpdateUserName, UserUtil.getUserName())
|
||||||
.update();
|
.update();
|
||||||
} else {
|
} else {
|
||||||
iWmsQcReceiveService.lambdaUpdate()
|
iWmsQcReceiveService.lambdaUpdate()
|
||||||
.eq(WmsQcReceive::getId, receiveId)
|
.eq(WmsQcReceive::getId, receiveId)
|
||||||
.set(WmsQcReceive::getIsCompleted, 1)
|
.set(WmsQcReceive::getIsCompleted, 1)
|
||||||
|
.set(WmsQcReceive::getUpdateTime, LocalDateTime.now())
|
||||||
|
.set(WmsQcReceive::getUpdateUserId, UserUtil.getUserId())
|
||||||
|
.set(WmsQcReceive::getUpdateUserName, UserUtil.getUserName())
|
||||||
.update();
|
.update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.nflg.wms.admin.pojo.dto.StorageImportDTO;
|
||||||
import com.nflg.wms.common.constant.Constant;
|
import com.nflg.wms.common.constant.Constant;
|
||||||
import com.nflg.wms.common.constant.STATE;
|
import com.nflg.wms.common.constant.STATE;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
|
|
@ -49,9 +50,7 @@ import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -144,18 +143,77 @@ public class StorageControllerService {
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean updateCheckAndImport(List<StorageExcelExportDTO> data) {
|
public boolean updateCheckAndImport(List<StorageExcelExportDTO> data) {
|
||||||
List<WmsStorage> storages = new ArrayList<>();
|
List<WmsStorage> storagesForAdd = new ArrayList<>();
|
||||||
|
Set<String> materialNos = data.stream().map(StorageExcelExportDTO::getMaterialNo).collect(Collectors.toSet());
|
||||||
|
List<MaterialMainDTO> dtos = bomMaterialService.getList(materialNos);
|
||||||
|
Set<String> fwbs = new HashSet<>();
|
||||||
|
data.forEach(dto -> {
|
||||||
|
if (dtos.stream().noneMatch(d -> StrUtil.equals(d.getMaterialNo(), dto.getMaterialNo()))) {
|
||||||
|
dto.setError("物料编号无效;");
|
||||||
|
} else {
|
||||||
|
if (StrUtil.isNotBlank(dto.getBinNo())) {
|
||||||
|
fwbs.add(dto.getFactoryNo() + "$" + dto.getWarehouseNo() + "$" + dto.getBinNo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
List<DictionaryItem> factories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_FACTORY);
|
||||||
|
List<StorageImportDTO> fwbos = new ArrayList<>();
|
||||||
|
fwbs.forEach(fwb -> {
|
||||||
|
List<String> fwbl = StrUtil.split(fwb, "$");
|
||||||
|
if (factories.stream().noneMatch(f -> StrUtil.equals(f.getValue(), fwbl.get(0)))) {
|
||||||
|
fwbos.add(new StorageImportDTO(fwbl.get(0), fwbl.get(1), fwbl.get(2), null, null, "工厂编号无效"));
|
||||||
|
} else {
|
||||||
|
WmsBin bin = wmsBinService.getByCode(fwbl.get(0), fwbl.get(1), fwbl.get(2));
|
||||||
|
if (Objects.isNull(bin)) {
|
||||||
|
fwbos.add(new StorageImportDTO(fwbl.get(0), fwbl.get(1), fwbl.get(2), null, null, "储位编号无效"));
|
||||||
|
} else {
|
||||||
|
fwbos.add(new StorageImportDTO(fwbl.get(0), fwbl.get(1), fwbl.get(2), bin.getWarehouseId(), bin.getId(), null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
List<WmsStorage> storagesForUpdate = storageService.lambdaQuery()
|
||||||
|
.in(WmsStorage::getMaterialNo, materialNos)
|
||||||
|
.list();
|
||||||
for (StorageExcelExportDTO dto : data) {
|
for (StorageExcelExportDTO dto : data) {
|
||||||
WmsStorage storage = new WmsStorage();
|
if (StrUtil.isNotBlank(dto.getError())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
WmsStorage storage = null;
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
if (StrUtil.isBlank(dto.getMaterialNo())) {
|
if (StrUtil.isBlank(dto.getMaterialNo())) {
|
||||||
sb.append("物料编号不能为空;");
|
sb.append("物料编号不能为空;");
|
||||||
|
}
|
||||||
|
String factoryNo = StrUtil.trim(dto.getFactoryNo());
|
||||||
|
if (StrUtil.isBlank(factoryNo)) {
|
||||||
|
sb.append("工厂编号不能为空;");
|
||||||
|
}
|
||||||
|
String warehouseNo = StrUtil.trim(dto.getWarehouseNo());
|
||||||
|
if (StrUtil.isBlank(warehouseNo)) {
|
||||||
|
sb.append("库存地点编号不能为空;");
|
||||||
|
}
|
||||||
|
if (StrUtil.isBlank(dto.getBinNo())) {
|
||||||
|
sb.append("储位编号不能为空;");
|
||||||
} else {
|
} else {
|
||||||
MaterialMainDTO material = bomMaterialService.getMaterialInfo(dto.getMaterialNo());
|
StorageImportDTO fwbo = fwbos.stream()
|
||||||
if (Objects.isNull(material)) {
|
.filter(f -> StrUtil.equals(f.getFactoryNo(), factoryNo)
|
||||||
sb.append("物料编号无效;");
|
&& StrUtil.equals(f.getWarehouseNo(), warehouseNo)
|
||||||
|
&& StrUtil.equals(f.getBinNo(), dto.getBinNo())
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
if (StrUtil.isNotBlank(fwbo.getError())) {
|
||||||
|
sb.append(fwbo.getError()).append(";");
|
||||||
} else {
|
} else {
|
||||||
storage = storageService.lambdaQuery().eq(WmsStorage::getMaterialNo, material.getMaterialNo()).one();
|
MaterialMainDTO material = dtos.stream()
|
||||||
|
.filter(d -> StrUtil.equals(d.getMaterialNo(), dto.getMaterialNo()))
|
||||||
|
.findFirst()
|
||||||
|
.get();
|
||||||
|
storage = storagesForUpdate.stream()
|
||||||
|
.filter(s -> StrUtil.equals(s.getMaterialNo(), dto.getMaterialNo())
|
||||||
|
&& s.getWarehouseId().equals(fwbo.getWarehouseId())
|
||||||
|
)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
if (Objects.isNull(storage)) {
|
if (Objects.isNull(storage)) {
|
||||||
storage = new WmsStorage()
|
storage = new WmsStorage()
|
||||||
.setId(IdUtil.getSnowflakeNextId())
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
|
|
@ -164,56 +222,25 @@ public class StorageControllerService {
|
||||||
.setMaterialDesc(material.getMaterialDesc())
|
.setMaterialDesc(material.getMaterialDesc())
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setCreateBy(UserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateTime(LocalDateTime.now());
|
||||||
|
storagesForAdd.add(storage);
|
||||||
} else {
|
} else {
|
||||||
storage.setUpdateBy(UserUtil.getUserName());
|
storage.setUpdateBy(UserUtil.getUserName());
|
||||||
storage.setUpdateTime(LocalDateTime.now());
|
storage.setUpdateTime(LocalDateTime.now());
|
||||||
}
|
}
|
||||||
}
|
storage.setWarehouseId(fwbo.getWarehouseId());
|
||||||
}
|
storage.setBinId(fwbo.getBinId());
|
||||||
String factoryNo = StrUtil.trim(dto.getFactoryNo());
|
|
||||||
DictionaryItem item = null;
|
|
||||||
if (StrUtil.isBlank(factoryNo)) {
|
|
||||||
sb.append("工厂编号不能为空;");
|
|
||||||
} else {
|
|
||||||
item = dictionaryItemService.getByCode(Constant.DICTIONARY_FACTORY, factoryNo);
|
|
||||||
if (Objects.isNull(item)) {
|
|
||||||
sb.append("工厂编号无效;");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String warehouseNo = StrUtil.trim(dto.getWarehouseNo());
|
|
||||||
WmsWarehouse warehouse = null;
|
|
||||||
if (StrUtil.isBlank(warehouseNo)) {
|
|
||||||
sb.append("库存地点编号不能为空;");
|
|
||||||
} else if (Objects.nonNull(item)) {
|
|
||||||
warehouse = warehouseService.lambdaQuery().eq(WmsWarehouse::getFactoryId, item.getId()).eq(WmsWarehouse::getNo, warehouseNo).one();
|
|
||||||
if (Objects.isNull(warehouse)) {
|
|
||||||
sb.append("库存地点编号无效;");
|
|
||||||
} else {
|
|
||||||
storage.setWarehouseId(warehouse.getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StrUtil.isBlank(dto.getBinNo())) {
|
|
||||||
sb.append("储位编号不能为空;");
|
|
||||||
} else if (Objects.nonNull(warehouse)) {
|
|
||||||
WmsBin bin = wmsBinService.lambdaQuery()
|
|
||||||
.eq(WmsBin::getWarehouseId, warehouse.getId())
|
|
||||||
.eq(WmsBin::getNo, dto.getBinNo())
|
|
||||||
.one();
|
|
||||||
if (Objects.isNull(bin)) {
|
|
||||||
sb.append("储位编号无效;");
|
|
||||||
}else {
|
|
||||||
storage.setBinId(bin.getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
storage.setRemark(dto.getRemark());
|
storage.setRemark(dto.getRemark());
|
||||||
|
}
|
||||||
|
}
|
||||||
dto.setError(sb.toString());
|
dto.setError(sb.toString());
|
||||||
storages.add(storage);
|
|
||||||
}
|
}
|
||||||
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
|
if (data.stream().noneMatch(it -> StrUtil.isNotBlank(it.getError()))) {
|
||||||
storageService.saveOrUpdateBatch(storages);
|
if (CollectionUtil.isNotEmpty(storagesForAdd)) {
|
||||||
// storageBinService.remove(new LambdaQueryWrapper<WmsStorageBin>()
|
storageService.saveBatch(storagesForAdd);
|
||||||
// .in(WmsStorageBin::getStorageId, storages.stream().map(WmsStorage::getId).toList()));
|
}
|
||||||
// storageBinService.saveBatch(storageBinAll);
|
if (CollectionUtil.isNotEmpty(storagesForUpdate)) {
|
||||||
|
storageService.updateBatchById(storagesForUpdate);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.nflg.wms.common.pojo.dto;
|
package com.nflg.wms.common.pojo.dto;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
@ -8,6 +9,8 @@ import lombok.experimental.Accessors;
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class LdapUserDTO {
|
public class LdapUserDTO {
|
||||||
|
|
||||||
|
private Long id = IdUtil.getSnowflakeNextId();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户名
|
* 用户名
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -82,4 +82,14 @@ public class QCReceiptVO {
|
||||||
* 1 无码收货
|
* 1 无码收货
|
||||||
*/
|
*/
|
||||||
private Integer sourceType;
|
private Integer sourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入库时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime inTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 入库人
|
||||||
|
*/
|
||||||
|
private String inUserName;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@ public interface WmsQcReceiveItemMapper extends BaseMapper<WmsQcReceiveItem> {
|
||||||
|
|
||||||
List<QCTaskItemVO> getTaskItem(Long taskId);
|
List<QCTaskItemVO> getTaskItem(Long taskId);
|
||||||
|
|
||||||
void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode, String materialDoc);
|
void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode, String materialDoc,
|
||||||
|
BigDecimal UnqualifiedQty ,BigDecimal QualifiedQty);
|
||||||
|
|
||||||
void updateInQty(Long id, BigDecimal inQty, BigDecimal unqualifiedQty, BigDecimal qualifiedQty);
|
void updateInQty(Long id, BigDecimal inQty, BigDecimal unqualifiedQty, BigDecimal qualifiedQty);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ public interface IWmsQcReceiveItemService extends IService<WmsQcReceiveItem> {
|
||||||
|
|
||||||
List<QCTaskItemVO> getTaskItem(@Valid @NotNull Long taskId);
|
List<QCTaskItemVO> getTaskItem(@Valid @NotNull Long taskId);
|
||||||
|
|
||||||
void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode,String materialDoc);
|
void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode,String materialDoc,BigDecimal UnqualifiedQty ,BigDecimal QualifiedQty);
|
||||||
|
|
||||||
void updateInQty(Long id, BigDecimal inQty,BigDecimal unqualifiedQty,BigDecimal qualifiedQty);
|
void updateInQty(Long id, BigDecimal inQty,BigDecimal unqualifiedQty,BigDecimal qualifiedQty);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,8 @@ public class WmsQcReceiveItemServiceImpl extends ServiceImpl<WmsQcReceiveItemMap
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode, String materialDoc) {
|
public void updateCheckNum(BigDecimal InspectionQty, String noteNum, String lineNumber, String itemCode, String materialDoc,BigDecimal UnqualifiedQty ,BigDecimal QualifiedQty) {
|
||||||
baseMapper.updateCheckNum(InspectionQty, noteNum, lineNumber, itemCode, materialDoc);
|
baseMapper.updateCheckNum(InspectionQty, noteNum, lineNumber, itemCode, materialDoc,UnqualifiedQty,QualifiedQty);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,9 @@
|
||||||
|
|
||||||
<update id="updateCheckNum">
|
<update id="updateCheckNum">
|
||||||
update wms_qc_receive_item
|
update wms_qc_receive_item
|
||||||
set check_qty=check_qty + #{InspectionQty}
|
set check_qty=check_qty + #{InspectionQty},
|
||||||
|
unqualified_qty= #{ UnqualifiedQty },
|
||||||
|
qualified_qty= #{ QualifiedQty }
|
||||||
where note_num = #{ noteNum}
|
where note_num = #{ noteNum}
|
||||||
and line_number = #{ lineNumber}
|
and line_number = #{ lineNumber}
|
||||||
and material_doc = #{materialDoc}
|
and material_doc = #{materialDoc}
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,12 @@
|
||||||
wh.id AS "warehouseId",
|
wh.id AS "warehouseId",
|
||||||
wh.no AS "warehouseNo",
|
wh.no AS "warehouseNo",
|
||||||
s.bin_id,
|
s.bin_id,
|
||||||
bin.no as "binNo"
|
bin.no as "binNo",
|
||||||
|
di.value as "factoryNo"
|
||||||
FROM wms_storage s
|
FROM wms_storage s
|
||||||
INNER JOIN wms_bin bin ON s.bin_id = bin.id
|
INNER JOIN wms_bin bin ON s.bin_id = bin.id
|
||||||
LEFT JOIN wms_warehouse wh ON s.warehouse_id = wh.id
|
LEFT JOIN wms_warehouse wh ON s.warehouse_id = wh.id
|
||||||
|
LEFT JOIN dictionary_item di ON wh.factory_id = di."id"
|
||||||
<where>
|
<where>
|
||||||
<if test="request.warehouseNo!=null and request.warehouseNo!=''">
|
<if test="request.warehouseNo!=null and request.warehouseNo!=''">
|
||||||
and wh.no ilike concat('%', #{request.warehouseNo}, '%')
|
and wh.no ilike concat('%', #{request.warehouseNo}, '%')
|
||||||
|
|
@ -56,10 +58,12 @@
|
||||||
wh.id AS "warehouseId",
|
wh.id AS "warehouseId",
|
||||||
wh.no AS "warehouseNo",
|
wh.no AS "warehouseNo",
|
||||||
s.bin_id,
|
s.bin_id,
|
||||||
bin.no as "binNo"
|
bin.no as "binNo",
|
||||||
|
di.value as "factoryNo"
|
||||||
FROM wms_storage s
|
FROM wms_storage s
|
||||||
INNER JOIN wms_bin bin ON s.bin_id = bin.id
|
INNER JOIN wms_bin bin ON s.bin_id = bin.id
|
||||||
LEFT JOIN wms_warehouse wh ON s.warehouse_id = wh.id
|
LEFT JOIN wms_warehouse wh ON s.warehouse_id = wh.id
|
||||||
|
LEFT JOIN dictionary_item di ON wh.factory_id = di."id"
|
||||||
<where>
|
<where>
|
||||||
<if test="request.warehouseNo!=null and request.warehouseNo!=''">
|
<if test="request.warehouseNo!=null and request.warehouseNo!=''">
|
||||||
and wh.no like concat('%', #{request.warehouseNo}, '%')
|
and wh.no like concat('%', #{request.warehouseNo}, '%')
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,8 @@ public class SRMController extends BaseController {
|
||||||
.eq(WmsQcReceiveItem::getMaterialDoc, data.getReceiveNum())
|
.eq(WmsQcReceiveItem::getMaterialDoc, data.getReceiveNum())
|
||||||
.eq(WmsQcReceiveItem::getLineNumber, data.getLineNumber())
|
.eq(WmsQcReceiveItem::getLineNumber, data.getLineNumber())
|
||||||
.eq(WmsQcReceiveItem::getNoteNum, data.getNoteNum())
|
.eq(WmsQcReceiveItem::getNoteNum, data.getNoteNum())
|
||||||
|
.eq(WmsQcReceiveItem::getPoLineNumber, data.poLineNumber)
|
||||||
|
.eq(WmsQcReceiveItem::getPoNum, data.getPoNum())
|
||||||
.one();
|
.one();
|
||||||
if (Objects.isNull(receiveItem)) {
|
if (Objects.isNull(receiveItem)) {
|
||||||
log.error("未找到对应收货明细, 质检单号: {}, 物料: {}, 收货单: {}, 行号: {}",
|
log.error("未找到对应收货明细, 质检单号: {}, 物料: {}, 收货单: {}, 行号: {}",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package repository;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.pojo.document.SrmMaterialReceiptScanCodes;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.data.mongodb.repository.Query;
|
||||||
|
import org.springframework.data.mongodb.repository.Update;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface SrmMaterialReceiptScanCodesRepository
|
||||||
|
extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
|
||||||
|
List<SrmMaterialReceiptScanCodes> findByOrderItemId(Long orderItemId);
|
||||||
|
List<SrmMaterialReceiptScanCodes> findByReceiveItemId(Long receiveItemId);
|
||||||
|
|
||||||
|
List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0);
|
||||||
|
|
||||||
|
@Query("{ 'codeId' : { $in : ?0 } }")
|
||||||
|
@Update("{ $set : { 'isIntoStorage' : ?1 } }")
|
||||||
|
void updateIsIntoStorage(List<String> codeIds, boolean isIntoStorage);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue