From 4ee73bc1914b6dc17879e17959717ebf159de02e Mon Sep 17 00:00:00 2001 From: zhangke Date: Fri, 25 Jul 2025 15:09:12 +0800 Subject: [PATCH] tt --- .../wms/admin/controller/SRMController.java | 123 ++++++++++++-- .../pojo/qo/SRMQualityInspectionResult.java | 120 ++++++++++++++ .../entity/WmsSrmQualityInspection.java | 149 +++++++++++++++++ .../nflg/wms/repository/entity/WmsTask.java | 58 +++++++ .../wms/repository/entity/WmsTaskItem.java | 152 ++++++++++++++++++ .../mapper/WmsSrmQualityInspectionMapper.java | 16 ++ .../repository/mapper/WmsTaskItemMapper.java | 16 ++ .../wms/repository/mapper/WmsTaskMapper.java | 16 ++ .../IWmsSrmQualityInspectionService.java | 16 ++ .../service/IWmsTaskItemService.java | 16 ++ .../repository/service/IWmsTaskService.java | 22 +++ .../WmsSrmQualityInspectionServiceImpl.java | 20 +++ .../service/impl/WmsTaskItemServiceImpl.java | 20 +++ .../service/impl/WmsTaskServiceImpl.java | 79 +++++++++ .../mapper/WmsSrmQualityInspectionMapper.xml | 5 + .../resources/mapper/WmsTaskItemMapper.xml | 5 + .../main/resources/mapper/WmsTaskMapper.xml | 5 + .../wms/repository/CodeGeneratorTest.java | 2 +- 18 files changed, 828 insertions(+), 12 deletions(-) create mode 100644 nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SRMQualityInspectionResult.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsSrmQualityInspection.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTask.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTaskItem.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsSrmQualityInspectionMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskItemMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskMapper.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsSrmQualityInspectionService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsTaskItemService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsTaskService.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmQualityInspectionServiceImpl.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskItemServiceImpl.java create mode 100644 nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskServiceImpl.java create mode 100644 nflg-wms-repository/src/main/resources/mapper/WmsSrmQualityInspectionMapper.xml create mode 100644 nflg-wms-repository/src/main/resources/mapper/WmsTaskItemMapper.xml create mode 100644 nflg-wms-repository/src/main/resources/mapper/WmsTaskMapper.xml diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SRMController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SRMController.java index c07181e4..5b8d9a07 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SRMController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/SRMController.java @@ -1,13 +1,16 @@ 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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.nflg.wms.common.pojo.qo.SRMOrderReceiveQO; +import com.nflg.wms.common.pojo.qo.SRMQualityInspectionResult; import com.nflg.wms.repository.entity.WmsSrmOrder; import com.nflg.wms.repository.entity.WmsSrmOrderItem; -import com.nflg.wms.repository.service.IWmsSrmOrderItemService; -import com.nflg.wms.repository.service.IWmsSrmOrderService; +import com.nflg.wms.repository.entity.WmsSrmQualityInspection; +import com.nflg.wms.repository.entity.WmsTaskItem; +import com.nflg.wms.repository.service.*; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -18,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -34,18 +39,24 @@ public class SRMController extends BaseController { @Resource private IWmsSrmOrderItemService srmOrderItemService; + @Resource + private IWmsSrmQualityInspectionService srmQualityInspectionService; + + @Resource + private IWmsTaskService taskService; + /** * 接收SRM送货单 */ @Transactional @PostMapping("/SendNFDelivery") - public Object receiveOrder(@RequestBody SRMOrderReceiveQO request){ + public Object receiveOrder(@RequestBody SRMOrderReceiveQO request) { try { - WmsSrmOrder order=srmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.getNoteNum()).one(); - if (Objects.nonNull(order)){ + WmsSrmOrder order = srmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.getNoteNum()).one(); + if (Objects.nonNull(order)) { srmOrderService.removeById(order); - srmOrderItemService.remove(new LambdaQueryWrapper().eq(WmsSrmOrderItem::getOrderId,order.getId())); - }else { + srmOrderItemService.remove(new LambdaQueryWrapper().eq(WmsSrmOrderItem::getOrderId, order.getId())); + } else { order = new WmsSrmOrder() .setId(IdUtil.getSnowflakeNextId()) .setIuCode(request.getIuCode()) @@ -58,14 +69,104 @@ public class SRMController extends BaseController { srmOrderService.save(order); } WmsSrmOrder finalOrder = order; - srmOrderItemService.saveBatch(request.getResultSet().stream().map(it->{ - WmsSrmOrderItem item= Convert.convert(WmsSrmOrderItem.class, it); + srmOrderItemService.saveBatch(request.getResultSet().stream().map(it -> { + WmsSrmOrderItem item = Convert.convert(WmsSrmOrderItem.class, it); item.setOrderId(finalOrder.getId()); return item; }).toList()); return 0; - }catch (Exception ex){ - log.error("SRM送货单保存失败",ex); + } catch (Exception ex) { + log.error("SRM送货单保存失败", ex); + return ex.getMessage(); + } + } + + + /** + * SRM 推送质检单到WMS + */ + @Transactional + @PostMapping("/SendNFInspect") + public Object receiveQualityInspection(@RequestBody SRMQualityInspectionResult request) { + Integer result = 1; + try { + WmsSrmQualityInspection inspect = srmQualityInspectionService.lambdaQuery() + .eq(WmsSrmQualityInspection::getInspectionNum, request.getInspectionNum()) + .one(); + List tasks = new ArrayList(); + if (Objects.nonNull(inspect)) { + inspect.setFactory(request.getFactory()) + .setDeliveryQty(request.getDeliveryQty()) + .setInspectionResult(request.getInspectionResult()) + .setItemCode(request.getItemCode()) + .setItemName(request.getItemName()) + .setSupplerNum(request.getSupplierNum()) + .setInspectionType(request.getInspectionType()) + .setPoLineNumber(String.valueOf(request.getPoLineNumber())) + .setInspectionQty(request.getInspectionQty()) + .setUnit(request.getUnit()) + .setReceivedWarehouse(request.getReceivedWarehouse()) + .setUnqualifiedQty(request.getUnqualifiedQty()) + .setPoNum(request.getPoNum()) + .setQualifiedQty(request.getQualifiedQty()) + .setMaterialBatch(request.getMaterialBatch()) + .setSerialNum(request.getSerialNum()) + .setLineNumber(request.getLineNumber()) + .setNoteNum(request.getNoteNum()) + .setLastModifyTime(LocalDateTime.now()); + result = srmQualityInspectionService.updateById(inspect) ? 0 : 1; + } else { + inspect = new WmsSrmQualityInspection() + .setId(IdUtil.getSnowflakeNextId()) + .setInspectionNum(request.getInspectionNum()) + .setFactory(request.getFactory()) + .setDeliveryQty(request.getDeliveryQty()) + .setInspectionResult(request.getInspectionResult()) + .setItemCode(request.getItemCode()) + .setItemName(request.getItemName()) + .setSupplerNum(request.getSupplierNum()) + .setInspectionType(request.getInspectionType()) + .setPoLineNumber(String.valueOf(request.getPoLineNumber())) + .setInspectionQty(request.getInspectionQty()) + .setUnit(request.getUnit()) + .setReceivedWarehouse(request.getReceivedWarehouse()) + .setUnqualifiedQty(request.getUnqualifiedQty()) + .setPoNum(request.getPoNum()) + .setQualifiedQty(request.getQualifiedQty()) + .setMaterialBatch(request.getMaterialBatch()) + .setSerialNum(request.getSerialNum()) + .setLineNumber(request.getLineNumber()) + .setNoteNum(request.getNoteNum()) + .setAcceptTime(LocalDateTime.now()); + result = srmQualityInspectionService.save(inspect) ? 0 : 1; + } + tasks.add( + new WmsTaskItem().setItemCode(request.getItemCode()) + .setItemName(request.getItemName()) + .setReceivedWarehouse(request.getReceivedWarehouse()) + .setInspectionQty(request.getInspectionQty()) + .setIsQuality(true) + .setFactory(request.getFactory()) + .setFailResult(request.unqualifiedReason) + .setPoLineNumber(String.valueOf(request.getPoLineNumber())) + .setPoNum(request.getPoNum()) + .setUnit(request.getUnit()) + .setUnqualifiedQty(request.getUnqualifiedQty()) + .setQualifiedQty(request.getQualifiedQty()) + .setSerialNumber(String.valueOf(request.getSerialNum())) + .setSerialNumber(String.valueOf(request.getSerialNum())) + .setLineNumber(String.valueOf(request.getLineNumber())) + .setNoteNum(request.getNoteNum()) + .setInspectionOrder(request.receiveNum) + ); + + if (result == 0 && CollectionUtil.isNotEmpty(tasks)) + if (!taskService.generateTask(tasks, "普通物料送货单")) + log.error("质检单生成上架任务失败"); + + return result; + } catch (Exception ex) { + log.error("SRM送货单保存失败", ex); return ex.getMessage(); } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SRMQualityInspectionResult.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SRMQualityInspectionResult.java new file mode 100644 index 00000000..48fd8440 --- /dev/null +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/qo/SRMQualityInspectionResult.java @@ -0,0 +1,120 @@ +package com.nflg.wms.common.pojo.qo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class SRMQualityInspectionResult { + /** + 质检单号 + */ + public String inspectionNum; + + /** + 工厂 + */ + public String factory; + + /** + 送货数量 + */ + public BigDecimal deliveryQty; + + /** + 检验结果 + */ + public String inspectionResult; + + /** + 物料号 + */ + public String itemCode; + + /** + 供应商代码 + */ + public String supplierNum; + + /** + 检验类型 + */ + public String inspectionType; + + /** + 采购单行号 + */ + public String poLineNumber; + + /** + 检验数量 + */ + public BigDecimal inspectionQty; + + /** + 物料描述 + */ + public String itemName; + + /** + 单位 + */ + public String unit; + + /** + 收货仓库 + */ + public String receivedWarehouse; + + /** + 不合格原因 + */ + public String unqualifiedReason; + + /** + 采购订单号 + */ + public String poNum; + + /** + 物料凭证(收货时SAP返回的凭证) + */ + public String receiveNum; + + /** + 不合格数量 + */ + public BigDecimal unqualifiedQty; + + /** + 合格数量合格数量 + */ + public BigDecimal qualifiedQty; + + /** + 收货时的凭证 + */ + public String materialBatch; + + /** + 收货时的批次 + */ + public String receiveBatchNum; + + /** + 收货时的序列号 + */ + public String serialNum; + + + /** + 送货单行号 + */ + public String lineNumber; + + /** + 送货单号 + */ + public String noteNum; + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsSrmQualityInspection.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsSrmQualityInspection.java new file mode 100644 index 00000000..206b2c11 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsSrmQualityInspection.java @@ -0,0 +1,149 @@ +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.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("wms_srm_quality_inspection") +public class WmsSrmQualityInspection implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 质检单号 + */ + private String inspectionNum; + + /** + * 工厂 + */ + private String factory; + + /** + * 送货数量 + */ + private BigDecimal deliveryQty; + + /** + * 检验结果 + */ + private String inspectionResult; + + /** + * 物料编号 + */ + private String itemCode; + + /** + * 供应商代码 + */ + private String supplerNum; + + /** + * 检验类型 + */ + private String inspectionType; + + /** + * 采购单行号 + */ + private String poLineNumber; + + /** + * 检验数量 + */ + private BigDecimal inspectionQty; + + /** + * 物料描述 + */ + private String itemName; + + /** + * 物料单位 + */ + private String unit; + + /** + * 仓库编号 + */ + private String receivedWarehouse; + + /** + * 不合格原因 + */ + private String unqualifiedReason; + + /** + * 采购订单号 + */ + private String poNum; + + /** + * 物料凭证(收货时SAP返回的凭证) + */ + private String receiveNum; + + /** + * 不合格数量 + */ + private BigDecimal unqualifiedQty; + + /** + * 合格数量 + */ + private BigDecimal qualifiedQty; + + /** + * 收货时的凭证 + */ + private String materialBatch; + + /** + * 收货时的序列号 + */ + private String serialNum; + + /** + * 送货单行号 + */ + private String lineNumber; + + /** + * 送货单号 + */ + private String noteNum; + + /** + * 接收时间 + */ + private LocalDateTime acceptTime; + + /** + * 最后修改时间 + */ + private LocalDateTime lastModifyTime; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTask.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTask.java new file mode 100644 index 00000000..2a942aca --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTask.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 +@TableName("wms_task") +@Accessors(chain = true) +public class WmsTask implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 任务号,SJ-+任务源单号 + */ + private String taskNumber; + + /** + * 任务来源(普通物料采购收货) + */ + private String taskFrom; + + /** + * 任务源单号 + */ + private String orderNumber; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 最后一次添加任务单的时间 + */ + private LocalDateTime modifyTime; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTaskItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTaskItem.java new file mode 100644 index 00000000..f622e7cd --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsTaskItem.java @@ -0,0 +1,152 @@ +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.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("wms_task_item") +public class WmsTaskItem implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + private String taskNumber; + + private String poLineNumber; + + private String poNum; + + /** + * 送货单行号 + */ + private String lineNumber; + + /** + * 送货单号 + */ + private String noteNum; + + /** + * 物料编号 + */ + private String itemCode; + + /** + * 物料描述 + */ + private String itemName; + + /** + * 物料单位 + */ + private String unit; + + /** + * 仓库编号 + */ + private String receivedWarehouse; + + /** + * 储位 + */ + private String storageLocation; + + /** + * 标志位 + */ + private Short signPosition; + + /** + * 是否质检 + */ + private Boolean isQuality; + + /** + * 不合格数量 + */ + private BigDecimal unqualifiedQty; + + /** + * 合格数量 + */ + private BigDecimal qualifiedQty; + + /** + * 工厂 + */ + private String factory; + + /** + * 数据状态 0 待上架;1 已上架;2 sap同步失败 + */ + private Short dataStatus; + + /** + * sap 同步失败原因 + */ + private String failResult; + + /** + * 上架操作人 + */ + private Long operationUserId; + + /** + * 上架操作人 + */ + private String operationUserName; + + /** + * 批次号 + */ + private String batchNumber; + + /** + * 序列号,多个序列号使用;号隔开 + */ + private String serialNumber; + + /** + * 报检数量 + */ + private BigDecimal inspectionQty; + + /** + * 物料凭证编号 + */ + private String materialVoucherNum; + + /** + * 物料凭证年度 + */ + private String materialVoucherYear; + + /** + * 物料有效期 + */ + private LocalDateTime periodTime; + + private String inspectionOrder; +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsSrmQualityInspectionMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsSrmQualityInspectionMapper.java new file mode 100644 index 00000000..1e97c0e0 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsSrmQualityInspectionMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.WmsSrmQualityInspection; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface WmsSrmQualityInspectionMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskItemMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskItemMapper.java new file mode 100644 index 00000000..2118620b --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskItemMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.WmsTaskItem; + +/** + *

+ * Mapper 接口 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface WmsTaskItemMapper extends BaseMapper { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskMapper.java new file mode 100644 index 00000000..913473a6 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsTaskMapper.java @@ -0,0 +1,16 @@ +package com.nflg.wms.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.wms.repository.entity.WmsTask; + +/** + *

+ * Mapper 接口 + *

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

+ * 服务类 + *

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

+ * 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IWmsTaskItemService extends IService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsTaskService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsTaskService.java new file mode 100644 index 00000000..92998eda --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsTaskService.java @@ -0,0 +1,22 @@ +package com.nflg.wms.repository.service; + +import com.nflg.wms.repository.entity.WmsTask; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.WmsTaskItem; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +public interface IWmsTaskService extends IService { + /** + 生成任务单 + */ + boolean generateTask(List tasks, String taskSource); +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmQualityInspectionServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmQualityInspectionServiceImpl.java new file mode 100644 index 00000000..b89c4fc0 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmQualityInspectionServiceImpl.java @@ -0,0 +1,20 @@ +package com.nflg.wms.repository.service.impl; + +import com.nflg.wms.repository.entity.WmsSrmQualityInspection; +import com.nflg.wms.repository.mapper.WmsSrmQualityInspectionMapper; +import com.nflg.wms.repository.service.IWmsSrmQualityInspectionService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class WmsSrmQualityInspectionServiceImpl extends ServiceImpl implements IWmsSrmQualityInspectionService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskItemServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskItemServiceImpl.java new file mode 100644 index 00000000..0c515a7e --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskItemServiceImpl.java @@ -0,0 +1,20 @@ +package com.nflg.wms.repository.service.impl; + +import com.nflg.wms.repository.entity.WmsTaskItem; +import com.nflg.wms.repository.mapper.WmsTaskItemMapper; +import com.nflg.wms.repository.service.IWmsTaskItemService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class WmsTaskItemServiceImpl extends ServiceImpl implements IWmsTaskItemService { + +} diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskServiceImpl.java new file mode 100644 index 00000000..e6740339 --- /dev/null +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsTaskServiceImpl.java @@ -0,0 +1,79 @@ +package com.nflg.wms.repository.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.IdUtil; +import com.nflg.wms.repository.entity.WmsTask; +import com.nflg.wms.repository.entity.WmsTaskItem; +import com.nflg.wms.repository.mapper.WmsTaskMapper; +import com.nflg.wms.repository.service.IWmsTaskItemService; +import com.nflg.wms.repository.service.IWmsTaskService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 服务实现类 + *

+ * + * @author 代码生成器生成 + * @since 2025 + */ +@Service +public class WmsTaskServiceImpl extends ServiceImpl implements IWmsTaskService { + + @Resource + private IWmsTaskItemService wmsTaskItemService; + + @Override + @Transactional + public boolean generateTask(List tasks, String taskSource) { + boolean result = false; + if (Objects.isNull(tasks) || CollectionUtil.isEmpty(tasks)) { + return result; + } + List newTaskList = new ArrayList(); + List oldTaskList = new ArrayList(); + tasks.forEach(task -> { + String taskNumber = "SJ-" + task.getNoteNum(); + task.setId(IdUtil.getSnowflake().nextId()); + task.setTaskNumber(taskNumber); + WmsTask wmsTask = lambdaQuery().eq(WmsTask::getTaskNumber, taskNumber).one(); + if (Objects.nonNull(wmsTask)) { + if (!newTaskList.stream().anyMatch(t -> t.getTaskNumber().equals(taskNumber))) { + newTaskList.add(new WmsTask().setTaskFrom(taskSource) + .setId(IdUtil.getSnowflakeNextId()) + .setTaskNumber(taskNumber) + .setOrderNumber(task.getNoteNum()) + .setCreateTime(LocalDateTime.now()) + .setModifyTime(LocalDateTime.now()) + ); + } + } else { + if (!oldTaskList.stream().anyMatch(t -> t.getTaskNumber().equals(taskNumber))) { + wmsTask.setModifyTime(LocalDateTime.now()); + oldTaskList.add(wmsTask); + } + } + }); + + if (CollectionUtil.isNotEmpty(newTaskList)) { + result = saveBatch(newTaskList); + } + + if (result && CollectionUtil.isNotEmpty(oldTaskList)) { + result = updateBatchById(oldTaskList); + } + + if (result) { + result = wmsTaskItemService.saveBatch(tasks); + } + return result; + } +} diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsSrmQualityInspectionMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsSrmQualityInspectionMapper.xml new file mode 100644 index 00000000..0d32331c --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/WmsSrmQualityInspectionMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsTaskItemMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsTaskItemMapper.xml new file mode 100644 index 00000000..8c259917 --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/WmsTaskItemMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsTaskMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsTaskMapper.xml new file mode 100644 index 00000000..d2fadc38 --- /dev/null +++ b/nflg-wms-repository/src/main/resources/mapper/WmsTaskMapper.xml @@ -0,0 +1,5 @@ + + + + + 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 fe321edb..fb0ad893 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_order_item") //只生成指定表 + .addInclude("wms_task_item") //只生成指定表 .entityBuilder().idType(IdType.ASSIGN_ID) .enableLombok() .enableChainModel()