diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java index c4de6c67..750cdab5 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java @@ -343,7 +343,7 @@ public class NormalQMController extends BaseController { .setErfmg(code.getInspectionQty()) .setErfmg1(code.getQualifiedQty()) .setErfmg2(code.getUnqualifiedQty()) - .setEbelp(Integer.valueOf(code.getPoLineNumber())) + .setEbelp(code.getPoLineNumber()) .setMatnr(code.getItemCode()) .setMeins(code.getUnit()) .setCharg(code.getMaterialBatch()) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java index 24cbfdce..1dbdc506 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/StructuralPackageOrderController.java @@ -2,6 +2,7 @@ package com.nflg.wms.admin.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; +import cn.hutool.core.lang.Pair; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; @@ -15,9 +16,7 @@ import com.alibaba.excel.metadata.data.ImageData; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; -import com.nflg.wms.admin.pojo.dto.PdfPageDTO; -import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO; -import com.nflg.wms.admin.pojo.dto.StructuralPackageOrderImportDTO; +import com.nflg.wms.admin.pojo.dto.*; import com.nflg.wms.admin.repository.PackageMaterialScanRecordRepository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; import com.nflg.wms.admin.service.BinService; @@ -35,7 +34,6 @@ import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.document.PackageMaterialScanRecord; import com.nflg.wms.common.pojo.dto.PackageMaterialDTO; import com.nflg.wms.common.pojo.dto.SAPOrderDTO; -import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO; import com.nflg.wms.common.pojo.dto.StructuralPackageMaterialQRCodeContentDTO; import com.nflg.wms.common.pojo.qo.*; import com.nflg.wms.common.pojo.vo.*; @@ -821,109 +819,139 @@ public class StructuralPackageOrderController extends BaseController { SAPMaterialInfoInOrderDTO dto = CollectionUtil.get(sapService.zim004(order.getExternalOrderNo(), order.getSupplierCode(), order.getPackageNo()), 0); VUtil.trueThrowBusinessError(Objects.isNull(dto)).throwMessage("ZIM_004未查询到数据"); VUtil.trueThrowBusinessError(StrUtil.isBlank(dto.getWarehouseNo())).throwMessage("ZIM_004接口查询到仓库为空"); - //创建上架任务 - VUtil.trueThrowBusinessError(!inTaskService.generateTask(List.of(new WmsInTaskItem() - .setPoNum(order.getExternalOrderNo()) - .setPoLineNumber(order.getRowNo()) - .setLineNumber(String.valueOf(order.getId())) - .setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId())) - .setItemCode(order.getPackageNo()) - .setItemName(order.getPackageDesc()) - .setUnit(order.getUnit()) - .setIsQuality(false) - .setKzkri(order.getKzkri()) - .setUnqualifiedQty(BigDecimal.ZERO) - .setQualifiedQty(BigDecimal.valueOf(order.getNum())) - .setInspectionQty(BigDecimal.valueOf(order.getNum())) - .setFactory(dto.getWerks()) - .setDataStatus((short) 0) - .setReceivedWarehouse(dto.getWarehouseNo()) - .setOperationUserId(UserUtil.getUserId()) - .setOperationUserName(UserUtil.getUserName()) - .setBatchNumber(order.getWorkbenchCode()) - .setSupplierNum(order.getSupplierCode())), (short) 1) + BigDecimal num = BigDecimal.valueOf(order.getNum()); + Pair, Pair> pair = sapService.zwm3a17(new ZWM3A17DTO() + .setEbeln(order.getExternalOrderNo()) + .setUsnam(UserUtil.getUserName()) + .setItem1(List.of(new ZWM3A17Item1DTO() + .setEBELP(order.getRowNo()) + .setCHARG("") + .setERFMG(num) + .setKZKRI(dto.getKzkri()) + .setLGORT(request.getWarehouse()) + .setMATNR(order.getPackageNo()) + .setWERKS(order.getFactoryNo()) + .setMEINS(order.getUnit()) + ) ) - .throwMessage("创建上架任务失败"); - return ApiResult.success(); - } - - /** - * 搜索上架任务列表(PDA使用) - * @param no 任务单号或原始单号 - */ - @GetMapping("searchIn") - public ApiResult> searchIn(@Valid @RequestParam(required = false) String no) { - return ApiResult.success(inTaskService.searchForIn(no)); - } - - /** - * 获取上架任务详情(PDA使用) - * @param taskNo 上架任务单号 - */ - @GetMapping("getInTaskInfo") - public ApiResult> getInTaskInfo(@Valid @RequestParam @NotBlank String taskNo) { - WmsInTask task = inTaskService.getByNo(taskNo); - VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); - VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架"); - List list = inTaskItemService.getListForStorage(taskNo); - List datas = Convert.toList(InTaskInfoVO.class, list); - for (InTaskInfoVO item : datas) { - SAPSyncFromDTO dto = sapService.zwm3A01(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode()); - if (Objects.nonNull(dto)) { - item.setBinNos(dto.getBinNos()); - } - item.setTrayNos(structuralPackageDeliverOrderService.getTrayNos(task.getOrderNumber(), item.getItemCode())); - } - return ApiResult.success(datas); - } - - /** - * 上架(PDA使用) - * @param request 请求参数 - */ - @Transactional - @PostMapping("materialStorage") - public ApiResult materialStorage(@Valid @RequestBody @NotNull MaterialStorageQO request) { - WmsInTask task = inTaskService.getByNo(request.getTaskNo()); - VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); - VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架"); - List datas = inTaskItemService.getForIn(request); - if (CollectionUtil.isNotEmpty(datas)) { - datas.forEach(it -> { - MaterialStorageItemQO qo = request.getItems().stream().filter(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())).findFirst().get(); - it.setReceivedQty(it.getInspectionQty().subtract(qo.getNum())); - it.setBins(StrUtil.join(",", qo.getBinNos())); - it.setDataStatus((short) 1); - it.setReceivedWarehouse(qo.getReceivedWarehouse()); - }); - inTaskItemService.updateBatchById(datas); - inTaskService.updateState(request.getTaskNo()); - datas.stream() - .filter(it -> request.getItems().stream().anyMatch(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode()))) - .collect(Collectors.groupingBy(WmsInTaskItem::getPoNum)) - .values() - .forEach(it -> structuralPackageControllerService.materialStorage(it, request.getItems())); + .setItem2(List.of( + new ZWM3A17Item2DTO() + .setEBELP(order.getRowNo()) + .setSERNR("") + .setFLAG("X") + ) + ) + ); + if (StrUtil.equalsIgnoreCase(dto.getKzkri(), "X")) { + sapService.zwm3a18(new ZWM3A18DTO() + .setEbeln(order.getExternalOrderNo()) + .setUsnam(UserUtil.getUserName()) + .setMblnr(pair.getValue().getKey()) + .setMjahr(pair.getValue().getValue()) + .setItem1(List.of( + new ZWM3A18Item1DTO() + .setErfmg(num) + .setErfmg1(num) + .setErfmg2(BigDecimal.ZERO) + .setEbelp(order.getRowNo()) + .setMatnr(order.getPackageNo()) + .setMeins(order.getUnit()) + .setCharg("") + .setLgort(request.getWarehouse()) + .setSgtxt("") + .setWerks(order.getFactoryNo()) + ) + ) + .setItem2( + List.of( + new ZWM3A17Item2DTO() + .setEBELP(order.getRowNo()) + .setSERNR("") + .setFLAG("X") + ) + ) + ); } return ApiResult.success(); } - /** - * 搜索上架任务列表 - * @param request 请求参数 - */ - @PostMapping("searchTicket") - public ApiResult> searchTicket(@Valid @RequestBody @NotNull InTaskSearchQO request) { - return ApiResult.success(inTaskService.search(request)); - } +// /** +// * 搜索上架任务列表(PDA使用) +// * @param no 任务单号或原始单号 +// */ +// @GetMapping("searchIn") +// public ApiResult> searchIn(@Valid @RequestParam(required = false) String no) { +// return ApiResult.success(inTaskService.searchForIn(no)); +// } - /** - * 获取上架任务明细 - * @param taskNo 上架任务单号 - */ - @GetMapping("getTicketItems") - public ApiResult> getTicketItems(@Valid @RequestParam @NotBlank String taskNo) { - return ApiResult.success(inTaskItemService.getByNo(taskNo)); - } +// /** +// * 获取上架任务详情(PDA使用) +// * @param taskNo 上架任务单号 +// */ +// @GetMapping("getInTaskInfo") +// public ApiResult> getInTaskInfo(@Valid @RequestParam @NotBlank String taskNo) { +// WmsInTask task = inTaskService.getByNo(taskNo); +// VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); +// VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架"); +// List list = inTaskItemService.getListForStorage(taskNo); +// List datas = Convert.toList(InTaskInfoVO.class, list); +// for (InTaskInfoVO item : datas) { +// SAPSyncFromDTO dto = sapService.zwm3A01(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode()); +// if (Objects.nonNull(dto)) { +// item.setBinNos(dto.getBinNos()); +// } +// item.setTrayNos(structuralPackageDeliverOrderService.getTrayNos(task.getOrderNumber(), item.getItemCode())); +// } +// return ApiResult.success(datas); +// } + +// /** +// * 上架(PDA使用) +// * @param request 请求参数 +// */ +// @Transactional +// @PostMapping("materialStorage") +// public ApiResult materialStorage(@Valid @RequestBody @NotNull MaterialStorageQO request) { +// WmsInTask task = inTaskService.getByNo(request.getTaskNo()); +// VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); +// VUtil.trueThrowBusinessError(!Objects.equals(task.getTaskStatus(), (short) 0)).throwMessage("请勿重复上架"); +// List datas = inTaskItemService.getForIn(request); +// if (CollectionUtil.isNotEmpty(datas)) { +// datas.forEach(it -> { +// MaterialStorageItemQO qo = request.getItems().stream().filter(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode())).findFirst().get(); +// it.setReceivedQty(it.getInspectionQty().subtract(qo.getNum())); +// it.setBins(StrUtil.join(",", qo.getBinNos())); +// it.setDataStatus((short) 1); +// it.setReceivedWarehouse(qo.getReceivedWarehouse()); +// }); +// inTaskItemService.updateBatchById(datas); +// inTaskService.updateState(request.getTaskNo()); +// datas.stream() +// .filter(it -> request.getItems().stream().anyMatch(r -> StrUtil.equals(r.getMaterialNo(), it.getItemCode()))) +// .collect(Collectors.groupingBy(WmsInTaskItem::getPoNum)) +// .values() +// .forEach(it -> structuralPackageControllerService.materialStorage(it, request.getItems())); +// } +// return ApiResult.success(); +// } + +// /** +// * 搜索上架任务列表 +// * @param request 请求参数 +// */ +// @PostMapping("searchTicket") +// public ApiResult> searchTicket(@Valid @RequestBody @NotNull InTaskSearchQO request) { +// return ApiResult.success(inTaskService.search(request)); +// } + +// /** +// * 获取上架任务明细 +// * @param taskNo 上架任务单号 +// */ +// @GetMapping("getTicketItems") +// public ApiResult> getTicketItems(@Valid @RequestParam @NotBlank String taskNo) { +// return ApiResult.success(inTaskItemService.getByNo(taskNo)); +// } /** * 导出钢构件订单导入模板 diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZWM3A18Item1DTO.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZWM3A18Item1DTO.java index ff8e0e4e..9079fa02 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZWM3A18Item1DTO.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZWM3A18Item1DTO.java @@ -28,7 +28,7 @@ public class ZWM3A18Item1DTO { /** * 采购凭证的项目编号 */ - private Integer ebelp; + private String ebelp; /** * 物料号 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncParamsDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncParamsDTO.java index b8918ff0..657d0205 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncParamsDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncParamsDTO.java @@ -84,7 +84,7 @@ public class SAPSyncParamsDTO { private String lbprt; /** - * 是否质检 + * 是否质检,为X时是质检物料 */ private String kzkri; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java index ce12f986..01b2251d 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java @@ -1,5 +1,6 @@ package com.nflg.wms.common.pojo.qo; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -16,7 +17,19 @@ public class StructuralPackageOrderReceiveQO { private Long id; /** - * 该订单下包含的托盘号 + * 上架仓库 + */ + @NotBlank + private String warehouse; + + /** + * 储位列表 + */ + @NotEmpty + private List binNos; + + /** + * 包含的托盘号 */ @NotEmpty private List trayNos; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderVO.java index 70352f8b..babcc209 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderVO.java @@ -164,4 +164,9 @@ public class DeliverStructuralPackageOrderVO { * 是否存在缺货零件 */ private Boolean quehuo; + + /** + * 工厂编号 + */ + private String factoryNo; } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml index 77be5f0a..bece4445 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml @@ -50,12 +50,13 @@