Compare commits

..

No commits in common. "4c1d36e6ba2bf70bcbe23c36e842dcaa1bb9f918" and "a363a5b610972cb5da10a7bcc08cd11c746f73fb" have entirely different histories.

16 changed files with 69 additions and 177 deletions

View File

@ -196,18 +196,17 @@ public class NormalPGIController extends BaseController {
//数量验证(判断收货数量是否大于了未收数量) //数量验证(判断收货数量是否大于了未收数量)
VUtil.trueThrowBusinessError(item.getReceiptNum().compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("物料收货数量[" + item.getReceiptNum() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum()); VUtil.trueThrowBusinessError(item.getReceiptNum().compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("物料收货数量[" + item.getReceiptNum() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
Long orderItemId = IdUtil.getSnowflakeNextId();
//序列号和批次号验证 //序列号和批次号验证
List<SrmMaterialReceiptScanCodes> codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder, orderItemId); List<SrmMaterialReceiptScanCodes> codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder);
if (CollectionUtil.isNotEmpty(codes)) { if (CollectionUtil.isNotEmpty(codes)) {
srmMaterialReceiptScanCodes.addAll(codes); srmMaterialReceiptScanCodes.addAll(codes);
} }
boolean isQuality = materialInfoInOrder.getKzkri().equals("X"); boolean isQuality = materialInfoInOrder.getKzkri().equals("X");
// 如果是质检单 // 如果是质检单
if (isQuality) { if (isQuality) {
setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), orderItemId); setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId());
} else { } else {
setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, orderItemId); setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
} }
} }
// 盘点条码是否重复 // 盘点条码是否重复
@ -334,7 +333,7 @@ public class NormalPGIController extends BaseController {
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1(); List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2(); List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByReceiveItemId(item.getId()); List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId());
if (CollectionUtil.isNotEmpty(scanCode)) { if (CollectionUtil.isNotEmpty(scanCode)) {
scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false) scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false)
.toList(); .toList();
@ -439,12 +438,11 @@ public class NormalPGIController extends BaseController {
private void setPoReceive(SrmMaterialReceiptQO item, private void setPoReceive(SrmMaterialReceiptQO item,
List<WmsPoReceiptItem> wmsPoReceiptItems, List<WmsPoReceiptItem> wmsPoReceiptItems,
Long receiveId, Long receiveId,
SAPSyncParamsDTO materialInfoInOrder, SAPSyncParamsDTO materialInfoInOrder
Long receiveItemId
) { ) {
WmsPoReceiptItem receiptItem = new WmsPoReceiptItem() WmsPoReceiptItem receiptItem = new WmsPoReceiptItem()
.setId(receiveItemId) .setId(IdUtil.getSnowflakeNextId())
.setLineNumber(item.getLineNumber()) .setLineNumber(item.getLineNumber())
.setItemCode(item.getItemCode()) .setItemCode(item.getItemCode())
.setUomCode(materialInfoInOrder.getMeins()) .setUomCode(materialInfoInOrder.getMeins())
@ -572,8 +570,7 @@ public class NormalPGIController extends BaseController {
List<SrmMaterialReceiptScanCodes> codes, List<SrmMaterialReceiptScanCodes> codes,
SAPSyncParamsDTO materialInfoInOrder, SAPSyncParamsDTO materialInfoInOrder,
List<WmsQcReceiveItem> wmsQcReceiveItems, List<WmsQcReceiveItem> wmsQcReceiveItems,
Long receiveId, Long receiveId
Long receiveItemId
) { ) {
ZWM3A17DTO zwm3A17DTO = null; ZWM3A17DTO zwm3A17DTO = null;
QCMaterialSyncDTO qcDto = null; QCMaterialSyncDTO qcDto = null;
@ -622,7 +619,7 @@ public class NormalPGIController extends BaseController {
setSrmData(srmPushDto, codes, item, materialInfoInOrder); setSrmData(srmPushDto, codes, item, materialInfoInOrder);
WmsQcReceiveItem qmsReceiptItem = new WmsQcReceiveItem() WmsQcReceiveItem qmsReceiptItem = new WmsQcReceiveItem()
.setId(receiveItemId) .setId(IdUtil.getSnowflakeNextId())
.setLineNumber(item.getLineNumber()) .setLineNumber(item.getLineNumber())
.setItemCode(item.getItemCode()) .setItemCode(item.getItemCode())
.setUomCode(materialInfoInOrder.getMeins()) .setUomCode(materialInfoInOrder.getMeins())
@ -660,20 +657,10 @@ public class NormalPGIController extends BaseController {
@ApiMark(moduleName = "送货单管理", apiName = "一键收货查询") @ApiMark(moduleName = "送货单管理", apiName = "一键收货查询")
public ApiResult<List<BarcodeLessReceivingVO>> getDeliveryByNoScan(@Valid @RequestBody BarcodeLessReceivingSearchQO request) { public ApiResult<List<BarcodeLessReceivingVO>> getDeliveryByNoScan(@Valid @RequestBody BarcodeLessReceivingSearchQO request) {
List<BarcodeLessReceivingVO> list = new ArrayList<>(); List<BarcodeLessReceivingVO> list = new ArrayList<>();
List<WmsSrmOrder> orders = null; List<WmsSrmOrder> orders = wmsSrmOrderService.lambdaQuery()
if (Objects.nonNull(request.getId()) && request.getId() > 0) { .in(WmsSrmOrder::getId, request.getId())
orders = wmsSrmOrderService.lambdaQuery()
.eq(WmsSrmOrder::getId, request.getId())
.eq(WmsSrmOrder::getIsCompleted, false) .eq(WmsSrmOrder::getIsCompleted, false)
.list(); .list();
} else {
orders = wmsSrmOrderService.lambdaQuery()
.eq(WmsSrmOrder::getNoteNum, request.getOrderNo())
.eq(WmsSrmOrder::getIsCompleted, false)
.list();
request.setId(CollectionUtil.isNotEmpty(orders) ? orders.get(0).getId() : 0L);
}
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("不存在未完成收货的物料!"); VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("不存在未完成收货的物料!");
// 查找订单信息 // 查找订单信息
List<WmsSrmOrderItem> items = wmsSrmOrderItemService.lambdaQuery() List<WmsSrmOrderItem> items = wmsSrmOrderItemService.lambdaQuery()
@ -705,12 +692,10 @@ public class NormalPGIController extends BaseController {
order.getSupplierNum(), order.getSupplierNum(),
item.getItemCode(), item.getPoLineNumber()); item.getItemCode(), item.getPoLineNumber());
VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("当前物料信息【" + item.getItemCode() + "】,订单号【" + item.getPoNum() + "】,供应商【" + order.getSupplierName() + "】在SAP中搜索不到有效信息"); VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("当前物料信息【" + item.getItemCode() + "】,订单号【" + item.getPoNum() + "】,供应商【" + order.getSupplierName() + "】在SAP中搜索不到有效信息");
String batchNumber = (materialInfoInOrder.getLbprt().equals("2")
|| materialInfoInOrder.getLbprt().equals("4")) ? NoUtil.getBatchNo(order.getSupplierNum()) : "";
qo.setItemName(materialInfoInOrder.getMaktx()); qo.setItemName(materialInfoInOrder.getMaktx());
qo.setUomCode(materialInfoInOrder.getMeins()); qo.setUomCode(materialInfoInOrder.getMeins());
qo.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo()); qo.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo());
qo.setBatchNumber(batchNumber); qo.setBatchNumber(NoUtil.getBatchNo(order.getSupplierNum()));
qo.setBinNos(materialInfoInOrder.getBinNos()); qo.setBinNos(materialInfoInOrder.getBinNos());
qo.setTransportNum(materialInfoInOrder.getTransportNum()); qo.setTransportNum(materialInfoInOrder.getTransportNum());
qo.setLbprt(materialInfoInOrder.getLbprt()); qo.setLbprt(materialInfoInOrder.getLbprt());
@ -722,9 +707,7 @@ public class NormalPGIController extends BaseController {
private List<SrmMaterialReceiptNoScanCodes> validateNoScanCodes(BarcodeLessReceivingVO item, private List<SrmMaterialReceiptNoScanCodes> validateNoScanCodes(BarcodeLessReceivingVO item,
SAPSyncParamsDTO materialInfoInOrder, SAPSyncParamsDTO materialInfoInOrder,
List<SrmMaterialReceiptScanCodes> scanCodeQOS List<SrmMaterialReceiptScanCodes> scanCodeQOS) {
, Long receiveItemId
) {
String lbprt = materialInfoInOrder.getLbprt(); String lbprt = materialInfoInOrder.getLbprt();
//判断序列号批次号是否规范 //判断序列号批次号是否规范
// 1 - 批次号为空序列号为空 // 1 - 批次号为空序列号为空
@ -745,22 +728,19 @@ public class NormalPGIController extends BaseController {
} }
List<SrmMaterialReceiptNoScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>(); List<SrmMaterialReceiptNoScanCodes> srmMaterialReceiptScanCodes = new ArrayList<>();
List<String> codeIds = new ArrayList<>(); List<String> codeIds = new ArrayList<>();
String batchCode = Objects.isNull(item.getBatchNumber()) ? "" : item.getBatchNumber();
if (StrUtil.isBlank(item.getSerialNumbers())) { if (StrUtil.isBlank(item.getSerialNumbers())) {
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber() String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber()
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&" + item.getUnRecieveQty() + "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&" + item.getUnRecieveQty()
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
+ "&" + item.getSerialNumbers() + "&" + LocalDateTime.now(); + "&" + item.getSerialNumbers() + "&" + LocalDateTime.now();
String codeId = DigestUtil.md5Hex(codeContent); String codeId = DigestUtil.md5Hex(codeContent);
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes() srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
.setCodeId(codeId) .setCodeId(codeId)
.setOrderNo(item.getNoteNum()) .setOrderNo(item.getNoteNum())
.setOrderItemId(item.getId()) .setOrderItemId(item.getId())
.setBatchNumber(batchCode)
.setCodeNum(item.getUnRecieveQty()) .setCodeNum(item.getUnRecieveQty())
.setSerialNumbers(item.getSerialNumbers()) .setSerialNumbers(item.getSerialNumbers())
.setCodeContent(codeContent) .setCodeContent(codeContent)
.setReceiveItemId(receiveItemId)
.setIsIntoStorage(false)); .setIsIntoStorage(false));
scanCodeQOS.add(new SrmMaterialReceiptScanCodes() scanCodeQOS.add(new SrmMaterialReceiptScanCodes()
@ -768,8 +748,6 @@ public class NormalPGIController extends BaseController {
.setOrderNo(item.getNoteNum()) .setOrderNo(item.getNoteNum())
.setOrderItemId(item.getId()) .setOrderItemId(item.getId())
.setIsIntoStorage(false) .setIsIntoStorage(false)
.setBatchNumber(batchCode)
.setReceiveItemId(receiveItemId)
.setCodeNum(item.getUnRecieveQty()) .setCodeNum(item.getUnRecieveQty())
.setBatchNumber(item.getBatchNumber()) .setBatchNumber(item.getBatchNumber())
.setSerialNumbers(item.getSerialNumbers()) .setSerialNumbers(item.getSerialNumbers())
@ -784,29 +762,24 @@ public class NormalPGIController extends BaseController {
String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber()
+ "&" + item.getLineNumber() + "&" + item.getLineNumber()
+ "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&1" + "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&1"
+ "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber()
+ "&" + serialNumbers[i] + "&" + LocalDateTime.now(); + "&" + serialNumbers[i] + "&" + LocalDateTime.now();
String codeId = DigestUtil.md5Hex(codeContent); String codeId = DigestUtil.md5Hex(codeContent);
srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes() srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes()
.setCodeId(codeId) .setCodeId(codeId)
.setOrderNo(item.getNoteNum()) .setOrderNo(item.getNoteNum())
.setOrderItemId(item.getId()) .setOrderItemId(item.getId())
.setBatchNumber(batchCode)
.setCodeNum(new BigDecimal(1)) .setCodeNum(new BigDecimal(1))
.setSerialNumbers(serialNumbers[i]) .setSerialNumbers(serialNumbers[i])
.setCodeContent(codeContent) .setCodeContent(codeContent)
.setReceiveItemId(receiveItemId)
.setIsIntoStorage(false)); .setIsIntoStorage(false));
scanCodeQOS.add(new SrmMaterialReceiptScanCodes() scanCodeQOS.add(new SrmMaterialReceiptScanCodes()
.setCodeId(codeId) .setCodeId(codeId)
.setOrderNo(item.getNoteNum()) .setOrderNo(item.getNoteNum())
.setOrderItemId(item.getId()) .setOrderItemId(item.getId())
.setBatchNumber(batchCode)
.setIsIntoStorage(false) .setIsIntoStorage(false)
.setCodeNum(new BigDecimal(1)) .setCodeNum(new BigDecimal(1))
.setBatchNumber(item.getBatchNumber()) .setBatchNumber(item.getBatchNumber())
.setReceiveItemId(receiveItemId)
.setSerialNumbers(serialNumbers[i]) .setSerialNumbers(serialNumbers[i])
.setCodeContent(codeContent) .setCodeContent(codeContent)
); );
@ -878,9 +851,8 @@ public class NormalPGIController extends BaseController {
VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0) VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0)
.throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum()); .throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum());
//序列号和批次号验证以及条码信息的组装 //序列号和批次号验证以及条码信息的组装
Long receiveItemId = IdUtil.getSnowflakeNextId();
List<SrmMaterialReceiptScanCodes> scanCodeQOS = new ArrayList<>(); List<SrmMaterialReceiptScanCodes> scanCodeQOS = new ArrayList<>();
List<SrmMaterialReceiptNoScanCodes> itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS, receiveItemId); List<SrmMaterialReceiptNoScanCodes> itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS);
if (CollectionUtil.isNotEmpty(itemCodes)) { if (CollectionUtil.isNotEmpty(itemCodes)) {
codes.addAll(itemCodes); codes.addAll(itemCodes);
} }
@ -904,16 +876,18 @@ public class NormalPGIController extends BaseController {
.setReceiptNum(item.getUnRecieveQty()); .setReceiptNum(item.getUnRecieveQty());
// 如果是质检单 // 如果是质检单
if (isQuality) { if (isQuality) {
setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), receiveItemId); setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId());
} else { } else {
WmsPoReceipt wmsPoReceipt = wmsPoReceipts.stream().filter(it -> it.getOrderNo().equals(item.getNoteNum())) WmsPoReceipt wmsPoReceipt = wmsPoReceipts.stream().filter(it -> it.getOrderNo().equals(item.getNoteNum()))
.findFirst().orElse(null); .findFirst().orElse(null);
if (Objects.isNull(wmsPoReceipt)) { if (Objects.isNull(wmsPoReceipt)) {
continue; continue;
} }
setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, receiveItemId);
setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder);
} }
} }
// 盘点条码是否重复 // 盘点条码是否重复
Map<String, Long> duplicateCodes = codes.stream() Map<String, Long> duplicateCodes = codes.stream()
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(
@ -987,7 +961,7 @@ public class NormalPGIController extends BaseController {
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1(); List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2(); List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
List<SrmMaterialReceiptNoScanCodes> scanCode = srmMaterialReceiptNoScanCodesRepository.findByReceiveItemId(item.getId()); List<SrmMaterialReceiptNoScanCodes> scanCode = srmMaterialReceiptNoScanCodesRepository.findByOrderItemId(item.getOrderItemId());
if (CollectionUtil.isNotEmpty(scanCode)) { if (CollectionUtil.isNotEmpty(scanCode)) {
scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false) scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false)
.toList(); .toList();
@ -998,7 +972,7 @@ public class NormalPGIController extends BaseController {
// 库存 // 库存
InventoryDTO inventoryDTO = inventories.stream() InventoryDTO inventoryDTO = inventories.stream()
.filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode()) .filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode())
&& inventoriesDTO.getBatchNumber().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) && inventoriesDTO.getBatchNumber().equals(code.getBatchNumber())
&& inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode()) && inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode())
&& inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse()) && inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse())
).findFirst().orElse(null); ).findFirst().orElse(null);
@ -1008,7 +982,7 @@ public class NormalPGIController extends BaseController {
.setMaterialNo(item.getItemCode()) .setMaterialNo(item.getItemCode())
.setFactoryNo(wmsPoReceipt.getFactoryCode()) .setFactoryNo(wmsPoReceipt.getFactoryCode())
.setWarehouseNo(item.getReceivedWarehouse()) .setWarehouseNo(item.getReceivedWarehouse())
.setBatchNumber(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) .setBatchNumber(code.getBatchNumber())
.setNum(code.getCodeNum()); .setNum(code.getCodeNum());
inventories.add(inventoryDTO); inventories.add(inventoryDTO);
} else { } else {
@ -1019,7 +993,7 @@ public class NormalPGIController extends BaseController {
dto1.getEBELP().equals(item.getPoLineNumber()) dto1.getEBELP().equals(item.getPoLineNumber())
&& dto1.getMATNR().equals(item.getItemCode()) && dto1.getMATNR().equals(item.getItemCode())
&& dto1.getMeins().equals(item.getUomCode()) && dto1.getMeins().equals(item.getUomCode())
&& dto1.getCHARG().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) && dto1.getCHARG().equals(code.getBatchNumber())
&& dto1.getWERKS().equals(wmsPoReceipt.getFactoryCode()) && dto1.getWERKS().equals(wmsPoReceipt.getFactoryCode())
&& dto1.getLGORT().equals(item.getReceivedWarehouse()) && dto1.getLGORT().equals(item.getReceivedWarehouse())
).findFirst().orElse(null); ).findFirst().orElse(null);
@ -1029,7 +1003,7 @@ public class NormalPGIController extends BaseController {
.setMATNR(item.getItemCode()) .setMATNR(item.getItemCode())
.setERFMG(code.getCodeNum()) .setERFMG(code.getCodeNum())
.setMEINS(item.getUomCode()) .setMEINS(item.getUomCode())
.setCHARG(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) .setCHARG(code.getBatchNumber())
.setWERKS(wmsPoReceipt.getFactoryCode()) .setWERKS(wmsPoReceipt.getFactoryCode())
.setLGORT(item.getReceivedWarehouse()) .setLGORT(item.getReceivedWarehouse())
.setKZKRI("") .setKZKRI("")

View File

@ -66,7 +66,7 @@ public class POReceiptController {
@GetMapping("getScanCodes") @GetMapping("getScanCodes")
@ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息") @ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息")
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) { public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId); List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas); return ApiResult.success(pdas);
} }

