diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java index 7ab871db..78912074 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java @@ -196,17 +196,18 @@ public class NormalPGIController extends BaseController { //数量验证(判断收货数量是否大于了未收数量) VUtil.trueThrowBusinessError(item.getReceiptNum().compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("物料收货数量[" + item.getReceiptNum() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum()); + Long orderItemId = IdUtil.getSnowflakeNextId(); //序列号和批次号验证 - List codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder); + List codes = normalPGIControllerService.validateScanCodes(item, materialInfoInOrder, orderItemId); if (CollectionUtil.isNotEmpty(codes)) { srmMaterialReceiptScanCodes.addAll(codes); } boolean isQuality = materialInfoInOrder.getKzkri().equals("X"); // 如果是质检单 if (isQuality) { - setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId()); + setQcMaterialSyncDto(qcMaterialSyncDTOS, item, order, codes, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), orderItemId); } else { - setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder); + setPoReceive(item, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, orderItemId); } } // 盘点条码是否重复 @@ -333,7 +334,7 @@ public class NormalPGIController extends BaseController { List item1 = zwm3A17DTO.getItem1(); List item2 = zwm3A17DTO.getItem2(); - List scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId()); + List scanCode = srmMaterialReceiptScanCodesRepository.findByReceiveItemId(item.getId()); if (CollectionUtil.isNotEmpty(scanCode)) { scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false) .toList(); @@ -438,11 +439,12 @@ public class NormalPGIController extends BaseController { private void setPoReceive(SrmMaterialReceiptQO item, List wmsPoReceiptItems, Long receiveId, - SAPSyncParamsDTO materialInfoInOrder + SAPSyncParamsDTO materialInfoInOrder, + Long receiveItemId ) { WmsPoReceiptItem receiptItem = new WmsPoReceiptItem() - .setId(IdUtil.getSnowflakeNextId()) + .setId(receiveItemId) .setLineNumber(item.getLineNumber()) .setItemCode(item.getItemCode()) .setUomCode(materialInfoInOrder.getMeins()) @@ -570,7 +572,8 @@ public class NormalPGIController extends BaseController { List codes, SAPSyncParamsDTO materialInfoInOrder, List wmsQcReceiveItems, - Long receiveId + Long receiveId, + Long receiveItemId ) { ZWM3A17DTO zwm3A17DTO = null; QCMaterialSyncDTO qcDto = null; @@ -619,7 +622,7 @@ public class NormalPGIController extends BaseController { setSrmData(srmPushDto, codes, item, materialInfoInOrder); WmsQcReceiveItem qmsReceiptItem = new WmsQcReceiveItem() - .setId(IdUtil.getSnowflakeNextId()) + .setId(receiveItemId) .setLineNumber(item.getLineNumber()) .setItemCode(item.getItemCode()) .setUomCode(materialInfoInOrder.getMeins()) @@ -657,10 +660,20 @@ public class NormalPGIController extends BaseController { @ApiMark(moduleName = "送货单管理", apiName = "一键收货查询") public ApiResult> getDeliveryByNoScan(@Valid @RequestBody BarcodeLessReceivingSearchQO request) { List list = new ArrayList<>(); - List orders = wmsSrmOrderService.lambdaQuery() - .in(WmsSrmOrder::getId, request.getId()) - .eq(WmsSrmOrder::getIsCompleted, false) - .list(); + List orders = null; + if (Objects.nonNull(request.getId()) && request.getId() > 0) { + orders = wmsSrmOrderService.lambdaQuery() + .eq(WmsSrmOrder::getId, request.getId()) + .eq(WmsSrmOrder::getIsCompleted, false) + .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("不存在未完成收货的物料!"); // 查找订单信息 List items = wmsSrmOrderItemService.lambdaQuery() @@ -692,10 +705,12 @@ public class NormalPGIController extends BaseController { order.getSupplierNum(), item.getItemCode(), item.getPoLineNumber()); 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.setUomCode(materialInfoInOrder.getMeins()); qo.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo()); - qo.setBatchNumber(NoUtil.getBatchNo(order.getSupplierNum())); + qo.setBatchNumber(batchNumber); qo.setBinNos(materialInfoInOrder.getBinNos()); qo.setTransportNum(materialInfoInOrder.getTransportNum()); qo.setLbprt(materialInfoInOrder.getLbprt()); @@ -707,7 +722,9 @@ public class NormalPGIController extends BaseController { private List validateNoScanCodes(BarcodeLessReceivingVO item, SAPSyncParamsDTO materialInfoInOrder, - List scanCodeQOS) { + List scanCodeQOS + , Long receiveItemId + ) { String lbprt = materialInfoInOrder.getLbprt(); //判断序列号、批次号是否规范 // 1 - 批次号为空,序列号为空 @@ -728,19 +745,22 @@ public class NormalPGIController extends BaseController { } List srmMaterialReceiptScanCodes = new ArrayList<>(); List codeIds = new ArrayList<>(); + String batchCode = Objects.isNull(item.getBatchNumber()) ? "" : item.getBatchNumber(); if (StrUtil.isBlank(item.getSerialNumbers())) { String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber() + "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&" + item.getUnRecieveQty() - + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber() + + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode + "&" + item.getSerialNumbers() + "&" + LocalDateTime.now(); String codeId = DigestUtil.md5Hex(codeContent); srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes() .setCodeId(codeId) .setOrderNo(item.getNoteNum()) .setOrderItemId(item.getId()) + .setBatchNumber(batchCode) .setCodeNum(item.getUnRecieveQty()) .setSerialNumbers(item.getSerialNumbers()) .setCodeContent(codeContent) + .setReceiveItemId(receiveItemId) .setIsIntoStorage(false)); scanCodeQOS.add(new SrmMaterialReceiptScanCodes() @@ -748,6 +768,8 @@ public class NormalPGIController extends BaseController { .setOrderNo(item.getNoteNum()) .setOrderItemId(item.getId()) .setIsIntoStorage(false) + .setBatchNumber(batchCode) + .setReceiveItemId(receiveItemId) .setCodeNum(item.getUnRecieveQty()) .setBatchNumber(item.getBatchNumber()) .setSerialNumbers(item.getSerialNumbers()) @@ -762,24 +784,29 @@ public class NormalPGIController extends BaseController { String codeContent = item.getItemCode() + "&" + item.getPoNum() + "&" + item.getPoLineNumber() + "&" + item.getLineNumber() + "&" + item.getNoteNum() + "&" + item.getIuCode() + "&" + item.getSupplierNum() + "&1" - + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + item.getBatchNumber() + + "&" + item.getUomCode() + "&" + item.getReceivedWarehouse() + "&" + batchCode + "&" + serialNumbers[i] + "&" + LocalDateTime.now(); String codeId = DigestUtil.md5Hex(codeContent); srmMaterialReceiptScanCodes.add(new SrmMaterialReceiptNoScanCodes() .setCodeId(codeId) .setOrderNo(item.getNoteNum()) .setOrderItemId(item.getId()) + .setBatchNumber(batchCode) .setCodeNum(new BigDecimal(1)) .setSerialNumbers(serialNumbers[i]) .setCodeContent(codeContent) + .setReceiveItemId(receiveItemId) .setIsIntoStorage(false)); + scanCodeQOS.add(new SrmMaterialReceiptScanCodes() .setCodeId(codeId) .setOrderNo(item.getNoteNum()) .setOrderItemId(item.getId()) + .setBatchNumber(batchCode) .setIsIntoStorage(false) .setCodeNum(new BigDecimal(1)) .setBatchNumber(item.getBatchNumber()) + .setReceiveItemId(receiveItemId) .setSerialNumbers(serialNumbers[i]) .setCodeContent(codeContent) ); @@ -851,8 +878,9 @@ public class NormalPGIController extends BaseController { VUtil.trueThrowBusinessError(item.getUnRecieveQty().compareTo(materialInfoInOrder.getTransportNum()) > 0) .throwMessage("物料收货数量[" + item.getUnRecieveQty() + "]大于了未收数量[" + materialInfoInOrder.getTransportNum() + "],订单号:" + item.getPoNum()); //序列号和批次号验证以及条码信息的组装 + Long receiveItemId = IdUtil.getSnowflakeNextId(); List scanCodeQOS = new ArrayList<>(); - List itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS); + List itemCodes = validateNoScanCodes(item, materialInfoInOrder, scanCodeQOS, receiveItemId); if (CollectionUtil.isNotEmpty(itemCodes)) { codes.addAll(itemCodes); } @@ -876,18 +904,16 @@ public class NormalPGIController extends BaseController { .setReceiptNum(item.getUnRecieveQty()); // 如果是质检单 if (isQuality) { - setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId()); + setQcMaterialSyncDto(qcMaterialSyncDTOS, materialSyncDTO, order, scanCodeQOS, materialInfoInOrder, wmsQcReceiveItems, wmsQcReceive.getId(), receiveItemId); } else { WmsPoReceipt wmsPoReceipt = wmsPoReceipts.stream().filter(it -> it.getOrderNo().equals(item.getNoteNum())) .findFirst().orElse(null); if (Objects.isNull(wmsPoReceipt)) { continue; } - - setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder); + setPoReceive(materialSyncDTO, wmsPoReceiptItems, wmsPoReceipt.getId(), materialInfoInOrder, receiveItemId); } } - // 盘点条码是否重复 Map duplicateCodes = codes.stream() .collect(Collectors.groupingBy( @@ -961,7 +987,7 @@ public class NormalPGIController extends BaseController { List item1 = zwm3A17DTO.getItem1(); List item2 = zwm3A17DTO.getItem2(); - List scanCode = srmMaterialReceiptNoScanCodesRepository.findByOrderItemId(item.getOrderItemId()); + List scanCode = srmMaterialReceiptNoScanCodesRepository.findByReceiveItemId(item.getId()); if (CollectionUtil.isNotEmpty(scanCode)) { scanCode = scanCode.stream().filter(code -> code.getIsIntoStorage() == false) .toList(); @@ -972,7 +998,7 @@ public class NormalPGIController extends BaseController { // 库存 InventoryDTO inventoryDTO = inventories.stream() .filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode()) - && inventoriesDTO.getBatchNumber().equals(code.getBatchNumber()) + && inventoriesDTO.getBatchNumber().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) && inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode()) && inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse()) ).findFirst().orElse(null); @@ -982,7 +1008,7 @@ public class NormalPGIController extends BaseController { .setMaterialNo(item.getItemCode()) .setFactoryNo(wmsPoReceipt.getFactoryCode()) .setWarehouseNo(item.getReceivedWarehouse()) - .setBatchNumber(code.getBatchNumber()) + .setBatchNumber(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) .setNum(code.getCodeNum()); inventories.add(inventoryDTO); } else { @@ -993,7 +1019,7 @@ public class NormalPGIController extends BaseController { dto1.getEBELP().equals(item.getPoLineNumber()) && dto1.getMATNR().equals(item.getItemCode()) && dto1.getMeins().equals(item.getUomCode()) - && dto1.getCHARG().equals(code.getBatchNumber()) + && dto1.getCHARG().equals(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) && dto1.getWERKS().equals(wmsPoReceipt.getFactoryCode()) && dto1.getLGORT().equals(item.getReceivedWarehouse()) ).findFirst().orElse(null); @@ -1003,7 +1029,7 @@ public class NormalPGIController extends BaseController { .setMATNR(item.getItemCode()) .setERFMG(code.getCodeNum()) .setMEINS(item.getUomCode()) - .setCHARG(code.getBatchNumber()) + .setCHARG(Objects.isNull(code.getBatchNumber()) ? "" : code.getBatchNumber()) .setWERKS(wmsPoReceipt.getFactoryCode()) .setLGORT(item.getReceivedWarehouse()) .setKZKRI("") diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/POReceiptController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/POReceiptController.java index a78ba8d4..fb79d2eb 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/POReceiptController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/POReceiptController.java @@ -66,7 +66,7 @@ public class POReceiptController { @GetMapping("getScanCodes") @ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息") public ApiResult> getScanCodes(@RequestParam Long orderItemId) { - List scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId); + List scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId); List pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); return ApiResult.success(pdas); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QCReceiptController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QCReceiptController.java index 335a9cc5..64334477 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QCReceiptController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QCReceiptController.java @@ -70,7 +70,7 @@ public class QCReceiptController { @GetMapping("getScanCodes") @ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息") public ApiResult> getScanCodes(@RequestParam Long orderItemId) { - List scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId); + List scanCodes = srmMaterialReceiptCanCodesRepository.findByReceiveItemId(orderItemId); List pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); return ApiResult.success(pdas); } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java index bf28daea..12c6ad6b 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SupplierController.java @@ -1,5 +1,7 @@ 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.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; @@ -7,12 +9,14 @@ import com.nflg.wms.common.pojo.qo.*; import com.nflg.wms.common.pojo.vo.RoleSimpleVO; import com.nflg.wms.common.pojo.vo.UserSupplierItemVO; 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.starter.BaseController; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import org.postgresql.core.Utils; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -155,4 +159,16 @@ public class SupplierController extends BaseController { public void exportSelect(HttpServletResponse response, @RequestBody(required = false) List ids) throws Exception { 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 data = userControllerService.searchSupplier(request); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(data.getRecords())).throwMessage("数据不存在"); + userControllerService.exportSupplierByFilter(response, data.getRecords()); + } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptNoScanCodes.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptNoScanCodes.java index af0c5410..5a790fa6 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptNoScanCodes.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptNoScanCodes.java @@ -17,12 +17,12 @@ public class SrmMaterialReceiptNoScanCodes { private String id; /** - * 收货单的单号 + * 发货单的单号 */ private String orderNo; /*** - * 收货单的单行ID号 + * 发货单的单行ID号 * */ private Long orderItemId; @@ -62,4 +62,9 @@ public class SrmMaterialReceiptNoScanCodes { * 是否已上架 */ private Boolean IsIntoStorage; + + /** + * 收货单的单行ID号 + */ + private Long receiveItemId; } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptScanCodes.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptScanCodes.java index ff052d68..7a00452f 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptScanCodes.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/SrmMaterialReceiptScanCodes.java @@ -63,4 +63,8 @@ public class SrmMaterialReceiptScanCodes { */ private Boolean IsIntoStorage; + /** + * 收货单的单行ID号 + */ + private Long receiveItemId; } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptNoScanCodesRepository.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptNoScanCodesRepository.java index f55ce32f..030b3379 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptNoScanCodesRepository.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptNoScanCodesRepository.java @@ -12,7 +12,7 @@ import java.util.List; public interface SrmMaterialReceiptNoScanCodesRepository extends MongoRepository { List findByOrderItemId(Long orderItemId); - + List findByReceiveItemId(Long receiveItemId); List findByCodeIdIn(List attr0); @Query("{ 'codeId' : { $in : ?0 } }") diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptScanCodesRepository.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptScanCodesRepository.java index d90ea90e..af2e2e40 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptScanCodesRepository.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/repository/SrmMaterialReceiptScanCodesRepository.java @@ -12,6 +12,7 @@ import java.util.List; public interface SrmMaterialReceiptScanCodesRepository extends MongoRepository { List findByOrderItemId(Long orderItemId); + List findByReceiveItemId(Long receiveItemId); List findByCodeIdIn(List attr0); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java index d499e9fe..3cb9a382 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java @@ -167,7 +167,8 @@ public class NormalPGIControllerService { } - public List validateScanCodes(SrmMaterialReceiptQO item, SAPSyncParamsDTO materialInfoInOrder) { + public List validateScanCodes(SrmMaterialReceiptQO item + , SAPSyncParamsDTO materialInfoInOrder, Long receiveItemId) { String lbprt = materialInfoInOrder.getLbprt(); //判断序列号、批次号是否规范 // 1 - 批次号为空,序列号为空 @@ -199,6 +200,7 @@ public class NormalPGIControllerService { .setCodeId(scanCode.getCodeId()) .setCodeNum(scanCode.getCodeNum()) .setBatchNumber(scanCode.getBatchNumber()) + .setReceiveItemId(receiveItemId) .setSerialNumbers(scanCode.getSerialNumbers()) .setIsIntoStorage(false) .setCodeContent(scanCode.getCodeContent())); @@ -325,15 +327,15 @@ public class NormalPGIControllerService { .update(); } } - //修改二维码的入库状态 - if (CollectionUtil.isNotEmpty(scanCodes)) { - List codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList(); - srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true); - } +// //修改二维码的入库状态 +// if (CollectionUtil.isNotEmpty(scanCodes)) { +// List codeIds = scanCodes.stream().map(SrmMaterialReceiptScanCodes::getId).toList(); +// srmMaterialReceiptCanCodesRepository.updateIsIntoStorage(codeIds, true); +// } } - + @Transactional public void takeNoScanDelivery(List wmsPoReceipts, List wmsQcReceives , List wmsPoReceiptItems , List wmsQcReceiveItems, List codes @@ -355,7 +357,6 @@ public class NormalPGIControllerService { for (WmsPoReceiptItem wmsPoReceiptItem : items) { wmsSrmOrderItemService.addReceiveQty(wmsPoReceiptItem.getOrderItemId(), wmsPoReceiptItem.getReceiptNum()); } - } } } @@ -378,7 +379,6 @@ public class NormalPGIControllerService { } - for (Long orderId : orderIds) { //更新收货单的完结状态 List orders = wmsSrmOrderService.getUnCompletedItem(orderId); @@ -415,7 +415,7 @@ public class NormalPGIControllerService { } } - + @Transactional public void takeDeliveryConfirmUnScan(List receiptItems, List storageLocationDTOS, List inventories, List zwm3A17DTOS, Long id, List scanCodes) { @@ -460,10 +460,10 @@ public class NormalPGIControllerService { } } //修改二维码的入库状态 - if (CollectionUtil.isNotEmpty(scanCodes)) { - List codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList(); - srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true); - } +// if (CollectionUtil.isNotEmpty(scanCodes)) { +// List codeIds = scanCodes.stream().map(SrmMaterialReceiptNoScanCodes::getId).toList(); +// srmMaterialReceiptNoCodesRepository.updateIsIntoStorage(codeIds, true); +// } } /** diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java index 74ec6913..d0b216d6 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/UserControllerService.java @@ -466,7 +466,7 @@ public class UserControllerService { VUtil.trueThrowBusinessError(Objects.isNull(userSupplier) || StrUtil.isBlank(userSupplier.getSupplierCode())) .throwMessage("供应商不存在"); if (userSupplier.getIsOpenAccount()) { - enableUser(userSupplier.getUserId(),request.getEnable()?1:2); + enableUser(userSupplier.getUserId(), request.getEnable() ? 1 : 2); } userSupplierService.lambdaUpdate().set(UserSupplier::getState, request.getEnable() ? 1 : 2) .set(UserSupplier::getUpdateBy, UserUtil.getUserName()) @@ -523,7 +523,7 @@ public class UserControllerService { new Workbook() .addSheet(new ListSheet<>(data)) .writeTo(osOut); - try(ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) { + try (ByteArrayInputStream isIn = new ByteArrayInputStream(osOut.toByteArray())) { return ApiResult.error(STATE.DataNoCheckPass, "导入文件失败", fileUploadService.upload("temp/" + DateTimeUtil.format(LocalDate.now(), "yyyyMMdd") + "/" + IdUtil.fastUUID() + ".xlsx", isIn, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")); } } catch (Exception e) { @@ -542,19 +542,16 @@ public class UserControllerService { List suppliersCategory = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_SUPPLIERS_CATEGORY); List userSuppliers = new ArrayList<>(); for (SupplierExcelDTO dto : data) { - UserSupplier userSupplier = new UserSupplier(); + Long typeId = 0L; + UserSupplier userSupplier = null;// new UserSupplier(); StringBuilder sb = new StringBuilder(); if (Objects.isNull(dto.getSupplierCode())) { sb.append("供应商编号不能为空;"); } else if (data.stream().filter(item -> StrUtil.equals(item.getSupplierCode(), dto.getSupplierCode())).count() > 1) { sb.append("供应商编号重复;"); - } else { - userSupplier = userSupplierService.lambdaQuery().eq(UserSupplier::getSupplierCode, dto.getSupplierCode()).one(); } if (StrUtil.isBlank(dto.getSupplierName())) { sb.append("供应商名称不能为空;"); - } else { - userSupplier.setSupplierName(dto.getSupplierName()); } if (StrUtil.isBlank(dto.getTypeName())) { sb.append("供应商类别不能为空;"); @@ -563,24 +560,38 @@ public class UserControllerService { if (Objects.isNull(type)) { sb.append("供应商类别无效;"); } else { - userSupplier.setTypeId(type.getId()); + typeId = type.getId(); } } - userSupplier.setUserId(0L); + 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.setDefaultLanguage(""); + userSupplier.setAvatar(""); + userSupplier.setState(1); + userSupplier.setIsOpenAccount(false); + userSupplier.setCreateBy(UserUtil.getUserName()); + userSupplier.setCreateTime(LocalDateTime.now()); + userSupplier.setUpdateBy(UserUtil.getUserName()); + 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.setPciName(dto.getUserName()); - userSupplier.setPciPhone(dto.getPhone()); - userSupplier.setDefaultLanguage(""); - userSupplier.setAvatar(""); - userSupplier.setState(1); - userSupplier.setIsOpenAccount(false); userSupplier.setRemark(dto.getRemark()); - userSupplier.setCreateBy(UserUtil.getUserName()); - userSupplier.setCreateTime(LocalDateTime.now()); - userSupplier.setUpdateBy(UserUtil.getUserName()); - userSupplier.setUpdateTime(LocalDateTime.now()); dto.setResult(sb.toString()); userSuppliers.add(userSupplier); } @@ -604,7 +615,7 @@ public class UserControllerService { DictionaryItem type = suppliersCategory.stream().filter(it -> Objects.equals(it.getId(), vu.getTypeId())).findFirst().get(); dto.setTypeName(type.getName()); dto.setRemark(vu.getRemark()); - dto.setUserCode(vu.getUserCode()); + // dto.setUserCode(vu.getUserCode()); return dto; }).collect(Collectors.toList()); response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); @@ -615,7 +626,7 @@ public class UserControllerService { .setSupplierName("供应商名称") .setTypeName("供应商类别") .setUserName("负责人姓名") - .setUserCode("登录账号,不填则不开通账号") + // .setUserCode("登录账号,不填则不开通账号") .setPhone("负责人电话") .setAbbreviation("供应商简称") .setRemark("备注信息,此行为提示信息,导入时请删除")); @@ -717,4 +728,35 @@ public class UserControllerService { } return vo; } + + public void exportSupplierByFilter(HttpServletResponse response, List records) throws IOException { + List 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()); + } } diff --git a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java index 07def21d..fa6c1c11 100644 --- a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java +++ b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/DeployTest.java @@ -38,7 +38,7 @@ public class DeployTest { //处理字体目录 handleDir(sshUtil, localPath, remotePath, "fonts"); //处理lib目录 - handleDir(sshUtil, localPath, remotePath, "lib"); + // handleDir(sshUtil, localPath, remotePath, "lib"); //执行脚本启动服务 sshUtil.exec("cd " + remotePath + " && ./restart.sh"); sshUtil.disconnect(); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SupplierExcelExportDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SupplierExcelExportDTO.java index 7dd7d039..b880ad47 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SupplierExcelExportDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SupplierExcelExportDTO.java @@ -47,8 +47,8 @@ public class SupplierExcelExportDTO { /** * 登录账号 */ - @ExcelColumn("登录账号") - private String userCode; +// @ExcelColumn("登录账号") +// private String userCode; /** * 备注 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/BarcodeLessReceivingSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/BarcodeLessReceivingSearchQO.java index af10b644..0bb9647b 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/BarcodeLessReceivingSearchQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/BarcodeLessReceivingSearchQO.java @@ -10,4 +10,9 @@ public class BarcodeLessReceivingSearchQO { * 送货单Id */ private Long id; + + /** + * 订单号 ,和送货单号二选一 + */ + private String orderNo; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/UserSupplierMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/UserSupplierMapper.java index 7b3026c6..7274e6e4 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/UserSupplierMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/UserSupplierMapper.java @@ -7,6 +7,8 @@ import com.nflg.wms.common.pojo.qo.UserSupplierSearchQO; import com.nflg.wms.common.pojo.vo.UserSupplierVO; import com.nflg.wms.repository.entity.UserSupplier; +import java.util.List; + /** *

* Mapper 接口 @@ -18,4 +20,5 @@ import com.nflg.wms.repository.entity.UserSupplier; public interface UserSupplierMapper extends BaseMapper { IPage search(UserSupplierSearchQO request, Page objectPage); + } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java index b26f8cc4..7fba9a12 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IUserSupplierService.java @@ -8,6 +8,8 @@ import com.nflg.wms.repository.entity.UserSupplier; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import java.util.List; + /** *

* 服务类 @@ -27,4 +29,5 @@ public interface IUserSupplierService extends IService { UserSupplier getByUserId(Long id); UserSupplier getByCode(@NotBlank String supplierNo); + } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java index c9804b19..3aa7892a 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/UserSupplierServiceImpl.java @@ -14,6 +14,8 @@ import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** *

* 服务实现类 @@ -65,4 +67,5 @@ public class UserSupplierServiceImpl extends ServiceImpl