From 03dc0985de45ba2393ce9cbd4cfa17ab58edd1c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Mon, 28 Jul 2025 18:37:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...roller.java => NormalOrderController.java} | 34 +--- .../StructuralPackageOrderController.java | 187 ++++++++++++++---- .../document/PackageMaterialScanRecord.java | 38 +++- .../PackageMaterialScanRecordItem.java | 30 --- .../pojo/dto/SAPMaterialInfoInOrderDTO.java | 15 ++ .../nflg/wms/admin/pojo/dto/ZIM003DTO.java | 21 ++ .../wms/admin/pojo/dto/ZIM003Item1DTO.java | 29 +++ .../nflg/wms/admin/service/SapService.java | 29 ++- .../pojo/qo/DeliverNormalOrderSaveItemQO.java | 7 - .../wms/common/pojo/qo/InTaskSearchQO.java | 19 ++ .../common/pojo/qo/MaterailStorageItemQO.java | 29 +++ .../wms/common/pojo/qo/MaterailStorageQO.java | 23 +++ .../nflg/wms/common/pojo/vo/InTaskInfoVO.java | 59 ++++++ .../com/nflg/wms/common/pojo/vo/InTaskVO.java | 31 +++ .../vo/StructuralPackageDeliverOrderVO.java | 4 +- .../wms/repository/entity/WmsInTaskItem.java | 13 +- ...ormalOrderPrint.java => WmsInventory.java} | 46 +++-- ...malOrder.java => WmsNormalPrintOrder.java} | 13 +- .../WmsStructuralPackageDeliverOrder.java | 2 +- .../WmsDeliverNormalOrderPrintMapper.java | 16 -- .../repository/mapper/WmsInTaskMapper.java | 5 + .../repository/mapper/WmsInventoryMapper.java | 16 ++ ...er.java => WmsNormalPrintOrderMapper.java} | 4 +- .../repository/mapper/WmsStorageMapper.java | 2 + ...msStructuralPackageDeliverOrderMapper.java | 5 + .../IWmsDeliverNormalOrderPrintService.java | 16 -- .../service/IWmsInTaskItemService.java | 9 +- .../repository/service/IWmsInTaskService.java | 11 +- .../service/IWmsInventoryService.java | 16 ++ .../service/IWmsNormalPrintOrderService.java | 16 ++ .../service/IWmsStorageService.java | 2 + ...sStructuralPackageDeliverOrderService.java | 7 + ...e.java => WmsNormalPrintOrderService.java} | 4 +- ...WmsDeliverNormalOrderPrintServiceImpl.java | 20 -- .../impl/WmsInTaskItemServiceImpl.java | 33 +++- .../service/impl/WmsInTaskServiceImpl.java | 19 +- .../service/impl/WmsInventoryServiceImpl.java | 20 ++ ...va => WmsNormalPrintOrderServiceImpl.java} | 8 +- .../service/impl/WmsStorageServiceImpl.java | 5 + ...ucturalPackageDeliverOrderServiceImpl.java | 25 +++ .../main/resources/mapper/WmsInTaskMapper.xml | 8 + ...PrintMapper.xml => WmsInventoryMapper.xml} | 2 +- ...pper.xml => WmsNormalPrintOrderMapper.xml} | 6 +- .../resources/mapper/WmsStorageMapper.xml | 8 + ...WmsStructuralPackageDeliverOrderMapper.xml | 26 +++ .../wms/repository/CodeGeneratorTest.java | 2 +- .../processor/SyncStorageToSAPProcessor.java | 64 ++++++ .../wms/scheduled/service/SapService.java | 32 +++ 48 files changed, 837 insertions(+), 199 deletions(-) rename nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/{NormalDeliverOrderController.java => NormalOrderController.java} (83%) delete mode 100644 nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecordItem.java create mode 100644 nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003DTO.java create mode 100644 nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003Item1DTO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/InTaskSearchQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageItemQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskInfoVO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskVO.java rename nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/{WmsDeliverNormalOrderPrint.java => WmsInventory.java} (57%) rename nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/{WmsDeliverNormalOrder.java => WmsNormalPrintOrder.java} (89%) delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderPrintMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInventoryMapper.java rename nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/{WmsDeliverNormalOrderMapper.java => WmsNormalPrintOrderMapper.java} (80%) delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderPrintService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInventoryService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsNormalPrintOrderService.java rename nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/{IWmsDeliverNormalOrderService.java => WmsNormalPrintOrderService.java} (82%) delete mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderPrintServiceImpl.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInventoryServiceImpl.java rename nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/{WmsDeliverNormalOrderServiceImpl.java => WmsNormalPrintOrderServiceImpl.java} (74%) rename nflg-wms-repository/src/main/resources/mapper/{WmsDeliverNormalOrderPrintMapper.xml => WmsInventoryMapper.xml} (65%) rename nflg-wms-repository/src/main/resources/mapper/{WmsDeliverNormalOrderMapper.xml => WmsNormalPrintOrderMapper.xml} (92%) create mode 100644 nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageToSAPProcessor.java diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalDeliverOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java similarity index 83% rename from nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalDeliverOrderController.java rename to nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java index 494d4ca1..f38d7051 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalDeliverOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalOrderController.java @@ -19,12 +19,10 @@ import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO; import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrder; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint; +import com.nflg.wms.repository.entity.WmsNormalPrintOrder; import com.nflg.wms.repository.entity.WmsWorkbench; -import com.nflg.wms.repository.service.IWmsDeliverNormalOrderPrintService; -import com.nflg.wms.repository.service.IWmsDeliverNormalOrderService; import com.nflg.wms.repository.service.IWmsWorkbenchService; +import com.nflg.wms.repository.service.WmsNormalPrintOrderService; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; @@ -44,21 +42,18 @@ import java.util.*; import java.util.stream.Collectors; /** - * 常规送货单订单管理 + * 普通物料订单管理 */ @RestController @RequestMapping("/deliver/order/normal") -public class NormalDeliverOrderController extends BaseController { +public class NormalOrderController extends BaseController { @Resource - private IWmsDeliverNormalOrderService deliverNormalOrderService; + private WmsNormalPrintOrderService deliverNormalOrderService; @Resource private IWmsWorkbenchService workbenchService; - @Resource - private IWmsDeliverNormalOrderPrintService deliverNormalOrderPrintService; - /** * 保存 */ @@ -77,16 +72,16 @@ public class NormalDeliverOrderController extends BaseController { List ids= request.getItems().stream().map(DeliverNormalOrderSaveItemQO::getId).filter(Objects::nonNull).toList(); String orderNo; if (CollectionUtil.isNotEmpty(ids)) { - Set orderNos = deliverNormalOrderService.lambdaQuery().select(WmsDeliverNormalOrder::getOrderNo).in(WmsDeliverNormalOrder::getId).list().stream().map(WmsDeliverNormalOrder::getOrderNo).collect(Collectors.toSet()); + Set orderNos = deliverNormalOrderService.lambdaQuery().select(WmsNormalPrintOrder::getOrderNo).in(WmsNormalPrintOrder::getId).list().stream().map(WmsNormalPrintOrder::getOrderNo).collect(Collectors.toSet()); VUtil.trueThrowBusinessError(orderNos.size() > 1).throwMessage("单据号不一致"); orderNo = orderNos.iterator().next(); } else { orderNo = getDeliverNormalOrderNo(); } - List forAdd=new ArrayList<>(); - List forUpdate=new ArrayList<>(); + List forAdd=new ArrayList<>(); + List forUpdate=new ArrayList<>(); request.getItems().forEach(it -> { - WmsDeliverNormalOrder item= Convert.convert(WmsDeliverNormalOrder.class, it); + WmsNormalPrintOrder item= Convert.convert(WmsNormalPrintOrder.class, it); item.setWorkbenchId(workbenches.stream().filter(w->Objects.equals(w.getNo(),it.getWorkbenchNo())).findFirst().get().getId()); if (Objects.isNull(item.getId())){ item.setOrderNo(orderNo); @@ -154,19 +149,11 @@ public class NormalDeliverOrderController extends BaseController { // .setBatchNo("TEST00001") // ); List datas = new ArrayList<>(); - List prints=new ArrayList<>(); for (DeliverNormalOrderVO order : orders) { - WmsDeliverNormalOrderPrint print=new WmsDeliverNormalOrderPrint(); - print.setDeliverId(order.getId()); - print.setBatchNum(order.getBatchNum()); - print.setMinPackageNum(order.getMinPackageNum()); - print.setLableNum(order.getLableNum()); - print.setNo(NoUtil.getForOrderPrintNo()); - prints.add(print); for (int i = 0; i < order.getLableNum(); i++) { DeliverNormalOrderItemDTO dto = Convert.convert(DeliverNormalOrderItemDTO.class, order); dto.setIndex(i); - dto.setPrintNo(print.getNo() + "-" + i); + dto.setPrintNo(order.getId() + "-" + i); if (i == order.getLableNum() - 1) { dto.setPrintNum(order.getBatchNum().divideAndRemainder(order.getMinPackageNum())[1]); } else { @@ -176,7 +163,6 @@ public class NormalDeliverOrderController extends BaseController { datas.add(dto); } } - deliverNormalOrderPrintService.saveBatch(prints); Map variables = new HashMap<>(); variables.put("list", datas); String html = ThymeleafUtil.generator("/template/qrcode/", "dp", ".html", variables); 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 bea71936..b9dedeb9 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 @@ -14,8 +14,9 @@ import cn.idev.excel.metadata.data.WriteCellData; import cn.idev.excel.write.metadata.WriteSheet; import cn.idev.excel.write.metadata.fill.FillConfig; import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecord; -import com.nflg.wms.admin.pojo.document.PackageMaterialScanRecordItem; import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO; +import com.nflg.wms.admin.pojo.dto.ZIM003DTO; +import com.nflg.wms.admin.pojo.dto.ZIM003Item1DTO; import com.nflg.wms.admin.repository.PackageMaterialScanRecordRepository; import com.nflg.wms.admin.service.SapService; import com.nflg.wms.admin.util.NoUtil; @@ -104,9 +105,18 @@ public class StructuralPackageOrderController extends BaseController { @Resource private IWmsInTaskService inTaskService; + @Resource + private IWmsInTaskItemService inTaskItemService; + @Resource private IUserSupplierService userSupplierService; + @Resource + private IWmsInventoryService inventoryService; + + @Resource + private IWmsStorageService storageService; + /** * 搜索SAP订单 * @param request 请求参数 @@ -245,6 +255,7 @@ public class StructuralPackageOrderController extends BaseController { /** * 搜索 + * @param request 请求参数 */ @PostMapping("search") public ApiResult> search(@Valid @RequestBody StructuralPackageOrderSearchQO request) { @@ -253,7 +264,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 根据单据号获取列表 - * * @param orderNo 单据号 */ @GetMapping("getList") @@ -295,6 +305,7 @@ public class StructuralPackageOrderController extends BaseController { /** * 删除 + * @param ids 要删除的id列表 */ @PostMapping("delete") public ApiResult delete(@Valid @RequestBody @NotEmpty List ids) { @@ -304,6 +315,7 @@ public class StructuralPackageOrderController extends BaseController { /** * 根据订单状态搜索 + * @param request 请求参数 */ @PostMapping("searchByState") public ApiResult> searchByState(@Valid @RequestBody StructuralPackageOrderSearchByStateQO request) { @@ -312,7 +324,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出选中的id列表 - * * @param ids id列表 */ @PostMapping("exportByIds") @@ -323,7 +334,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出搜索结果 - * * @param request 搜索参数 */ @PostMapping("exportSearchByState") @@ -337,7 +347,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 获取托盘零件列表 - * * @param id 托盘id */ @GetMapping("getItems") @@ -347,7 +356,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出托盘零件列表 - * * @param id 托盘id */ @PostMapping("exportItems") @@ -358,7 +366,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出老鼠图PDF - * * @param id 托盘id */ @GetMapping("exportPdf") @@ -401,7 +408,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出零件标签PDF - * * @param id 托盘id */ @GetMapping("exportItemPdf") @@ -427,7 +433,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出托盘标签PDF - * * @param id 托盘id */ @GetMapping("exportTrayPdf") @@ -444,7 +449,6 @@ public class StructuralPackageOrderController extends BaseController { /** * 导出齐套标签PDF - * * @param id 托盘id */ @GetMapping("exportQiTaoPdf") @@ -490,22 +494,42 @@ public class StructuralPackageOrderController extends BaseController { .eq(WmsStructuralPackageOrderTray::getState, OrderState.Unpackaged.getState()) .eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo()) .update()).throwMessage("打包失败,请重试"); - packageMaterialScanRecordRepository.saveAll(request.getQrCodes().stream().map(qrCode -> { + saveMaterialQrCodeScanRecord(request.getQrCodes(),1); + return ApiResult.success(); + } + + /** + * 保存物料二维码扫描记录 + * @param content 二维码内容列表 + * @param type 类型 + */ + private void saveMaterialQrCodeScanRecord(List content,Integer type){ + packageMaterialScanRecordRepository.saveAll(content.stream().map(qrCode -> { List qrContents = StrUtil.split(qrCode, "^"); if (CollectionUtil.isEmpty(qrContents)) { - return null; + qrContents=StrUtil.split(qrContents.get(1), "_"); + return new PackageMaterialScanRecord() + .setUniqNo(qrCode) + .setContent(qrCode) + .setMaterialNo(qrContents.get(0)) + .setTrayNo(qrContents.get(1)) + .setType(type) + .setNum(qrContents.get(2)) + .setCreateBy(UserUtil.getUserName()) + .setCreateTime(Instant.now()); + }else { + List datas = StrUtil.split(qrContents.get(1), "_"); + return new PackageMaterialScanRecord() + .setUniqNo(qrContents.get(0)) + .setContent(qrCode) + .setMaterialNo(datas.get(0)) + .setTrayNo(datas.get(1)) + .setType(type) + .setNum(datas.get(2)) + .setCreateBy(UserUtil.getUserName()) + .setCreateTime(Instant.now()); } - List datas = StrUtil.split(qrContents.get(1), "_"); - return new PackageMaterialScanRecord() - .setUniqNo(qrContents.get(0)) - .setContent(qrContents.get(1)) - .setMaterialNo(datas.get(0)) - .setRecords(List.of(new PackageMaterialScanRecordItem() - .setType(1) - .setCreateBy(UserUtil.getUserName()) - .setCreateTime(Instant.now()))); - }).toList()); - return ApiResult.success(); + }).filter(Objects::nonNull).toList()); } /** @@ -569,6 +593,15 @@ public class StructuralPackageOrderController extends BaseController { return ApiResult.success(structuralPackageDeliverOrderService.search(request)); } + /** + * 获取送货单详情信息 + * @param id 送货单ID + */ + @GetMapping("getDeliverOrderInfo") + public ApiResult> getDeliverOrderInfo(@Valid @RequestParam @NotNull Long id){ + return ApiResult.success(structuralPackageDeliverOrderService.getInfo(id)); + } + /** * 导出送货单 * @param id 送货单id @@ -685,24 +718,102 @@ public class StructuralPackageOrderController extends BaseController { .eq(WmsStructuralPackageOrderTray::getOrderId, request.getId()) .eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState()) .update(); + structuralPackageDeliverOrderService.updateStateByOrderId(request.getId()); //创建上架任务 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("套") - .setIsQuality(false) - .setUnqualifiedQty(BigDecimal.ZERO) - .setQualifiedQty(BigDecimal.valueOf(order.getNum())) - .setFactory("1010") - .setDataStatus((short)0) - .setOperationUserId(UserUtil.getUserId()) - .setOperationUserName(UserUtil.getUserName()) - .setBatchNumber(order.getModelNo())), (short) 1)) + .setPoNum(order.getExternalOrderNo()) + .setPoLineNumber(order.getRowNo()) + .setLineNumber(String.valueOf(order.getId())) + .setNoteNum(structuralPackageDeliverOrderService.getNoByOrderId(request.getId())) + .setItemCode(order.getPackageNo()) + .setItemName(order.getPackageDesc()) + .setUnit("套") + .setIsQuality(false) + .setUnqualifiedQty(BigDecimal.ZERO) + .setQualifiedQty(BigDecimal.valueOf(order.getNum())) + .setFactory("1010") + .setDataStatus((short) 0) + .setReceivedWarehouse(storageService.getWarehouseNo("1010",order.getPackageNo())) + .setOperationUserId(UserUtil.getUserId()) + .setOperationUserName(UserUtil.getUserName()) + .setBatchNumber(order.getModelNo())), (short) 1)) .throwMessage("创建上架任务失败"); return ApiResult.success(); } + + /** + * 搜索上架任务列表(PDA使用) + * @param request 请求参数 + */ + @PostMapping("searchIn") + public ApiResult> searchIn(@Valid @RequestBody @NotNull InTaskSearchQO request){ + return ApiResult.success(inTaskService.searchForIn(request)); + } + + /** + * 获取上架任务详情(PDA使用) + * @param taskNo 上架任务单号 + */ + @GetMapping("getInTaskInfo") + public ApiResult> getInTaskInfo(@Valid @RequestParam @NotNull String taskNo) { + List list = inTaskItemService.getListForStorage(taskNo); + List datas = Convert.toList(InTaskInfoVO.class, list); + for (InTaskInfoVO item : datas) { + SAPSyncFromDTO dto = sapService.getStorage(item.getFactory(), item.getReceivedWarehouse(), item.getItemCode()); + if (Objects.nonNull(dto)) { + item.setBinNos(dto.getBinNos()); + } + } + return ApiResult.success(datas); + } + + /** + * 上架(PDA使用) + * @param request 请求参数 + */ + @Transactional + @PostMapping("materialStorage") + public ApiResult materialStorage(@Valid @RequestBody @NotNull MaterailStorageQO request) { + WmsInTask task=inTaskService.lambdaQuery().eq(WmsInTask::getTaskNumber, request.getTaskNo()).one(); + VUtil.trueThrowBusinessError(Objects.isNull(task)).throwMessage("任务不存在"); + inTaskService.storage(request.getTaskNo()); + List datas = inTaskItemService.storage(request); + if (CollectionUtil.isNotEmpty(datas)) { + inventoryService.saveBatch(datas.stream().map(ti -> { + BigDecimal num = request.getItems().stream() + .filter(it -> StrUtil.equals(it.getMaterialNo(), ti.getItemCode())) + .findFirst() + .get() + .getNum(); + BigDecimal total = Objects.isNull(num) ? ti.getQualifiedQty() : ti.getQualifiedQty().subtract(num); + SAPMaterialInfoInOrderDTO dto = sapService.getMaterialInfoInOrder(ti.getPoNum(), ti.getSupplierNum(), ti.getItemCode()); + sapService.zim003(new ZIM003DTO() + .setEbeln(dto.getEbeln()) + .setUsnam(UserUtil.getUserName()) + .setItem(new ZIM003Item1DTO() + .setEBELP(dto.getEbelp()) + .setMATNR(ti.getItemCode()) + .setERFMG(String.valueOf(total)) + .setMEINS("套") + .setCHARG(ti.getBatchNumber()) + .setWERKS(ti.getFactory()) + .setLGORT(ti.getReceivedWarehouse()) + .setKZKRI(ti.getIsQuality() ? "1" : "0") + ) + ); + return new WmsInventory() + .setMaterialNo(ti.getItemCode()) + .setNum(total) + .setFactoryNo(ti.getFactory()) + .setWarehouseNo(ti.getReceivedWarehouse()) + .setBinNos(ti.getStorageLocation()) + .setExternalOrderNo(ti.getPoNum()) + .setRowNo(ti.getPoLineNumber()) + .setCreateBy(UserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()); + }).toList() + ); + } + return ApiResult.success(); + } } \ No newline at end of file diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecord.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecord.java index c52725e7..05650629 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecord.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecord.java @@ -5,7 +5,7 @@ import lombok.experimental.Accessors; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; -import java.util.List; +import java.time.Instant; @Data @Accessors(chain = true) @@ -31,7 +31,37 @@ public class PackageMaterialScanRecord { private String content; /** - * 扫描记录 + * 托盘号 */ - private List records; -} + private String trayNo; + + /** + * 批次号 + */ + private String batchNo; + + /** + * 序列号 + */ + private String serialNo; + + /** + * 数量 + */ + private String num; + + /** + * 扫描类型,1:打包 + */ + private Integer type; + + /** + * 创建人 + */ + private String createBy; + + /** + * 创建时间 + */ + private Instant createTime; +} \ No newline at end of file diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecordItem.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecordItem.java deleted file mode 100644 index 0bfc3366..00000000 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/document/PackageMaterialScanRecordItem.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.nflg.wms.admin.pojo.document; - -import lombok.Data; -import lombok.experimental.Accessors; -import org.springframework.data.annotation.Id; - -import java.time.Instant; - -@Data -@Accessors(chain = true) -public class PackageMaterialScanRecordItem { - - @Id - private String id; - - /** - * 扫描类型,1:打包 - */ - private Integer type; - - /** - * 创建人 - */ - private String createBy; - - /** - * 创建时间 - */ - private Instant createTime; -} diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/SAPMaterialInfoInOrderDTO.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/SAPMaterialInfoInOrderDTO.java index 3848c4a7..cec3720e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/SAPMaterialInfoInOrderDTO.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/SAPMaterialInfoInOrderDTO.java @@ -18,4 +18,19 @@ public class SAPMaterialInfoInOrderDTO { * 仓库编号 */ private String warehouseNo; + + /** + * 采购凭证号 + */ + private String ebeln; + + /** + * 采购凭证的项目编号 + */ + private String ebelp; + + /** + * 打印参数 + */ + private String lbprt; } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003DTO.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003DTO.java new file mode 100644 index 00000000..4f844f93 --- /dev/null +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003DTO.java @@ -0,0 +1,21 @@ +package com.nflg.wms.admin.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class ZIM003DTO { + + /** + * 采购凭证号 + */ + private String ebeln; + + /** + * 用户名 + */ + private String usnam; + + private ZIM003Item1DTO item; +} diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003Item1DTO.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003Item1DTO.java new file mode 100644 index 00000000..0c96f7e6 --- /dev/null +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/dto/ZIM003Item1DTO.java @@ -0,0 +1,29 @@ +package com.nflg.wms.admin.pojo.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class ZIM003Item1DTO { + + private String EBELP; + + private String MATNR; + + private String ERFMG; + + private String MEINS; + + private String CHARG; + + private String WERKS; + + private String LGORT; + + private String KZKRI; + + private String SERNR; + + private String FLAG; +} diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java index 14d0ba8b..01ef74be 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java @@ -3,6 +3,7 @@ package com.nflg.wms.admin.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONUtil; import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO; +import com.nflg.wms.admin.pojo.dto.ZIM003DTO; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.dto.SAPOrderDTO; @@ -24,6 +25,29 @@ public class SapService { @Resource private JCoRepository repository; + /** + * 扫码入库 + * @param dto 数据 + */ + public void zim003(ZIM003DTO dto){ + Map parameters = new HashMap<>(); + parameters.put("EBELP", dto.getEbeln()); + parameters.put("USNAM", dto.getUsnam()); + + + } + + /** + * 获取库存信息 + * @param factory 工厂编号 + * @param warehouseNo 仓库编号 + * @param materialNo 物料编号 + */ + public SAPSyncFromDTO getStorage(String factory, String warehouseNo,String materialNo) { + return getStorage(factory, Collections.singletonList(warehouseNo), Collections.singletonList(materialNo), null, null) + .stream().findFirst().orElse(null); + } + /** * 获取库存信息 * @param factory 工厂编号 @@ -89,7 +113,10 @@ public class SapService { tOut.setRow(0); return new SAPMaterialInfoInOrderDTO() .setTransportNum(tOut.getBigDecimal("WSHSL")) - .setWarehouseNo(tOut.getString("LGORT")); + .setWarehouseNo(tOut.getString("LGORT")) + .setEbeln(tOut.getString("EBELN")) + .setEbelp(tOut.getString("EBELP")) + .setLbprt(tOut.getString("LBPRT")); } /** diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/DeliverNormalOrderSaveItemQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/DeliverNormalOrderSaveItemQO.java index 36c5fcdd..d3b97d05 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/DeliverNormalOrderSaveItemQO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/DeliverNormalOrderSaveItemQO.java @@ -1,6 +1,5 @@ package com.nflg.wms.common.pojo.qo; -import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; @@ -10,12 +9,6 @@ public class DeliverNormalOrderSaveItemQO { private Long id; - /** - * 订单类型,0:采购单;1:送货单 - */ - @NotNull - private Integer type; - /** * 送货单号 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/InTaskSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/InTaskSearchQO.java new file mode 100644 index 00000000..84b65b59 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/InTaskSearchQO.java @@ -0,0 +1,19 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class InTaskSearchQO { + + /** + * 任务来源 1、钢构包送货单 2、普通物料送货单 + */ + @NotNull + private short taskFrom; + + /** + * 任务单号或原始单号 + */ + private String no; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageItemQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageItemQO.java new file mode 100644 index 00000000..ffafbac8 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageItemQO.java @@ -0,0 +1,29 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +public class MaterailStorageItemQO { + + /** + * 物料编号 + */ + @NotBlank + private String materialNo; + + /** + * 储位列表 + */ + @NotEmpty + private List binNos; + + /** + * 越库数量 + */ + private BigDecimal num=BigDecimal.ZERO; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageQO.java new file mode 100644 index 00000000..dfba8c80 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/MaterailStorageQO.java @@ -0,0 +1,23 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + +@Data +public class MaterailStorageQO { + + /** + * 上架任务单号 + */ + @NotBlank + private String taskNo; + + /** + * 物料储位设置 + */ + @NotEmpty + private List items; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskInfoVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskInfoVO.java new file mode 100644 index 00000000..ef59e9d2 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskInfoVO.java @@ -0,0 +1,59 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class InTaskInfoVO { + + /** + * 子任务id + */ + private Long id; + + /** + * 采购订单号 + */ + private String poNum; + + /** + * 采购订单行号 + */ + private String poLineNumber; + + /** + * 工厂 + */ + private String factory; + + /** + * 送货单号 + */ + private String noteNum; + + /** + * 物料编号 + */ + private String itemCode; + + /** + * 物料描述 + */ + private String itemName; + + /** + * 上架数量 + */ + private BigDecimal qualifiedQty; + + /** + * 上架仓库 + */ + private String receivedWarehouse; + + /** + * 上架储位 + */ + private String binNos; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskVO.java new file mode 100644 index 00000000..7a7d8004 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InTaskVO.java @@ -0,0 +1,31 @@ +package com.nflg.wms.common.pojo.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class InTaskVO { + + private Long id; + + /** + * 任务单号 + */ + private String taskNumber; + + /** + * 任务来源 1、钢构包送货单 2、普通物料送货单 + */ + private Short taskFrom; + + /** + * 任务源单号 + */ + private String orderNumber; + + /** + * 任务时间 + */ + private LocalDateTime updateTime; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/StructuralPackageDeliverOrderVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/StructuralPackageDeliverOrderVO.java index 2dc98553..624eb567 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/StructuralPackageDeliverOrderVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/StructuralPackageDeliverOrderVO.java @@ -49,12 +49,12 @@ public class StructuralPackageDeliverOrderVO { /** * 供应商代码 */ - private Long supplierCode; + private String supplierCode; /** * 供应商名称 */ - private Long supplierName; + private String supplierName; /** * 工厂编号 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInTaskItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInTaskItem.java index 1cdb131a..b9d7d71d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInTaskItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInTaskItem.java @@ -34,8 +34,14 @@ public class WmsInTaskItem implements Serializable { private String taskNumber; + /** + * 采购订单行号 + */ private String poLineNumber; + /** + * 采购订单号 + */ private String poNum; /** @@ -148,5 +154,10 @@ public class WmsInTaskItem implements Serializable { */ private LocalDateTime periodTime; - private String inspectionOrder; + private String inspectionOrder; + + /** + * 供应商编码 + */ + private String supplierNum; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrderPrint.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventory.java similarity index 57% rename from nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrderPrint.java rename to nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventory.java index 92456330..01ed76a7 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrderPrint.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsInventory.java @@ -14,7 +14,7 @@ import java.time.LocalDateTime; /** *

- * 送货单(普通物料)打印记录 + * *

* * @author 代码生成器生成 @@ -24,8 +24,8 @@ import java.time.LocalDateTime; @Setter @ToString @Accessors(chain = true) -@TableName("wms_deliver_normal_order_print") -public class WmsDeliverNormalOrderPrint implements Serializable { +@TableName("wms_inventory") +public class WmsInventory implements Serializable { private static final long serialVersionUID = 1L; @@ -33,29 +33,29 @@ public class WmsDeliverNormalOrderPrint implements Serializable { private Long id; /** - * 单据id + * 物料编号 */ - private Long deliverId; + private String materialNo; /** - * 唯一码 + * 工厂编号 */ - private String no; + private String factoryNo; /** - * 本批数量 + * 仓库编号 */ - private BigDecimal batchNum; + private String warehouseNo; /** - * 最小包装数量 + * 储位编号,逗号分隔 */ - private BigDecimal minPackageNum; + private String binNos; /** - * 标签数量 + * 数量 */ - private Integer lableNum; + private BigDecimal num; /** * 创建人 @@ -66,4 +66,24 @@ public class WmsDeliverNormalOrderPrint implements Serializable { * 创建时间 */ private LocalDateTime createTime; + + /** + * 最后更新人 + */ + private String updateBy; + + /** + * 最后更新时间 + */ + private LocalDateTime updateTime; + + /** + * 采购单订单号 + */ + private String externalOrderNo; + + /** + * 采购单订单行号 + */ + private String rowNo; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrder.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsNormalPrintOrder.java similarity index 89% rename from nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrder.java rename to nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsNormalPrintOrder.java index 4af3ac7e..04beab77 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsDeliverNormalOrder.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsNormalPrintOrder.java @@ -24,8 +24,8 @@ import java.time.LocalDateTime; @Setter @ToString @Accessors(chain = true) -@TableName("wms_deliver_normal_order") -public class WmsDeliverNormalOrder implements Serializable { +@TableName("wms_normal_print_order") +public class WmsNormalPrintOrder implements Serializable { private static final long serialVersionUID = 1L; @@ -42,23 +42,18 @@ public class WmsDeliverNormalOrder implements Serializable { */ private Long supplierId; - /** - * 订单类型,0:采购单;1:送货单 - */ - private Integer type; - /** * 送货单号 */ private String externalDeliverNo; /** - * 订单号 + * 采购单订单号 */ private String externalOrderNo; /** - * 订单行号 + * 采购单订单行号 */ private String rowNo; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageDeliverOrder.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageDeliverOrder.java index be2b72d8..9dfc83a0 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageDeliverOrder.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageDeliverOrder.java @@ -37,7 +37,7 @@ public class WmsStructuralPackageDeliverOrder implements Serializable { private String no; /** - * 状态,0:待收货;1:已收货;2-已完结; + * 状态,0:待收货;1:收货中;2:已收货 */ private Short state; diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderPrintMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderPrintMapper.java deleted file mode 100644 index ef17d6cf..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderPrintMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.nflg.wms.repository.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint; - -/** - *

- * 送货单(普通物料)打印记录 Mapper 接口 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -public interface WmsDeliverNormalOrderPrintMapper extends BaseMapper { - -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInTaskMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInTaskMapper.java index 1aba6dde..24f6b7e5 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInTaskMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInTaskMapper.java @@ -1,8 +1,12 @@ package com.nflg.wms.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.common.pojo.qo.InTaskSearchQO; +import com.nflg.wms.common.pojo.vo.InTaskVO; import com.nflg.wms.repository.entity.WmsInTask; +import java.util.List; + /** *

* Mapper 接口 @@ -13,4 +17,5 @@ import com.nflg.wms.repository.entity.WmsInTask; */ public interface WmsInTaskMapper extends BaseMapper { + List searchForIn(InTaskSearchQO request); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInventoryMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInventoryMapper.java new file mode 100644 index 00000000..293784b3 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsInventoryMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.WmsInventory; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface WmsInventoryMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsNormalPrintOrderMapper.java similarity index 80% rename from nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderMapper.java rename to nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsNormalPrintOrderMapper.java index 9d5b75ae..343a5041 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsDeliverNormalOrderMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsNormalPrintOrderMapper.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO; import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrder; +import com.nflg.wms.repository.entity.WmsNormalPrintOrder; import java.util.List; @@ -17,7 +17,7 @@ import java.util.List; * @author 代码生成器生成 * @since 2025 */ -public interface WmsDeliverNormalOrderMapper extends BaseMapper { +public interface WmsNormalPrintOrderMapper extends BaseMapper { IPage search(DeliverNormalOrderSearchQO request, Page page); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStorageMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStorageMapper.java index cbf4e0a3..30cbcf93 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStorageMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStorageMapper.java @@ -25,4 +25,6 @@ public interface WmsStorageMapper extends BaseMapper { List getList(List ids); List searchNonPage(@Param("request") StorageSearchQO request); + + String getWarehouseNo(String factoryNo, String materialNo); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageDeliverOrderMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageDeliverOrderMapper.java index 10288013..11d2cf82 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageDeliverOrderMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageDeliverOrderMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO; +import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO; import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO; import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder; @@ -24,4 +25,8 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper getIdsByExternalOrderNo(String externalOrderNo); String getNoByOrderId(Long id); + + boolean allReceived(Long deliverId); + + List getInfo(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderPrintService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderPrintService.java deleted file mode 100644 index b240d691..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderPrintService.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.nflg.wms.repository.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint; - -/** - *

- * 送货单(普通物料)打印记录 服务类 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -public interface IWmsDeliverNormalOrderPrintService extends IService { - -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskItemService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskItemService.java index 1f62ee21..84e00280 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskItemService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskItemService.java @@ -1,7 +1,10 @@ package com.nflg.wms.repository.service; -import com.nflg.wms.repository.entity.WmsInTaskItem; import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.common.pojo.qo.MaterailStorageQO; +import com.nflg.wms.repository.entity.WmsInTaskItem; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import java.util.List; @@ -14,4 +17,8 @@ import java.util.List; * @since 2025 */ public interface IWmsInTaskItemService extends IService { + + List getListForStorage(@Valid @NotNull String taskNo); + + List storage(@Valid @NotNull MaterailStorageQO request); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskService.java index 1e2ea320..1b83ef35 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInTaskService.java @@ -1,8 +1,13 @@ package com.nflg.wms.repository.service; -import com.nflg.wms.repository.entity.WmsInTask; import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.common.pojo.qo.InTaskSearchQO; +import com.nflg.wms.common.pojo.vo.InTaskVO; +import com.nflg.wms.repository.entity.WmsInTask; import com.nflg.wms.repository.entity.WmsInTaskItem; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.util.List; @@ -23,4 +28,8 @@ public interface IWmsInTaskService extends IService { * @return */ boolean generateTask(List tasks, short taskSource) ; + + List searchForIn(@Valid @NotNull InTaskSearchQO request); + + void storage(@NotBlank String taskNo); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInventoryService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInventoryService.java new file mode 100644 index 00000000..9482d0ff --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsInventoryService.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.WmsInventory; + +/** + *

+ * 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IWmsInventoryService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsNormalPrintOrderService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsNormalPrintOrderService.java new file mode 100644 index 00000000..e64aee81 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsNormalPrintOrderService.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.WmsNormalPrintOrder; + +/** + *

+ * 送货单(普通物料) 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IWmsNormalPrintOrderService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStorageService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStorageService.java index 9a8ecb86..37e014f8 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStorageService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStorageService.java @@ -34,4 +34,6 @@ public interface IWmsStorageService extends IService { List getList(List ids); List searchNonPage(@Valid StorageSearchQO request); + + String getWarehouseNo(String factoryNo,String materialNo); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageDeliverOrderService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageDeliverOrderService.java index 6230aab8..f8fb46d2 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageDeliverOrderService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageDeliverOrderService.java @@ -3,11 +3,14 @@ package com.nflg.wms.repository.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO; +import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO; import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO; import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import java.util.List; + /** *

* 服务类 @@ -21,4 +24,8 @@ public interface IWmsStructuralPackageDeliverOrderService extends IService search(@Valid @NotNull StructuralPackageDeliverOrderSearchQO request); String getNoByOrderId(@NotNull Long id); + + void updateStateByOrderId(@NotNull Long orderId); + + List getInfo(@Valid @NotNull Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/WmsNormalPrintOrderService.java similarity index 82% rename from nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderService.java rename to nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/WmsNormalPrintOrderService.java index d9aa9570..554143a3 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsDeliverNormalOrderService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/WmsNormalPrintOrderService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO; import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrder; +import com.nflg.wms.repository.entity.WmsNormalPrintOrder; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -18,7 +18,7 @@ import java.util.List; * @author 代码生成器生成 * @since 2025 */ -public interface IWmsDeliverNormalOrderService extends IService { +public interface WmsNormalPrintOrderService extends IService { void delete(@Valid @NotNull Long id); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderPrintServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderPrintServiceImpl.java deleted file mode 100644 index 9c4b985e..00000000 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderPrintServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.nflg.wms.repository.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrderPrint; -import com.nflg.wms.repository.mapper.WmsDeliverNormalOrderPrintMapper; -import com.nflg.wms.repository.service.IWmsDeliverNormalOrderPrintService; -import org.springframework.stereotype.Service; - -/** - *

- * 送货单(普通物料)打印记录 服务实现类 - *

- * - * @author 代码生成器生成 - * @since 2025 - */ -@Service -public class WmsDeliverNormalOrderPrintServiceImpl extends ServiceImpl implements IWmsDeliverNormalOrderPrintService { - -} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskItemServiceImpl.java index 082c9d50..b6f6a46d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskItemServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskItemServiceImpl.java @@ -1,10 +1,16 @@ package com.nflg.wms.repository.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.common.pojo.qo.MaterailStorageQO; import com.nflg.wms.repository.entity.WmsInTaskItem; import com.nflg.wms.repository.mapper.WmsInTaskItemMapper; import com.nflg.wms.repository.service.IWmsInTaskItemService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Objects; /** *

@@ -17,4 +23,29 @@ import org.springframework.stereotype.Service; @Service public class WmsInTaskItemServiceImpl extends ServiceImpl implements IWmsInTaskItemService { + @Override + public List getListForStorage(String taskNo) { + return lambdaQuery() + .eq(WmsInTaskItem::getTaskNumber, taskNo) + .eq(WmsInTaskItem::getDataStatus, 0) + .list(); + } + + @Transactional + @Override + public List storage(MaterailStorageQO request) { + return request.getItems().stream().map(item -> { + WmsInTaskItem taskItem = lambdaQuery() + .eq(WmsInTaskItem::getTaskNumber, request.getTaskNo()) + .eq(WmsInTaskItem::getDataStatus, 0) + .eq(WmsInTaskItem::getItemCode, item.getMaterialNo()) + .one(); + if (Objects.nonNull(taskItem)){ + taskItem.setDataStatus((short) 1); + taskItem.setStorageLocation(StrUtil.join(",", item.getBinNos())); + updateById(taskItem); + } + return taskItem; + }).filter(Objects::nonNull).toList(); + } } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskServiceImpl.java index e2993044..7d2fc0a5 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInTaskServiceImpl.java @@ -2,12 +2,14 @@ package com.nflg.wms.repository.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.common.pojo.qo.InTaskSearchQO; +import com.nflg.wms.common.pojo.vo.InTaskVO; import com.nflg.wms.repository.entity.WmsInTask; import com.nflg.wms.repository.entity.WmsInTaskItem; import com.nflg.wms.repository.mapper.WmsInTaskMapper; import com.nflg.wms.repository.service.IWmsInTaskItemService; import com.nflg.wms.repository.service.IWmsInTaskService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -82,4 +84,19 @@ public class WmsInTaskServiceImpl extends ServiceImpl searchForIn(InTaskSearchQO request) { + return baseMapper.searchForIn(request); + } + + @Override + public void storage(String taskNo) { + lambdaUpdate() + .set(WmsInTask::getTaskStatus, 2) + .set(WmsInTask::getUpdateTime, LocalDateTime.now()) + .lt(WmsInTask::getTaskStatus, 2) + .eq(WmsInTask::getTaskNumber, taskNo) + .update(); + } } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInventoryServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInventoryServiceImpl.java new file mode 100644 index 00000000..a9d1dc78 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsInventoryServiceImpl.java @@ -0,0 +1,20 @@ +package com.nflg.wms.repository.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.wms.repository.entity.WmsInventory; +import com.nflg.wms.repository.mapper.WmsInventoryMapper; +import com.nflg.wms.repository.service.IWmsInventoryService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class WmsInventoryServiceImpl extends ServiceImpl implements IWmsInventoryService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsNormalPrintOrderServiceImpl.java similarity index 74% rename from nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderServiceImpl.java rename to nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsNormalPrintOrderServiceImpl.java index 17bafc36..f5e9c821 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsDeliverNormalOrderServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsNormalPrintOrderServiceImpl.java @@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.wms.common.pojo.qo.DeliverNormalOrderSearchQO; import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO; -import com.nflg.wms.repository.entity.WmsDeliverNormalOrder; -import com.nflg.wms.repository.mapper.WmsDeliverNormalOrderMapper; -import com.nflg.wms.repository.service.IWmsDeliverNormalOrderService; +import com.nflg.wms.repository.entity.WmsNormalPrintOrder; +import com.nflg.wms.repository.mapper.WmsNormalPrintOrderMapper; +import com.nflg.wms.repository.service.WmsNormalPrintOrderService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -22,7 +22,7 @@ import java.util.List; * @since 2025 */ @Service -public class WmsDeliverNormalOrderServiceImpl extends ServiceImpl implements IWmsDeliverNormalOrderService { +public class WmsNormalPrintOrderServiceImpl extends ServiceImpl implements WmsNormalPrintOrderService { @Transactional @Override diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStorageServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStorageServiceImpl.java index 40cad79d..8ec8dd04 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStorageServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStorageServiceImpl.java @@ -89,4 +89,9 @@ public class WmsStorageServiceImpl extends ServiceImpl searchNonPage(StorageSearchQO request) { return baseMapper.searchNonPage(request); } + + @Override + public String getWarehouseNo(String factoryNo,String materialNo) { + return baseMapper.getWarehouseNo(factoryNo,materialNo); + } } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageDeliverOrderServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageDeliverOrderServiceImpl.java index bfdc3ff7..59fd4871 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageDeliverOrderServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageDeliverOrderServiceImpl.java @@ -5,12 +5,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.wms.common.pojo.qo.StructuralPackageDeliverOrderSearchQO; +import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderVO; import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO; +import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder; +import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrderMap; import com.nflg.wms.repository.mapper.WmsStructuralPackageDeliverOrderMapper; +import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderMapService; import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderService; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.util.List; /** @@ -24,6 +30,9 @@ import java.util.List; @Service public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl implements IWmsStructuralPackageDeliverOrderService { + @Resource + private IWmsStructuralPackageDeliverOrderMapService wmsStructuralPackageDeliverOrderMapService; + @Override public IPage search(StructuralPackageDeliverOrderSearchQO request) { List externalOrderIds = null; @@ -37,4 +46,20 @@ public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl getInfo(Long id) { + return baseMapper.getInfo(id); + } } diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsInTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsInTaskMapper.xml index fcc5b294..fba753e3 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsInTaskMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsInTaskMapper.xml @@ -2,4 +2,12 @@ + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderPrintMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsInventoryMapper.xml similarity index 65% rename from nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderPrintMapper.xml rename to nflg-wms-repository/src/main/resources/mapper/WmsInventoryMapper.xml index 2a37951c..c50c0a39 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderPrintMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsInventoryMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsNormalPrintOrderMapper.xml similarity index 92% rename from nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderMapper.xml rename to nflg-wms-repository/src/main/resources/mapper/WmsNormalPrintOrderMapper.xml index fce983dd..6b918325 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsDeliverNormalOrderMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsNormalPrintOrderMapper.xml @@ -1,9 +1,9 @@ - + select o.*,us.supplier_name,us.supplier_code, wb.no as workbench_no - from wms_deliver_normal_order o + from wms_normal_print_order o left join user_supplier us on o.supplier_id=us.user_id left join wms_workbench wb on o.workbench_id=wb.id where o.id in diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStorageMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStorageMapper.xml index 9178bf0a..00d9861e 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStorageMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStorageMapper.xml @@ -68,4 +68,12 @@ + + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml index 28286368..a335f6ea 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml @@ -42,4 +42,30 @@ inner join wms_structural_package_deliver_order_map pdom on pdo.id=pdom.deliver_id where pdom.order_id=#{id} + + + + diff --git a/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java b/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java index 3086f7c9..3ef32f02 100644 --- a/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java +++ b/nflg-wms-repository/src/test/java/com/nflg/wms/repository/CodeGeneratorTest.java @@ -33,7 +33,7 @@ public class CodeGeneratorTest { ) .strategyConfig(builder -> { builder - .addInclude("wms_srm_material_receipt") //只生成指定表 + .addInclude("wms_normal_print_order") //只生成指定表 .entityBuilder().idType(IdType.ASSIGN_ID) .enableLombok() .enableChainModel() diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageToSAPProcessor.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageToSAPProcessor.java new file mode 100644 index 00000000..87249119 --- /dev/null +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageToSAPProcessor.java @@ -0,0 +1,64 @@ +package com.nflg.wms.scheduled.processor; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.nflg.wms.repository.entity.WmsInTaskItem; +import com.nflg.wms.repository.service.IWmsInTaskItemService; +import com.nflg.wms.scheduled.service.SapService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; +import tech.powerjob.worker.log.OmsLogger; + +import java.util.List; + +/** + * 同步物料库存信息到SAP + */ +@Component(value = "SyncStorageToSAPProcessor") +public class SyncStorageToSAPProcessor implements BasicProcessor { + + @Resource + private SapService sapService; + + @Resource + private IWmsInTaskItemService inTaskItemService; + + @Override + public ProcessResult process(TaskContext context) { + OmsLogger log = context.getOmsLogger(); + String param = context.getInstanceParams(); + log.info("任务参数:" + param); + List ids = StrUtil.split(param, ',').stream().map(Long::parseLong).toList(); + List datas = inTaskItemService.lambdaQuery() + .in(CollectionUtil.isNotEmpty(ids), WmsInTaskItem::getId, ids) + .in(WmsInTaskItem::getDataStatus, List.of(1, 3)) + .list(); + log.info("待处理数据数量:" + datas.size()); + if (CollectionUtil.isNotEmpty(datas)) { + for (int i = 0; i < datas.size(); i++) { + WmsInTaskItem data = datas.get(i); + log.info("({}/{})处理数据:", i + 1, datas.size(), data.getItemCode()); + try { + sapService.saveStorage(data.getFactory(), data.getItemCode(), data.getReceivedWarehouse(), StrUtil.split(data.getStorageLocation(), ",")); + data.setDataStatus((short) 2); + } catch (Exception ex) { + data.setDataStatus((short) 3); + data.setFailResult(ex.getMessage()); + log.error("处理数据失败:{}", ex.getMessage()); + } finally { + inTaskItemService.lambdaUpdate() + .set(WmsInTaskItem::getDataStatus, data.getDataStatus()) + .set(WmsInTaskItem::getFailResult, data.getFailResult()) + .eq(WmsInTaskItem::getId, data.getId()) + .update(); + log.info("处理完成"); + } + } + } + log.info("处理完成"); + return new ProcessResult(true); + } +} diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapService.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapService.java index b4774b1d..1263f2a2 100644 --- a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapService.java +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapService.java @@ -1,8 +1,10 @@ package com.nflg.wms.scheduled.service; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO; +import com.nflg.wms.common.util.VUtil; import com.sap.conn.jco.*; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -20,6 +22,32 @@ public class SapService { @Resource private JCoRepository repository; + /** + * 保存库存 + * @param factory 工厂编号 + * @param materialNo 物料编号 + * @param warehouseNo 仓库编号 + * @param binNos 储位编号列表 + */ + public void saveStorage(String factory,String materialNo,String warehouseNo,List binNos) throws JCoException { + Map parameters = new HashMap<>(); + parameters.put("WERKS", factory); + parameters.put("MATNR", materialNo); + parameters.put("LGORT", warehouseNo); + parameters.put("LGPBE", StrUtil.join("/",binNos)); + + JCoTable tOut = exec("ZWM3A02", parameters); + + if (tOut.getNumRows() > 0){ + tOut.setRow(0); + VUtil.trueThrowBusinessError(StrUtil.equals(tOut.getString("E_TYPE"),"E")) + .throwMessage(tOut.getString("E_MSG")); + }else { + log.error("保存库存失败"); + VUtil.trueThrowBusinessError(true).throwMessage("保存库存失败"); + } + } + /** * 获取库存信息 * @param factory 工厂编号 @@ -63,6 +91,10 @@ public class SapService { return result; } + private JCoTable exec(String functionName, Map parameters) throws JCoException { + return exec(functionName, parameters, null); + } + private JCoTable exec(String functionName, Map parameters, Map>> tables) throws JCoException { JCoFunction function = repository.getFunction(functionName); log.info("SAP ImportParameter:{}", JSONUtil.toJsonStr(parameters));