View File

@ -70,7 +70,7 @@ public class QCReceiptController {
@GetMapping("getScanCodes") @GetMapping("getScanCodes")
@ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息") @ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息")
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) { public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId); List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas); return ApiResult.success(pdas);
} }

View File

@ -1,7 +1,5 @@
package com.nflg.wms.admin.controller; package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.admin.service.UserControllerService; import com.nflg.wms.admin.service.UserControllerService;
import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.PageData;
@ -9,14 +7,12 @@ import com.nflg.wms.common.pojo.qo.*;
import com.nflg.wms.common.pojo.vo.RoleSimpleVO; import com.nflg.wms.common.pojo.vo.RoleSimpleVO;
import com.nflg.wms.common.pojo.vo.UserSupplierItemVO; import com.nflg.wms.common.pojo.vo.UserSupplierItemVO;
import com.nflg.wms.common.pojo.vo.UserSupplierVO; import com.nflg.wms.common.pojo.vo.UserSupplierVO;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.DictionaryItem; import com.nflg.wms.repository.entity.DictionaryItem;
import com.nflg.wms.starter.BaseController; import com.nflg.wms.starter.BaseController;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import org.postgresql.core.Utils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -159,16 +155,4 @@ public class SupplierController extends BaseController {
public void exportSelect(HttpServletResponse response, @RequestBody(required = false) List<Long> ids) throws Exception { public void exportSelect(HttpServletResponse response, @RequestBody(required = false) List<Long> ids) throws Exception {
userControllerService.exportSupplier(response, ids); userControllerService.exportSupplier(response, ids);
} }
/**
* 导出供应商
* @param request 搜索参数
*/
@PostMapping("exportall")
public void exportALL(HttpServletResponse response, @Valid @RequestBody UserSupplierSearchQO request) throws Exception {
request.setPageSize(Integer.MAX_VALUE);
IPage<UserSupplierVO> data = userControllerService.searchSupplier(request);
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data.getRecords())).throwMessage("数据不存在");
userControllerService.exportSupplierByFilter(response, data.getRecords());
}
} }

