From 761c3aa0571b0f613a243af5cfe1f1e93a5fa777 Mon Sep 17 00:00:00 2001 From: yinq Date: Wed, 6 Aug 2025 18:31:48 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=B7=BB=E5=8A=A0ERP=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WmsPurchaseOrderController.java | 12 ++++ .../wms/domain/bo/WmsPurchaseOrderBo.java | 9 ++- .../wms/service/IWmsPurchaseOrderService.java | 8 +++ .../impl/WmsPurchaseOrderServiceImpl.java | 66 +++++++++++++++---- 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java index f85baf8..bae74e7 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java @@ -115,4 +115,16 @@ public class WmsPurchaseOrderController extends BaseController { return R.ok(list); } + /** + * ERP同步新增采购订单 + * @param bos + * @return + */ + @RepeatSubmit() + @PostMapping("erpSyncPurchaseOrder") + public R erpSyncPurchaseOrder(@RequestBody List bos) { + return R.ok(wmsPurchaseOrderService.erpSyncPurchaseOrder(bos)); + } + + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java index ab42cb5..49e80ac 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java @@ -10,7 +10,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import java.util.List; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; /** * 采购订单业务对象 wms_purchase_order @@ -90,5 +92,10 @@ public class WmsPurchaseOrderBo extends BaseEntity { */ private String auditComments; + /** + * 采购物料子表 + */ + private List purchaseOrderDetailBoList; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java index dfbeef1..ee17377 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java @@ -66,4 +66,12 @@ public interface IWmsPurchaseOrderService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * ERP同步新增采购订单 + * @param bos + * @return + */ + Boolean erpSyncPurchaseOrder(List bos); + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java index a4ddf01..8e40935 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; @@ -12,7 +13,9 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialCategory; import org.dromara.wms.domain.BaseSupplierInfo; import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.domain.WmsPurchaseOrderDetail; import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; import org.dromara.wms.mapper.BaseMaterialInfoMapper; import org.dromara.wms.mapper.WmsPurchaseOrderMapper; @@ -20,6 +23,7 @@ import org.dromara.wms.service.IWmsPurchaseOrderDetailService; import org.dromara.wms.service.IWmsPurchaseOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.Collection; @@ -120,22 +124,9 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { @Override public WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo) { String username = LoginHelper.getUsername(); - Date date = new Date(); - SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); - String orderDate = format.format(date); - String order = "PUR"; - String orderLast=""; - Integer value = nextSequence(); - if (value.toString().length()==4){ - sequence.set(1); - orderLast = generateOrder(sequence.get()); - }else { - orderLast = generateOrder(value); - } - String purOrder = order + orderDate + orderLast; WmsPurchaseOrder add = MapstructUtils.convert(bo, WmsPurchaseOrder.class); validEntityBeforeSave(add); - add.setPoNo(purOrder); + add.setPoNo(this.getPurOrder()); add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -153,6 +144,27 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { return value.toString(); } + /** + * 获取采购编号 + * @return + */ + public String getPurOrder(){ + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date); + String order = "PUR"; + String orderLast=""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String purOrder = order + orderDate + orderLast; + return purOrder; + } + /** * 修改采购订单 * @@ -189,4 +201,30 @@ public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { } return baseMapper.deleteByIds(ids) > 0; } + + /** + * ERP同步新增采购订单 + * @param bos + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public Boolean erpSyncPurchaseOrder(List bos) { + for (WmsPurchaseOrderBo bo : bos) { + bo.setPoNo(this.getPurOrder()); + bo.setPoStatus("1"); + bo.setPoType("2"); + List purchaseOrderDetailBoList = bo.getPurchaseOrderDetailBoList(); + if (purchaseOrderDetailBoList.isEmpty()) { + throw new ServiceException("此采购订单无物料!"); + } + for (WmsPurchaseOrderDetailBo detailBo : purchaseOrderDetailBoList) { + detailBo.setPoNo(bo.getPoNo()); + } + wmsPurchaseOrderDetailService.insertByBo(purchaseOrderDetailBoList); + } + return null; + } + + }