From 58637851e45fb4a3935126f23d1e6073f27bc562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 24 Jul 2025 18:51:12 +0800 Subject: [PATCH] =?UTF-8?q?=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 --- nflg-wms-admin/pom.xml | 5 - .../StructuralPackageOrderController.java | 125 +++++++++++++++--- .../pojo/dto/SAPMaterialInfoInOrderDTO.java | 5 + .../nflg/wms/admin/service/SapService.java | 63 ++++++++- .../StructuralPackageControllerService.java | 6 +- .../nflg/wms/common/constant/OrderState.java | 4 +- .../common/pojo/dto/PackageMaterialDTO.java | 2 +- .../wms/common/pojo/dto/SAPSyncFromDTO.java | 2 +- .../qo/StructuralPackageOrderReceiveQO.java | 23 ++++ .../StructuralPackageStorageTaskSearchQO.java | 22 +++ ...tructuralPackageOrderForPackageItemVO.java | 21 +++ ...liverStructuralPackageOrderTrayItemVO.java | 9 +- .../nflg/wms/common/pojo/vo/TrayItemVO.java | 6 +- .../com/nflg/wms/common/util/BeanUtil.java | 11 ++ .../entity/WmsStructuralPackageOrderTray.java | 26 +++- .../WmsStructuralPackageOrderTrayItem.java | 6 +- .../WmsStructuralPackageStorageTask.java | 58 ++++++++ ...msStructuralPackageDeliverOrderMapper.java | 2 + ...WmsStructuralPackageStorageTaskMapper.java | 20 +++ ...sStructuralPackageDeliverOrderService.java | 2 + ...IWmsStructuralPackageOrderTrayService.java | 4 + ...msStructuralPackageStorageTaskService.java | 21 +++ .../service/impl/DepartmentServiceImpl.java | 4 +- .../service/impl/RoleServiceImpl.java | 6 +- ...ucturalPackageDeliverOrderServiceImpl.java | 10 +- ...StructuralPackageOrderTrayServiceImpl.java | 16 ++- ...ructuralPackageStorageTaskServiceImpl.java | 27 ++++ ...WmsStructuralPackageDeliverOrderMapper.xml | 7 + .../WmsStructuralPackageOrderMapper.xml | 14 +- .../WmsStructuralPackageStorageTaskMapper.xml | 26 ++++ .../wms/repository/CodeGeneratorTest.java | 2 +- .../SyncStorageFromSAPProcessor.java | 2 +- .../wms/scheduled/service/SapService.java | 2 +- .../wms/scheduled/service/SapTestService.java | 2 +- 34 files changed, 495 insertions(+), 66 deletions(-) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageStorageTaskSearchQO.java create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/util/BeanUtil.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageStorageTask.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageStorageTaskMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageStorageTaskService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageStorageTaskServiceImpl.java create mode 100644 nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageStorageTaskMapper.xml diff --git a/nflg-wms-admin/pom.xml b/nflg-wms-admin/pom.xml index 70c71b11..41faa6f7 100644 --- a/nflg-wms-admin/pom.xml +++ b/nflg-wms-admin/pom.xml @@ -61,11 +61,6 @@ org.springframework.boot spring-boot-starter-mail - - cglib - cglib - compile - commons-io commons-io 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 347796a5..1cdaa43f 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 @@ -3,6 +3,7 @@ package com.nflg.wms.admin.controller; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; @@ -20,8 +21,10 @@ import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; 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.qo.*; import com.nflg.wms.common.pojo.vo.*; +import com.nflg.wms.common.util.BeanUtil; import com.nflg.wms.common.util.EecExcelUtil; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; @@ -35,6 +38,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.transaction.annotation.Transactional; @@ -47,7 +51,6 @@ import java.io.InputStream; import java.math.BigDecimal; import java.net.URL; import java.time.Instant; -import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -55,6 +58,7 @@ import java.util.stream.Collectors; /** * 钢构件订单管理 */ +@Slf4j @RestController @RequestMapping("/deliver/order/package") public class StructuralPackageOrderController extends BaseController { @@ -89,6 +93,9 @@ public class StructuralPackageOrderController extends BaseController { @Resource private IWmsStructuralPackageDeliverOrderMapService structuralPackageDeliverOrderMapService; + @Resource + private IWmsStructuralPackageStorageTaskService structuralPackageStorageTaskService; + /** * 搜索SAP订单 * @param request 请求参数 @@ -141,7 +148,7 @@ public class StructuralPackageOrderController extends BaseController { .setMaterialDesc(material.getName()) .setVersion(material.getVersion()) .setWeight(material.getWeight()) - .setPlanNum(material.getNum().multiply(BigDecimal.valueOf(num))) + .setPlanNum(material.getNum()*num) .setImage(material.getImage()) ); if (Objects.nonNull(material.getWeight())) { @@ -194,7 +201,7 @@ public class StructuralPackageOrderController extends BaseController { .setOrderId(order.getId()) .setNo(it.getNo()) .setWeight(BigDecimal.ZERO) - .setNum(BigDecimal.ZERO) + .setNum(0) .setStation(it.getStation()) .setTray(it.getTray())).toList(); List items = new ArrayList<>(); @@ -204,8 +211,8 @@ public class StructuralPackageOrderController extends BaseController { WmsStructuralPackageOrderTrayItem item = Convert.convert(WmsStructuralPackageOrderTrayItem.class, it); item.setOrderId(order.getId()); item.setTrayId(tray.getId()); - tray.setNum(tray.getNum().add(item.getPlanNum().multiply(BigDecimal.valueOf(order.getNum())))); - tray.setWeight(tray.getWeight().add(item.getPlanNum().multiply(it.getWeight()))); + tray.setNum(tray.getNum()+(item.getPlanNum()*order.getNum())); + tray.setWeight(tray.getWeight().add(NumberUtil.mul(it.getWeight(),new BigDecimal(item.getPlanNum())))); return item; }).toList() ); @@ -391,12 +398,17 @@ public class StructuralPackageOrderController extends BaseController { DeliverStructuralPackageOrderExtendVO trayVO = deliverStructuralPackageOrderTrayService.getInfo(id); VUtil.trueThrowBusinessError(Objects.isNull(trayVO)).throwMessage("数据不存在"); List list = deliverStructuralPackageOrderTrayItemService.getListByTrayId(id); + List datas = new ArrayList<>(); for (DeliverStructuralPackageOrderTrayItemVO it : list) { - it.setQrCode(com.nflg.wms.common.util.DateTimeUtil.format(LocalDate.now(),"yyyyMMdd")+RandomUtil.randomString(6) +"_"+it.getMaterialNo() + "_" + it.getTrayNo() + "_1"); - it.setQrCodeImage("data:image/png;base64," + Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(it.getQrCode(), 200, 200))); + for (int i = 0; i < it.getPlanNum(); i++) { + DeliverStructuralPackageOrderTrayItemVO vo = BeanUtil.copy(it, DeliverStructuralPackageOrderTrayItemVO.class); + vo.setQrCode(it.getId() + "-" + (i + 1) + "^" + it.getMaterialNo() + "_" + it.getTrayNo() + "_1"); + vo.setQrCodeImage("data:image/png;base64," + Base64.getEncoder().encodeToString(QRCodeUtil.generateQRCode(vo.getQrCode(), 200, 200))); + datas.add(vo); + } } Map variables = new HashMap<>(); - variables.put("list", list); + variables.put("list", datas); String html = ThymeleafUtil.generator("/template/qrcode/", "spitem", ".html", variables); URL baseUrl = new ClassPathResource("template/qrcode/").getURL(); PdfGeneratorUtil.generatePdf(trayVO.getExternalOrderNo() + "-" + trayVO.getWorkbenchCode() + "标签", html, baseUrl.toString(), response); @@ -439,7 +451,7 @@ public class StructuralPackageOrderController extends BaseController { } /** - * 根据托盘号获取托盘信息(打包用) + * 根据托盘号获取托盘信息(PDA使用) */ @GetMapping("getTrayInfoByNo") public ApiResult getTrayInfoByNo(@Valid @RequestParam @NotBlank String trayNo){ @@ -459,13 +471,13 @@ public class StructuralPackageOrderController extends BaseController { WmsStructuralPackageOrderTray tray = deliverStructuralPackageOrderTrayService.lambdaQuery().eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo()).one(); VUtil.trueThrowBusinessError(Objects.isNull(tray)).throwMessage("托盘不存在"); VUtil.trueThrowBusinessError(!Objects.equals(tray.getState(), OrderState.Unpackaged.getState())).throwMessage("请勿重复打包"); - VUtil.trueThrowBusinessError(tray.getNum().compareTo(BigDecimal.valueOf(request.getQrCodes().size())) == 0).throwMessage("打包数量不足"); + VUtil.trueThrowBusinessError(tray.getNum().compareTo(request.getQrCodes().size()) != 0).throwMessage("打包数量不足"); VUtil.trueThrowBusinessError(!deliverStructuralPackageOrderTrayService.lambdaUpdate() .set(WmsStructuralPackageOrderTray::getState, OrderState.Packaged.getState()) .set(WmsStructuralPackageOrderTray::getPackBy, UserUtil.getUserName()) .set(WmsStructuralPackageOrderTray::getPackTime, LocalDateTime.now()) .eq(WmsStructuralPackageOrderTray::getState, OrderState.Unpackaged.getState()) - .eq(WmsStructuralPackageOrderTray::getTray, request.getTrayNo()) + .eq(WmsStructuralPackageOrderTray::getNo, request.getTrayNo()) .update()).throwMessage("打包失败,请重试"); packageMaterialScanRecordRepository.saveAll(request.getQrCodes().stream().map(qrCode -> { List qrContents = StrUtil.split(qrCode, "^"); @@ -519,7 +531,7 @@ public class StructuralPackageOrderController extends BaseController { .throwMessage("采购单号必须一致"); Long packageId = trays.get(0).getPackageId(); String externalOrderNo = trays.get(0).getExternalOrderNo(); - Long supplierId=trays.get(0).getSupplierId(); + Long supplierId = trays.get(0).getSupplierId(); List tids = deliverStructuralPackageOrderTrayService.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo); VUtil.trueThrowBusinessError(tids.size() != ids.size()).throwMessage("数据未齐套"); String deliverOrderNo = RandomUtil.randomString(10); @@ -532,6 +544,7 @@ public class StructuralPackageOrderController extends BaseController { structuralPackageDeliverOrderMapService.saveBatch(ids.stream().map(id -> new WmsStructuralPackageDeliverOrderMap() .setDeliverId(deliverOrder.getId()) .setOrderId(id)).toList()); + deliverStructuralPackageOrderTrayService.setStateByIds(ids, OrderState.InTransit); return ApiResult.success(); } @@ -545,12 +558,92 @@ public class StructuralPackageOrderController extends BaseController { } /** - * 根据送货单号查询订单信息 + * 根据送货单号查询订单信息(PDA使用) * @param orderNo 送货单号 */ @GetMapping("getInfoByExternalOrderNo") - public ApiResult getInfoByExternalOrderNo(@Valid @RequestParam @NotBlank String orderNo){ - List datas=deliverStructuralPackageOrderService.getInfoByExternalOrderNo(orderNo); - return ApiResult.success(new DeliverStructuralPackageOrderForPackageVO()); + public ApiResult getInfoByExternalOrderNo(@Valid @RequestParam @NotBlank String orderNo) { + List datas = deliverStructuralPackageOrderService.getInfoByExternalOrderNo(orderNo); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(datas)).throwMessage("未找到数据"); + datas.forEach(it -> { + it.setTrayNos(deliverStructuralPackageOrderTrayService.lambdaQuery() + .select(WmsStructuralPackageOrderTray::getNo) + .eq(WmsStructuralPackageOrderTray::getOrderId, it.getId()) + .list() + .stream() + .map(WmsStructuralPackageOrderTray::getNo) + .toList()); + //SAP + SAPMaterialInfoInOrderDTO dto1 = sapService.getMaterialInfoInOrder(it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo()); + if (Objects.isNull(dto1)) { + log.error("{},{},{}未从SAP的ZIM_004接口查询到数据", it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo()); + } else if (StrUtil.isBlank(dto1.getWarehouseNo())) { + log.error("{},{},{}未从SAP的ZIM_004接口查询仓库为空", it.getExternalOrderNo(), it.getSupplierCode(), it.getPackageNo()); + } else { + it.setWarehouseNo(dto1.getWarehouseNo()); + List dtos = sapService.getStorage("1010", List.of(dto1.getWarehouseNo()), List.of(it.getPackageNo()), null, null); + if (CollectionUtil.isEmpty(dtos)) { + log.error("{},{},{}未从SAP的ZWM3A01接口查询到数据", "1010", dto1.getWarehouseNo(), it.getPackageNo()); + } else { + it.setBinNos(dtos.get(0).getBinNos()); + } + } + }); + DeliverStructuralPackageOrderForPackageVO vo = new DeliverStructuralPackageOrderForPackageVO(); + vo.setItems(datas); + vo.setSupplierCode(datas.get(0).getSupplierCode()); + vo.setSupplierName(datas.get(0).getSupplierName()); + return ApiResult.success(vo); + } + + /** + * 收货(PDA使用) + * @param request 请求参数 + */ + @Transactional + @PostMapping("receive") + public ApiResult receive(@Valid @RequestBody @NotNull StructuralPackageOrderReceiveQO request) { + List trayNos = deliverStructuralPackageOrderTrayService.lambdaQuery() + .select(WmsStructuralPackageOrderTray::getNo) + .eq(WmsStructuralPackageOrderTray::getOrderId, request.getId()) + .list() + .stream() + .map(WmsStructuralPackageOrderTray::getNo) + .toList(); + VUtil.trueThrowBusinessError(!new HashSet<>(trayNos).equals(new HashSet<>(request.getTrayNos()))) + .throwMessage("托盘未齐套"); + VUtil.trueThrowBusinessError(!deliverStructuralPackageOrderTrayService.lambdaQuery() + .eq(WmsStructuralPackageOrderTray::getOrderId, request.getId()) + .eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState()) + .exists()) + .throwMessage("没有需要收货的数据"); + deliverStructuralPackageOrderTrayService.lambdaUpdate() + .set(WmsStructuralPackageOrderTray::getState, OrderState.Received.getState()) + .set(WmsStructuralPackageOrderTray::getReceiveBy,UserUtil.getUserName()) + .set(WmsStructuralPackageOrderTray::getReceiveTime, LocalDateTime.now()) + .eq(WmsStructuralPackageOrderTray::getOrderId, request.getId()) + .eq(WmsStructuralPackageOrderTray::getState, OrderState.InTransit.getState()) + .update(); + //创建上架任务 + String deliverOrderNo = structuralPackageDeliverOrderService.getNoByOrderId(request.getId()); + String taskNo = "NFS" + deliverOrderNo; + if (Objects.isNull(structuralPackageStorageTaskService.lambdaQuery().eq(WmsStructuralPackageStorageTask::getNo, taskNo).one())){ + structuralPackageStorageTaskService.save(new WmsStructuralPackageStorageTask() + .setNo(taskNo) + .setSourceFrom(1) + .setSourceNo(deliverOrderNo) + .setCreateTime(LocalDateTime.now()) + ); + } + return ApiResult.success(); + } + + /** + * 搜索上架任务 + * @param request 查询参数 + */ + @PostMapping("searchStorageTask") + public ApiResult> searchStorageTask(@Valid @RequestBody @NotNull StructuralPackageStorageTaskSearchQO request){ + return ApiResult.success(structuralPackageStorageTaskService.search(request)); } } \ No newline at end of file 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 8958556b..3848c4a7 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 @@ -13,4 +13,9 @@ public class SAPMaterialInfoInOrderDTO { * 未收货数量 */ private BigDecimal transportNum; + + /** + * 仓库编号 + */ + private String warehouseNo; } 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 3d389bc5..14d0ba8b 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 @@ -6,15 +6,13 @@ import com.nflg.wms.admin.pojo.dto.SAPMaterialInfoInOrderDTO; import com.nflg.wms.common.constant.STATE; import com.nflg.wms.common.exception.NflgException; import com.nflg.wms.common.pojo.dto.SAPOrderDTO; +import com.nflg.wms.common.pojo.dto.SAPSyncFromDTO; import com.sap.conn.jco.*; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; @Slf4j @Component @@ -26,9 +24,57 @@ public class SapService { @Resource private JCoRepository repository; + /** + * 获取库存信息 + * @param factory 工厂编号 + * @param warehouseNos 仓库编号列表 + * @param beginTime 开始时间,格式yyyyMMdd + * @param endTime 结束时间,格式yyyyMMdd + */ + public List getStorage(String factory, List warehouseNos,List materialNos, String beginTime, String endTime) { + Map parameters = new HashMap<>(); + parameters.put("I_WERKS", factory); + parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A"); + if (Objects.nonNull(beginTime)) { + parameters.put("S_DATE", beginTime); + } + if (Objects.nonNull(endTime)) { + parameters.put("E_DATE", endTime); + } + + Map>> tables = new HashMap<>(); + List> warehouses = new ArrayList<>(); + warehouseNos.forEach(warehouseNo -> { + warehouses.add(Map.of("LGORT", warehouseNo)); + }); + tables.put("IT_LGORT", warehouses); + List> materials = new ArrayList<>(); + materialNos.forEach(materialNo -> { + materials.add(Map.of("MATNR", materialNo)); + }); + tables.put("IT_MATNR", materials); + + JCoTable tOut = exec("ZWM3A01", parameters, tables); + + List result = new ArrayList<>(); + for (int i = 0; i < tOut.getNumRows(); i++) { + tOut.setRow(i); + result.add(new SAPSyncFromDTO() + .setFactoryNo(tOut.getString("WERKS")) + .setMaterialNo(tOut.getString("MATNR")) + .setMaterialDesc(tOut.getString("MAKTX")) + .setWarehouseNo(tOut.getString("LGORT")) + .setWarehouseName(tOut.getString("LGOBE")) + .setBinNos(tOut.getString("LGPBE"))) + ; + } + log.debug("数据:{}", JSONUtil.toJsonStr(result)); + return result; + } + /** * 获取订单中物料的信息 - * @param orderNo 送货单号 + * @param orderNo 采购单号 * @param supplierNo 供应商编号 * @param materialNo 物料编号 */ @@ -42,7 +88,8 @@ public class SapService { tOut.setRow(0); return new SAPMaterialInfoInOrderDTO() - .setTransportNum(tOut.getBigDecimal("WSHSL")); + .setTransportNum(tOut.getBigDecimal("WSHSL")) + .setWarehouseNo(tOut.getString("LGORT")); } /** @@ -77,6 +124,10 @@ public class SapService { return exec(functionName, parameters, null,"T_OUT"); } + private JCoTable exec(String functionName, Map parameters, Map>> tables) { + return exec(functionName, parameters, tables,"T_OUT"); + } + private JCoTable exec(String functionName, Map parameters, Map>> tables,String outName) { try { log.info("SAP functionName:{}",functionName); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java index e2c71fa4..2870c22a 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/StructuralPackageControllerService.java @@ -226,7 +226,7 @@ public class StructuralPackageControllerService { sb.append("数量无效;"); } else { - materialDTO.setNum(new BigDecimal(dto.getNum())); + materialDTO.setNum(Integer.valueOf(dto.getNum())); } if (StrUtil.isBlank(dto.getWeight())) { sb.append("重量不能为空;"); @@ -334,7 +334,7 @@ public class StructuralPackageControllerService { }else if (!NumberUtils.isCreatable(num)){ sb.append(StrUtil.format("第{}行数量无效;", row.getRowNum())); }else { - dto.setNum(new BigDecimal(num)); + dto.setNum(Integer.valueOf(num)); } num=row.getString(4); if (StrUtil.isBlank(num)){ @@ -353,7 +353,7 @@ public class StructuralPackageControllerService { }); VUtil.trueThrowBusinessError(!sb.isEmpty()).throwMessage("数据校验失败:"+ sb); packageInfo.setWeight(materials.stream() - .map(m -> m.getWeight().multiply(m.getNum())) + .map(m -> m.getWeight().multiply(new BigDecimal(m.getNum()))) .reduce(BigDecimal.ZERO, BigDecimal::add)); packageInfo.setMaterials(JSONUtil.toJsonStr(materials)); packageService.add(packageInfo); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/OrderState.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/OrderState.java index 1391691d..c86bb83e 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/OrderState.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/constant/OrderState.java @@ -10,7 +10,9 @@ import java.util.Objects; public enum OrderState { Unpackaged((short) 0, "未打包"), - Packaged((short) 1, "已打包"); + Packaged((short) 1, "已打包"), + InTransit((short) 2, "在途"), + Received((short) 3, "已收货"); private final short state; private final String description; diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/PackageMaterialDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/PackageMaterialDTO.java index 090e5b0e..ed3977f5 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/PackageMaterialDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/PackageMaterialDTO.java @@ -38,7 +38,7 @@ public class PackageMaterialDTO { /** * 数量 */ - private BigDecimal num; + private Integer num; /** * 重量 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncFromDTO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncFromDTO.java index 887ef35f..4c2cdaac 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncFromDTO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/dto/SAPSyncFromDTO.java @@ -14,7 +14,7 @@ public class SAPSyncFromDTO { private String materialDesc; private String warehouseNo; private String warehouseName; - private String binNo; + private String binNos; public String getMaterialNo() { return StrUtil.removeAllPrefix(materialNo, "0"); 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 new file mode 100644 index 00000000..ce12f986 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageOrderReceiveQO.java @@ -0,0 +1,23 @@ +package com.nflg.wms.common.pojo.qo; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +@Data +public class StructuralPackageOrderReceiveQO { + + /** + * wms订单ID + */ + @NotNull + private Long id; + + /** + * 该订单下包含的托盘号 + */ + @NotEmpty + private List trayNos; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageStorageTaskSearchQO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageStorageTaskSearchQO.java new file mode 100644 index 00000000..e9389436 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/StructuralPackageStorageTaskSearchQO.java @@ -0,0 +1,22 @@ +package com.nflg.wms.common.pojo.qo; + +import lombok.Data; + +@Data +public class StructuralPackageStorageTaskSearchQO extends SearchBaseQO{ + + /** + * 任务单号 + */ + private String taskNo; + + /** + * 原始单号 + */ + private String orderNo; + + /** + * 任务类型,1:采购单入库 + */ + private Integer type; +} diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderForPackageItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderForPackageItemVO.java index 70d13a66..65eca5b8 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderForPackageItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderForPackageItemVO.java @@ -3,10 +3,16 @@ package com.nflg.wms.common.pojo.vo; import lombok.Data; import java.math.BigDecimal; +import java.util.List; @Data public class DeliverStructuralPackageOrderForPackageItemVO { + /** + * wms订单ID + */ + private Long id; + /** * 供应商代码 */ @@ -37,6 +43,16 @@ public class DeliverStructuralPackageOrderForPackageItemVO { */ private String packageDesc; + /** + * 仓库编号 + */ + private String warehouseNo; + + /** + * 储位编号 + */ + private String binNos; + /** * 总重 */ @@ -51,4 +67,9 @@ public class DeliverStructuralPackageOrderForPackageItemVO { * 托盘数量 */ private Integer trayNum; + + /** + * 该订单下包含的托盘号 + */ + private List trayNos; } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayItemVO.java index 8a0e15c4..22ef9f4b 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/DeliverStructuralPackageOrderTrayItemVO.java @@ -5,11 +5,12 @@ import lombok.Data; import lombok.experimental.Accessors; import org.ttzero.excel.annotation.ExcelColumn; +import java.io.Serializable; import java.math.BigDecimal; @Data @Accessors -public class DeliverStructuralPackageOrderTrayItemVO { +public class DeliverStructuralPackageOrderTrayItemVO implements Serializable { /** * 序号 @@ -64,19 +65,19 @@ public class DeliverStructuralPackageOrderTrayItemVO { * 计划数量 */ @ExcelColumn(value = "计划数量",colIndex = 7) - private BigDecimal planNum; + private Integer planNum; /** * 出货数量 */ @ExcelColumn(value = "出货数量",colIndex = 8) - private BigDecimal shipmentNum; + private Integer shipmentNum; /** * 入库数量 */ @ExcelColumn(value = "入库数量",colIndex = 9) - private BigDecimal storeNum; + private Integer storeNum; /** * 状态 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TrayItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TrayItemVO.java index 1e73ba9f..c83d6756 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TrayItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/TrayItemVO.java @@ -39,17 +39,17 @@ public class TrayItemVO { /** * 计划数量 */ - private BigDecimal planNum; + private Integer planNum; /** * 出货数量 */ - private BigDecimal shipmentNum; + private Integer shipmentNum; /** * 入库数量 */ - private BigDecimal storeNum; + private Integer storeNum; /** * 图片 diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/util/BeanUtil.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/util/BeanUtil.java new file mode 100644 index 00000000..e673cbed --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/util/BeanUtil.java @@ -0,0 +1,11 @@ +package com.nflg.wms.common.util; + +import cn.hutool.json.JSONUtil; + +public class BeanUtil { + + public static T copy(Object source, Class clazz) { + String data= JSONUtil.toJsonStr(source); + return JSONUtil.toBean(data, clazz); + } +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTray.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTray.java index 0d2e3127..8e682498 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTray.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTray.java @@ -63,7 +63,7 @@ public class WmsStructuralPackageOrderTray implements Serializable { /** * 数量 */ - private BigDecimal num; + private Integer num; /** * 打包人 @@ -76,4 +76,28 @@ public class WmsStructuralPackageOrderTray implements Serializable { */ @TableField(updateStrategy = FieldStrategy.ALWAYS) private LocalDateTime packTime; + + /** + * 创建送货单人 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String sendBy; + + /** + * 创建送货单时间 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private LocalDateTime sendTime; + + /** + * 收货人 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private String receiveBy; + + /** + * 收货时间 + */ + @TableField(updateStrategy = FieldStrategy.ALWAYS) + private LocalDateTime receiveTime; } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java index aca8d162..6729021d 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageOrderTrayItem.java @@ -64,17 +64,17 @@ public class WmsStructuralPackageOrderTrayItem implements Serializable { /** * 计划数量 */ - private BigDecimal planNum; + private Integer planNum; /** * 出货数量 */ - private BigDecimal shipmentNum; + private Integer shipmentNum; /** * 入库数量 */ - private BigDecimal storeNum; + private Integer storeNum; /** * 图片 diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageStorageTask.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageStorageTask.java new file mode 100644 index 00000000..4e815ff5 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsStructuralPackageStorageTask.java @@ -0,0 +1,58 @@ +package com.nflg.wms.repository.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("wms_structural_package_storage_task") +public class WmsStructuralPackageStorageTask implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 任务单号 + */ + private String no; + + /** + * 来源,1:采购单入库 + */ + private Integer sourceFrom; + + /** + * 来源单号 + */ + private String sourceNo; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 上架时间 + */ + private LocalDateTime storeTime; +} 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 a362fef4..10288013 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 @@ -22,4 +22,6 @@ public interface WmsStructuralPackageDeliverOrderMapper extends BaseMapper search(StructuralPackageDeliverOrderSearchQO request, List externalOrderIds, Page objectPage); List getIdsByExternalOrderNo(String externalOrderNo); + + String getNoByOrderId(Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageStorageTaskMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageStorageTaskMapper.java new file mode 100644 index 00000000..9ee2415b --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsStructuralPackageStorageTaskMapper.java @@ -0,0 +1,20 @@ +package com.nflg.wms.repository.mapper; + +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.StructuralPackageStorageTaskSearchQO; +import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface WmsStructuralPackageStorageTaskMapper extends BaseMapper { + + IPage search(StructuralPackageStorageTaskSearchQO request, Page objectPage); +} 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 777d4fab..6230aab8 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 @@ -19,4 +19,6 @@ import jakarta.validation.constraints.NotNull; public interface IWmsStructuralPackageDeliverOrderService extends IService { IPage search(@Valid @NotNull StructuralPackageDeliverOrderSearchQO request); + + String getNoByOrderId(@NotNull Long id); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayService.java index a8a415dd..2fc0c4a9 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageOrderTrayService.java @@ -2,12 +2,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.constant.OrderState; import com.nflg.wms.common.pojo.qo.StructuralPackageOrderSearchByStateQO; import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO; import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayVO; import com.nflg.wms.repository.entity.WmsStructuralPackageOrderTray; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import java.util.List; @@ -41,4 +43,6 @@ public interface IWmsStructuralPackageOrderTrayService extends IService getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo); + + void setStateByIds(@Valid @NotEmpty List ids, OrderState state); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageStorageTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageStorageTaskService.java new file mode 100644 index 00000000..2cb07c0f --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsStructuralPackageStorageTaskService.java @@ -0,0 +1,21 @@ +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.StructuralPackageStorageTaskSearchQO; +import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; + +/** + *

+ * 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IWmsStructuralPackageStorageTaskService extends IService { + + IPage search(@Valid @NotNull StructuralPackageStorageTaskSearchQO request); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/DepartmentServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/DepartmentServiceImpl.java index 9ecef651..e7db8900 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/DepartmentServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/DepartmentServiceImpl.java @@ -3,7 +3,6 @@ package com.nflg.wms.repository.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; -import cn.hutool.extra.cglib.CglibUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.qo.DepartmentAddQO; @@ -11,6 +10,7 @@ import com.nflg.wms.common.pojo.qo.DepartmentSearchQO; import com.nflg.wms.common.pojo.qo.DepartmentUpdateQO; import com.nflg.wms.common.pojo.vo.DepartmentSimpleVO; import com.nflg.wms.common.pojo.vo.DepartmentVO; +import com.nflg.wms.common.util.BeanUtil; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; import com.nflg.wms.repository.entity.Department; @@ -66,7 +66,7 @@ public class DepartmentServiceImpl extends ServiceImpl implements IR public void update(RoleUpdateQO request, String userName) { Role role1 = getById(request.getId()); VUtil.trueThrowBusinessError(Objects.isNull(role1)).throwMessage("角色不存在"); - Role role2 = CglibUtil.copy(role1, Role.class); + Role role2 = BeanUtil.copy(role1, Role.class); role2.setCode(request.getCode()) .setName(request.getName()) .setEnable(request.getEnable()) @@ -80,7 +80,7 @@ public class RoleServiceImpl extends ServiceImpl implements IR public void enable(EnableQO request, String userName) { Role role1 = getById(request.getId()); VUtil.trueThrowBusinessError(Objects.isNull(role1)).throwMessage("角色不存在"); - Role role2 = CglibUtil.copy(role1, Role.class); + Role role2 = BeanUtil.copy(role1, Role.class); role2.setEnable(request.getEnable()) .setUpdateBy(userName) .setUpdateTime(LocalDateTime.now()); 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 c9df0c78..bfdc3ff7 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 @@ -9,8 +9,6 @@ import com.nflg.wms.common.pojo.vo.StructuralPackageDeliverOrderVO; import com.nflg.wms.repository.entity.WmsStructuralPackageDeliverOrder; import com.nflg.wms.repository.mapper.WmsStructuralPackageDeliverOrderMapper; import com.nflg.wms.repository.service.IWmsStructuralPackageDeliverOrderService; -import com.nflg.wms.repository.service.IWmsStructuralPackageOrderService; -import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import java.util.List; @@ -26,9 +24,6 @@ import java.util.List; @Service public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl implements IWmsStructuralPackageDeliverOrderService { - @Resource - private IWmsStructuralPackageOrderService wmsStructuralPackageOrderService; - @Override public IPage search(StructuralPackageDeliverOrderSearchQO request) { List externalOrderIds = null; @@ -37,4 +32,9 @@ public class WmsStructuralPackageDeliverOrderServiceImpl extends ServiceImpl(request.getPage(),request.getPageSize())); } + + @Override + public String getNoByOrderId(Long id) { + return baseMapper.getNoByOrderId(id); + } } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayServiceImpl.java index 5925f5fb..1da98925 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageOrderTrayServiceImpl.java @@ -4,14 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.constant.OrderState; import com.nflg.wms.common.pojo.qo.StructuralPackageOrderSearchByStateQO; import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderExtendVO; import com.nflg.wms.common.pojo.vo.DeliverStructuralPackageOrderTrayVO; +import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.repository.entity.WmsStructuralPackageOrderTray; import com.nflg.wms.repository.mapper.WmsStructuralPackageOrderTrayMapper; import com.nflg.wms.repository.service.IWmsStructuralPackageOrderTrayService; import org.springframework.stereotype.Service; +import java.time.LocalDateTime; import java.util.List; /** @@ -74,4 +77,15 @@ public class WmsStructuralPackageOrderTrayServiceImpl extends ServiceImpl getIdsByMaterialAndExternalOrderNo(Long packageId, String externalOrderNo) { return baseMapper.getIdsByMaterialAndExternalOrderNo(packageId, externalOrderNo); } -} + + @Override + public void setStateByIds(List ids, OrderState state) { + lambdaUpdate() + .set(WmsStructuralPackageOrderTray::getState, state.getState()) + .set(WmsStructuralPackageOrderTray::getSendBy, UserUtil.getUserName()) + .set(WmsStructuralPackageOrderTray::getSendTime, LocalDateTime.now()) + .eq(WmsStructuralPackageOrderTray::getState, state.getState() - 1) + .in(WmsStructuralPackageOrderTray::getId, ids) + .update(); + } +} \ No newline at end of file diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageStorageTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageStorageTaskServiceImpl.java new file mode 100644 index 00000000..4b9827ab --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsStructuralPackageStorageTaskServiceImpl.java @@ -0,0 +1,27 @@ +package com.nflg.wms.repository.service.impl; + +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.StructuralPackageStorageTaskSearchQO; +import com.nflg.wms.repository.entity.WmsStructuralPackageStorageTask; +import com.nflg.wms.repository.mapper.WmsStructuralPackageStorageTaskMapper; +import com.nflg.wms.repository.service.IWmsStructuralPackageStorageTaskService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class WmsStructuralPackageStorageTaskServiceImpl extends ServiceImpl implements IWmsStructuralPackageStorageTaskService { + + @Override + public IPage search(StructuralPackageStorageTaskSearchQO request) { + return baseMapper.search(request,new Page<>(request.getPage(),request.getPageSize())); + } +} \ No newline at end of file diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml index 77588d51..f2c99666 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageDeliverOrderMapper.xml @@ -34,4 +34,11 @@ inner join wms_structural_package_deliver_order_map om on o.id=om.order_id where o.external_order_no like concat('%',#{externalOrderNo},'%') + + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml index bb4106c6..a962f665 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageOrderMapper.xml @@ -60,14 +60,14 @@ order by id desc - + SELECT o.*,m.no||wb."no" AS "workbench_code",us.supplier_code,us.supplier_name,sp."no" AS "package_no" + ,sp."name" AS "package_desc" FROM wms_structural_package_order o - LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id" - LEFT JOIN user_supplier us ON o.supplier_id=us.user_id - LEFT JOIN wms_structural_package sp ON o.package_id=sp."id" + LEFT JOIN wms_workbench wb ON o.workbench_id=wb."id" + LEFT JOIN wms_model m on o.model_id=m."id" + LEFT JOIN user_supplier us ON o.supplier_id=us.user_id + LEFT JOIN wms_structural_package sp ON o.package_id=sp."id" where o.external_order_no=#{orderNo} diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageStorageTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageStorageTaskMapper.xml new file mode 100644 index 00000000..1de36f1a --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/WmsStructuralPackageStorageTaskMapper.xml @@ -0,0 +1,26 @@ + + + + + + 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 c7d5191a..e4eeceb5 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_structural_package_deliver_order_map") //只生成指定表 + .addInclude("wms_structural_package_storage_task") //只生成指定表 .entityBuilder().idType(IdType.ASSIGN_ID) .enableLombok() .enableChainModel() diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageFromSAPProcessor.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageFromSAPProcessor.java index 5a2cdb77..042d6f1f 100644 --- a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageFromSAPProcessor.java +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/processor/SyncStorageFromSAPProcessor.java @@ -98,7 +98,7 @@ public class SyncStorageFromSAPProcessor implements BasicProcessor { for (DictionaryItem fy : dbFactorys) { log.info("处理工厂:{}", fy.getValue()); try { - List list = sapService.SyncStorage(fy.getValue(), warehouseNos, beginDate, endDate); + List list = sapService.getStorage(fy.getValue(), warehouseNos, beginDate, endDate); if (CollectionUtil.isEmpty(list)) { log.info("没有获取到数据"); } else { 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 9a00c70e..f926f27f 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 @@ -27,7 +27,7 @@ public class SapService { * @param beginTime 开始时间,格式yyyyMMdd * @param endTime 结束时间,格式yyyyMMdd */ - public List SyncStorage(String factory, List warehouseNos, String beginTime, String endTime) throws JCoException { + public List getStorage(String factory, List warehouseNos, String beginTime, String endTime) throws JCoException { Map parameters = new HashMap<>(); parameters.put("I_WERKS", factory); parameters.put("I_TYPE", Objects.nonNull(beginTime) || Objects.nonNull(endTime) ? "I" : "A"); diff --git a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapTestService.java b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapTestService.java index 0ec189c1..2dffab1c 100644 --- a/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapTestService.java +++ b/nflg-wms-scheduled/src/main/java/com/nflg/wms/scheduled/service/SapTestService.java @@ -88,7 +88,7 @@ public class SapTestService { for (DictionaryItem fy: dbFactorys){ log.info("处理工厂:{}", fy.getValue()); try { - List list = sapService.SyncStorage(fy.getValue(), warehouseNos, beginDate, endDate); + List list = sapService.getStorage(fy.getValue(), warehouseNos, beginDate, endDate); if (CollectionUtil.isEmpty(list)) { log.info("没有获取到数据"); } else {