View File

@ -17,12 +17,12 @@ public class SrmMaterialReceiptNoScanCodes {
private String id; private String id;
/** /**
* 货单的单号 * 货单的单号
*/ */
private String orderNo; private String orderNo;
/*** /***
* 货单的单行ID号 * 货单的单行ID号
* *
*/ */
private Long orderItemId; private Long orderItemId;
@ -62,9 +62,4 @@ public class SrmMaterialReceiptNoScanCodes {
* 是否已上架 * 是否已上架
*/ */
private Boolean IsIntoStorage; private Boolean IsIntoStorage;
/**
* 收货单的单行ID号
*/
private Long receiveItemId;
} }

View File

@ -63,8 +63,4 @@ public class SrmMaterialReceiptScanCodes {
*/ */
private Boolean IsIntoStorage; private Boolean IsIntoStorage;
/**
* 收货单的单行ID号
*/
private Long receiveItemId;
} }

View File

@ -12,7 +12,7 @@ import java.util.List;
public interface SrmMaterialReceiptNoScanCodesRepository public interface SrmMaterialReceiptNoScanCodesRepository
extends MongoRepository<SrmMaterialReceiptNoScanCodes, String> { extends MongoRepository<SrmMaterialReceiptNoScanCodes, String> {
List<SrmMaterialReceiptNoScanCodes> findByOrderItemId(Long orderItemId); List<SrmMaterialReceiptNoScanCodes> findByOrderItemId(Long orderItemId);
List<SrmMaterialReceiptNoScanCodes> findByReceiveItemId(Long receiveItemId);
List<SrmMaterialReceiptNoScanCodes> findByCodeIdIn(List<String> attr0); List<SrmMaterialReceiptNoScanCodes> findByCodeIdIn(List<String> attr0);
@Query("{ 'codeId' : { $in : ?0 } }") @Query("{ 'codeId' : { $in : ?0 } }")

View File

@ -12,7 +12,6 @@ import java.util.List;
public interface SrmMaterialReceiptScanCodesRepository public interface SrmMaterialReceiptScanCodesRepository
extends MongoRepository<SrmMaterialReceiptScanCodes, String> { extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
List<SrmMaterialReceiptScanCodes> findByOrderItemId(Long orderItemId); List<SrmMaterialReceiptScanCodes> findByOrderItemId(Long orderItemId);
List<SrmMaterialReceiptScanCodes> findByReceiveItemId(Long receiveItemId);
List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0); List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0);

View File

@ -167,8 +167,7 @@ public class NormalPGIControllerService {
} }
public List<SrmMaterialReceiptScanCodes> validateScanCodes(SrmMaterialReceiptQO item public List<SrmMaterialReceiptScanCodes> validateScanCodes(SrmMaterialReceiptQO item, SAPSyncParamsDTO materialInfoInOrder) {
, SAPSyncParamsDTO materialInfoInOrder, Long receiveItemId) {
String lbprt = materialInfoInOrder.getLbprt(); String lbprt = materialInfoInOrder.getLbprt();
//判断序列号批次号是否规范 //判断序列号批次号是否规范
// 1 - 批次号为空序列号为空 // 1 - 批次号为空序列号为空
@ -200,7 +199,6 @@ public class NormalPGIControllerService {
.setCodeId(scanCode.getCodeId()) .setCodeId(scanCode.getCodeId())
.setCodeNum(scanCode.getCodeNum()) .setCodeNum(scanCode.getCodeNum())
.setBatchNumber(scanCode.getBatchNumber()) .setBatchNumber(scanCode.getBatchNumber())
.setReceiveItemId(receiveItemId)
.setSerialNumbers(scanCode.getSerialNumbers()) .setSerialNumbers(scanCode.getSerialNumbers())
.setIsIntoStorage(false) .setIsIntoStorage(false)
.setCodeContent(scanCode.getCodeContent())); .setCodeContent(scanCode.getCodeContent()));
@ -327,15 +325,15 @@ public class NormalPGIControllerService {
.update(); .update();
} }
} }
// //修改二维码的入库状态 //修改二维码的入库状态
// if (CollectionUtil.isNotEmpty(scanCodes)) { if (CollectionUtil.isNotEmpty(scanCodes)) {
// List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList(); List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList();
// srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true); srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true);
// } }
} }
@Transactional
public void takeNoScanDelivery(List<WmsPoReceipt> wmsPoReceipts, List<WmsQcReceive> wmsQcReceives public void takeNoScanDelivery(List<WmsPoReceipt> wmsPoReceipts, List<WmsQcReceive> wmsQcReceives
, List<WmsPoReceiptItem> wmsPoReceiptItems , List<WmsPoReceiptItem> wmsPoReceiptItems
, List<WmsQcReceiveItem> wmsQcReceiveItems, List<SrmMaterialReceiptNoScanCodes> codes , List<WmsQcReceiveItem> wmsQcReceiveItems, List<SrmMaterialReceiptNoScanCodes> codes
@ -357,6 +355,7 @@ public class NormalPGIControllerService {
for (WmsPoReceiptItem wmsPoReceiptItem : items) { for (WmsPoReceiptItem wmsPoReceiptItem : items) {
wmsSrmOrderItemService.addReceiveQty(wmsPoReceiptItem.getOrderItemId(), wmsPoReceiptItem.getReceiptNum()); wmsSrmOrderItemService.addReceiveQty(wmsPoReceiptItem.getOrderItemId(), wmsPoReceiptItem.getReceiptNum());
} }
} }
} }
} }
@ -379,6 +378,7 @@ public class NormalPGIControllerService {
} }
for (Long orderId : orderIds) { for (Long orderId : orderIds) {
//更新收货单的完结状态 //更新收货单的完结状态
List<WmsSrmOrder> orders = wmsSrmOrderService.getUnCompletedItem(orderId); List<WmsSrmOrder> orders = wmsSrmOrderService.getUnCompletedItem(orderId);
@ -415,7 +415,7 @@ public class NormalPGIControllerService {
} }
} }
@Transactional
public void takeDeliveryConfirmUnScan(List<WmsPoReceiptItem> receiptItems, List<StorageLocationDTO> storageLocationDTOS, public void takeDeliveryConfirmUnScan(List<WmsPoReceiptItem> receiptItems, List<StorageLocationDTO> storageLocationDTOS,
List<InventoryDTO> inventories, List<ZWM3A17DTO> zwm3A17DTOS, Long id, List<InventoryDTO> inventories, List<ZWM3A17DTO> zwm3A17DTOS, Long id,
List<SrmMaterialReceiptNoScanCodes> scanCodes) { List<SrmMaterialReceiptNoScanCodes> scanCodes) {
@ -460,10 +460,10 @@ public class NormalPGIControllerService {
} }
} }
//修改二维码的入库状态 //修改二维码的入库状态
// if (CollectionUtil.isNotEmpty(scanCodes)) { if (CollectionUtil.isNotEmpty(scanCodes)) {
// List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList(); List<String> codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList();
// srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true); srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true);
// } }
} }
/** /**

View File

@ -542,16 +542,19 @@ public class UserControllerService {
List<DictionaryItem> suppliersCategory = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SUPPLIERS_CATEGORY); List<DictionaryItem> suppliersCategory = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SUPPLIERS_CATEGORY);
List<UserSupplier> userSuppliers = new ArrayList<>(); List<UserSupplier> userSuppliers = new ArrayList<>();
for (SupplierExcelDTO dto : data) { for (SupplierExcelDTO dto : data) {
Long typeId = 0L; UserSupplier userSupplier = new UserSupplier();
UserSupplier userSupplier = null;// new UserSupplier();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (Objects.isNull(dto.getSupplierCode())) { if (Objects.isNull(dto.getSupplierCode())) {
sb.append("供应商编号不能为空;"); sb.append("供应商编号不能为空;");
} else if (data.stream().filter(item -> StrUtil.equals(item.getSupplierCode(), dto.getSupplierCode())).count() > 1) { } else if (data.stream().filter(item -> StrUtil.equals(item.getSupplierCode(), dto.getSupplierCode())).count() > 1) {
sb.append("供应商编号重复;"); sb.append("供应商编号重复;");
} else {
userSupplier = userSupplierService.lambdaQuery().eq(UserSupplier::getSupplierCode, dto.getSupplierCode()).one();
} }
if (StrUtil.isBlank(dto.getSupplierName())) { if (StrUtil.isBlank(dto.getSupplierName())) {
sb.append("供应商名称不能为空;"); sb.append("供应商名称不能为空;");
} else {
userSupplier.setSupplierName(dto.getSupplierName());
} }
if (StrUtil.isBlank(dto.getTypeName())) { if (StrUtil.isBlank(dto.getTypeName())) {
sb.append("供应商类别不能为空;"); sb.append("供应商类别不能为空;");
@ -560,38 +563,24 @@ public class UserControllerService {
if (Objects.isNull(type)) { if (Objects.isNull(type)) {
sb.append("供应商类别无效;"); sb.append("供应商类别无效;");
} else { } else {
typeId = type.getId(); userSupplier.setTypeId(type.getId());
} }
} }
if (sb.length() > 0) {
dto.setResult(sb.toString());
continue;
}
// if (data.stream().noneMatch(it -> StrUtil.isBlank(it.getResult()))) {
// return false;
// }
userSupplier = userSupplierService.lambdaQuery().eq(UserSupplier::getSupplierCode, dto.getSupplierCode()).one();
if (Objects.isNull(userSupplier)) {
userSupplier = new UserSupplier();
userSupplier.setUserId(0L); userSupplier.setUserId(0L);
userSupplier.setAbbreviation(dto.getAbbreviation());
userSupplier.setAbbreviation1(StringUtil.toPinYin(dto.getAbbreviation()));
userSupplier.setAbbreviation2(StringUtil.getPinYinFirstLetter(dto.getAbbreviation()));
userSupplier.setPciName(dto.getUserName());
userSupplier.setPciPhone(dto.getPhone());
userSupplier.setDefaultLanguage(""); userSupplier.setDefaultLanguage("");
userSupplier.setAvatar(""); userSupplier.setAvatar("");
userSupplier.setState(1); userSupplier.setState(1);
userSupplier.setIsOpenAccount(false); userSupplier.setIsOpenAccount(false);
userSupplier.setRemark(dto.getRemark());
userSupplier.setCreateBy(UserUtil.getUserName()); userSupplier.setCreateBy(UserUtil.getUserName());
userSupplier.setCreateTime(LocalDateTime.now()); userSupplier.setCreateTime(LocalDateTime.now());
userSupplier.setUpdateBy(UserUtil.getUserName()); userSupplier.setUpdateBy(UserUtil.getUserName());
userSupplier.setUpdateTime(LocalDateTime.now()); userSupplier.setUpdateTime(LocalDateTime.now());
}
userSupplier.setSupplierName(dto.getSupplierName());
userSupplier.setTypeId(typeId);
userSupplier.setSupplierCode(dto.getSupplierCode());
userSupplier.setPciName(dto.getUserName());
userSupplier.setPciPhone(dto.getPhone());
userSupplier.setAbbreviation(dto.getAbbreviation());
userSupplier.setAbbreviation1(StringUtil.toPinYin(dto.getAbbreviation()));
userSupplier.setAbbreviation2(StringUtil.getPinYinFirstLetter(dto.getAbbreviation()));
userSupplier.setRemark(dto.getRemark());
dto.setResult(sb.toString()); dto.setResult(sb.toString());
userSuppliers.add(userSupplier); userSuppliers.add(userSupplier);
} }
@ -615,7 +604,7 @@ public class UserControllerService {
DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get(); DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get();
dto.setTypeName(type.getName()); dto.setTypeName(type.getName());
dto.setRemark(vu.getRemark()); dto.setRemark(vu.getRemark());
// dto.setUserCode(vu.getUserCode()); dto.setUserCode(vu.getUserCode());
return dto; return dto;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
@ -626,7 +615,7 @@ public class UserControllerService {
.setSupplierName("供应商名称") .setSupplierName("供应商名称")
.setTypeName("供应商类别") .setTypeName("供应商类别")
.setUserName("负责人姓名") .setUserName("负责人姓名")
// .setUserCode("登录账号,不填则不开通账号") .setUserCode("登录账号,不填则不开通账号")
.setPhone("负责人电话") .setPhone("负责人电话")
.setAbbreviation("供应商简称") .setAbbreviation("供应商简称")
.setRemark("备注信息,此行为提示信息,导入时请删除")); .setRemark("备注信息,此行为提示信息,导入时请删除"));
@ -728,35 +717,4 @@ public class UserControllerService {
} }
return vo; return vo;
} }
public void exportSupplierByFilter(HttpServletResponse response, List<UserSupplierVO> records) throws IOException {
List<SupplierExcelExportDTO> datas = records.stream().map(vu -> {
SupplierExcelExportDTO dto = new SupplierExcelExportDTO();
dto.setSupplierCode(vu.getSupplierCode());
dto.setSupplierName(vu.getSupplierName());
dto.setAbbreviation(vu.getAbbreviation());
dto.setUserName(vu.getPciName());
dto.setPhone(vu.getPciPhone());
//DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get();
dto.setTypeName(vu.getTypeName());
dto.setRemark(vu.getRemark());
// dto.setUserCode(vu.getSupplierCode());
return dto;
}).collect(Collectors.toList());
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("供应商导出.xlsx", StandardCharsets.UTF_8));
if (CollectionUtil.isEmpty(datas)) {
datas.add(new SupplierExcelExportDTO()
.setSupplierCode("供应商编号")
.setSupplierName("供应商名称")
.setTypeName("供应商类别")
.setUserName("负责人姓名")
.setPhone("负责人电话")
.setAbbreviation("供应商简称")
.setRemark("备注信息,此行为提示信息,导入时请删除"));
}
new Workbook()
.addSheet(new ListSheet<>(datas))
.writeTo(response.getOutputStream());
}
} }

View File

@ -38,7 +38,7 @@ public class DeployTest {
//处理字体目录 //处理字体目录
handleDir(sshUtil, localPath, remotePath, "fonts"); handleDir(sshUtil, localPath, remotePath, "fonts");
//处理lib目录 //处理lib目录
// handleDir(sshUtil, localPath, remotePath, "lib"); handleDir(sshUtil, localPath, remotePath, "lib");
//执行脚本启动服务 //执行脚本启动服务
sshUtil.exec("cd " + remotePath + " && ./restart.sh"); sshUtil.exec("cd " + remotePath + " && ./restart.sh");
sshUtil.disconnect(); sshUtil.disconnect();

View File

@ -47,8 +47,8 @@ public class SupplierExcelExportDTO {
/** /**
* 登录账号 * 登录账号
*/ */
// @ExcelColumn("登录账号") @ExcelColumn("登录账号")
// private String userCode; private String userCode;
/** /**
* 备注 * 备注

View File

@ -10,9 +10,4 @@ public class BarcodeLessReceivingSearchQO {
* 送货单Id * 送货单Id
*/ */
private Long id; private Long id;
/**
* 订单号 ,和送货单号二选一
*/
private String orderNo;
} }

View File

@ -7,8 +7,6 @@ import com.nflg.wms.common.pojo.qo.UserSupplierSearchQO;
import com.nflg.wms.common.pojo.vo.UserSupplierVO; import com.nflg.wms.common.pojo.vo.UserSupplierVO;
import com.nflg.wms.repository.entity.UserSupplier; import com.nflg.wms.repository.entity.UserSupplier;
import java.util.List;
/** /**
* <p> * <p>
* Mapper 接口 * Mapper 接口
@ -20,5 +18,4 @@ import java.util.List;
public interface UserSupplierMapper extends BaseMapper<UserSupplier> { public interface UserSupplierMapper extends BaseMapper<UserSupplier> {
IPage<UserSupplierVO> search(UserSupplierSearchQO request, Page<Object> objectPage); IPage<UserSupplierVO> search(UserSupplierSearchQO request, Page<Object> objectPage);
} }

View File

@ -8,8 +8,6 @@ import com.nflg.wms.repository.entity.UserSupplier;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import java.util.List;
/** /**
* <p> * <p>
* 服务类 * 服务类
@ -29,5 +27,4 @@ public interface IUserSupplierService extends IService<UserSupplier> {
UserSupplier getByUserId(Long id); UserSupplier getByUserId(Long id);
UserSupplier getByCode(@NotBlank String supplierNo); UserSupplier getByCode(@NotBlank String supplierNo);
} }

View File

@ -14,8 +14,6 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* <p> * <p>
* 服务实现类 * 服务实现类
@ -67,5 +65,4 @@ public class UserSupplierServiceImpl extends ServiceImpl<UserSupplierMapper, Use
public UserSupplier getByCode(String supplierNo) { public UserSupplier getByCode(String supplierNo) {
return lambdaQuery().eq(UserSupplier::getSupplierCode, supplierNo).one(); return lambdaQuery().eq(UserSupplier::getSupplierCode, supplierNo).one();
} }
} }