diff --git a/ic/src/private/nccloud/wmssync/ml/m4a/WmsSyncAfterDeleteGeneralInListener.java b/ic/src/private/nccloud/wmssync/ml/m4a/WmsSyncAfterDeleteGeneralInListener.java new file mode 100644 index 00000000..caf82aa7 --- /dev/null +++ b/ic/src/private/nccloud/wmssync/ml/m4a/WmsSyncAfterDeleteGeneralInListener.java @@ -0,0 +1,42 @@ +package nccloud.wmssync.ml.m4a; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.bs.framework.common.NCLocator; +import nc.bs.ic.general.businessevent.ICGeneralCommonEvent; +import nc.bs.logging.Log; +import nc.vo.ic.m4a.entity.GeneralInHeadVO; +import nc.vo.ic.m4a.entity.GeneralInVO; +import nc.vo.org.StockOrgVO; +import nc.vo.pub.BusinessException; +import nccloud.api.uapbd.wms.utils.IWmsSyncUtils; + +import java.util.HashMap; +import java.util.Map; + +/** + * 其他入库单删除后同步WMS + * 支持的交易类型: + * - 4A-Cxx-14: 形态转换入库 -> XTRK + * - 4A-Cxx-13: 其他入库 -> QTRK + * - 4A-Cxx-12: 盘盈入库 -> ADJ + */ +public class WmsSyncAfterDeleteGeneralInListener implements IBusinessListener { + + /** + * 支持取消同步的交易类型编码映射 + * key: ERP交易类型编码, value: WMS交易类型 + */ + private static final Map SUPPORTED_TRAN_TYPES = new HashMap<>(); + + static { + SUPPORTED_TRAN_TYPES.put("4A-06", "XTRK"); // 形态转换入库 + SUPPORTED_TRAN_TYPES.put("4A-01", "QTRK"); // 其他入库 + SUPPORTED_TRAN_TYPES.put("4A-03", "ADJ"); // 盘盈入库 + } + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + } + +} diff --git a/ic/src/public/nccloud/resources/ic/ic/materialout/CancelMaterialOutWmsPlugin.java b/ic/src/public/nccloud/resources/ic/ic/materialout/CancelMaterialOutWmsPlugin.java new file mode 100644 index 00000000..e6e98e6b --- /dev/null +++ b/ic/src/public/nccloud/resources/ic/ic/materialout/CancelMaterialOutWmsPlugin.java @@ -0,0 +1,23 @@ +package nccloud.resources.ic.ic.materialout; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.bs.logging.Log; +import nc.vo.pub.BusinessException; +import nccloud.api.uapbd.wms.utils.WmsSyncUtils; + +// 取消材料出库单据同步到FLUX WMS +public class CancelMaterialOutWmsPlugin implements IBusinessListener { + + private static final Log log = Log.getInstance("wmslog"); + private final WmsSyncUtils wmsSyncUtils = new WmsSyncUtils(); + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + try { + } catch (Exception e) { + log.error("CancelMaterialOutWmsPlugin - 处理异常: " + e.getMessage(), e); + throw new BusinessException("取消材料出库单同步时报错,报错信息:" + e.getMessage()); + } + } +} diff --git a/qc/src/private/nccloud/wmssync/ml/c003/WmsSyncQcReportListener.java b/qc/src/private/nccloud/wmssync/ml/c003/WmsSyncQcReportListener.java new file mode 100644 index 00000000..c4a2984b --- /dev/null +++ b/qc/src/private/nccloud/wmssync/ml/c003/WmsSyncQcReportListener.java @@ -0,0 +1,12 @@ +package nccloud.wmssync.ml.c003; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.vo.pub.BusinessException; + +public class WmsSyncQcReportListener implements IBusinessListener { + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + + } +} diff --git a/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterDeleteWmsPlugin.java b/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterDeleteWmsPlugin.java new file mode 100644 index 00000000..95346a41 --- /dev/null +++ b/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterDeleteWmsPlugin.java @@ -0,0 +1,20 @@ +package nccloud.resources.ic.ic.materialin; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.bs.logging.Log; +import nc.vo.pub.BusinessException; +import nccloud.api.uapbd.wms.utils.WmsSyncUtils; + +/** + * 生产退料单删除后同步WMS + */ +public class MaterialInAfterDeleteWmsPlugin implements IBusinessListener { + + private static final Log log = Log.getInstance("wmslog"); + private final WmsSyncUtils wmsSyncUtils = new WmsSyncUtils(); + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + } +} diff --git a/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterSaveWmsPlugin.java b/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterSaveWmsPlugin.java new file mode 100644 index 00000000..71950409 --- /dev/null +++ b/uapbd/src/public/nccloud/resources/ic/ic/materialin/MaterialInAfterSaveWmsPlugin.java @@ -0,0 +1,61 @@ +package nccloud.resources.ic.ic.materialin; + +import nc.bs.businessevent.BdUpdateEvent; +import nc.bs.businessevent.BusinessEvent; +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.bs.ic.general.businessevent.ICGeneralCommonEvent; +import nc.bs.logging.Log; +import nc.vo.ic.m4d.entity.MaterialOutVO; +import nc.vo.pub.BusinessException; +import nccloud.api.uapbd.wms.utils.WmsSyncUtils; + +// 材料入库保存后同步到FLUX WMS +public class MaterialInAfterSaveWmsPlugin implements IBusinessListener { + + private static final Log log = Log.getInstance("wmslog"); + private final WmsSyncUtils wmsSyncUtils = new WmsSyncUtils(); + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + try { + log.info("MaterialInAfterSaveWmsPlugin - 开始处理生产退料入库WMS同步"); + // 获取单据数据 + MaterialOutVO[] materialOutVOs = getMaterialOutVOs(iBusinessEvent); + } catch (Exception e) { + log.error("MaterialInAfterSaveWmsPlugin - 处理异常: " + e.getMessage(), e); + throw new BusinessException("材料入库单同步时报错,报错信息:" + e.getMessage()); + } + } + + /** + * 从业务事件中获取生产退料入库数据 + */ + private MaterialOutVO[] getMaterialOutVOs(IBusinessEvent event) throws BusinessException { + Object object = null; + + // 根据不同的事件类型获取单据数据 + if (event instanceof BusinessEvent businessEvent) { + object = businessEvent.getObject(); + } else if (event instanceof BdUpdateEvent updateEvent) { + object = updateEvent.getNewObject(); + } else if (event instanceof ICGeneralCommonEvent commonEvent) { + object = commonEvent.getOldObjs(); + } else { + log.warn("MaterialInAfterSaveWmsPlugin - 未支持的事件类型: " + event.getClass().getName()); + return null; + } + + if (object == null) { + return null; + } + + // 转换为MaterialOutVO数组 + if (object.getClass().isArray()) { + return (MaterialOutVO[]) object; + } else { + return new MaterialOutVO[]{(MaterialOutVO) object}; + } + } + +} diff --git a/uapbd/src/public/nccloud/resources/ic/ic/materialout/MaterialOutAfterSaveWmsPlugin.java b/uapbd/src/public/nccloud/resources/ic/ic/materialout/MaterialOutAfterSaveWmsPlugin.java new file mode 100644 index 00000000..03353134 --- /dev/null +++ b/uapbd/src/public/nccloud/resources/ic/ic/materialout/MaterialOutAfterSaveWmsPlugin.java @@ -0,0 +1,20 @@ +package nccloud.resources.ic.ic.materialout; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.bs.logging.Log; +import nc.vo.pub.BusinessException; +import nccloud.api.uapbd.wms.utils.WmsSyncUtils; + +// 材料出库保存后同步到FLUX WMS +public class MaterialOutAfterSaveWmsPlugin implements IBusinessListener { + + private static final Log log = Log.getInstance("wmslog"); + private final WmsSyncUtils wmsSyncUtils = new WmsSyncUtils(); + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + + } + +} diff --git a/uapbd/src/public/nccloud/wmssync/ml/WmsSyncMaterialListener.java b/uapbd/src/public/nccloud/wmssync/ml/WmsSyncMaterialListener.java new file mode 100644 index 00000000..a22e994c --- /dev/null +++ b/uapbd/src/public/nccloud/wmssync/ml/WmsSyncMaterialListener.java @@ -0,0 +1,18 @@ +package nccloud.wmssync.ml; + +import nc.bs.businessevent.IBusinessEvent; +import nc.bs.businessevent.IBusinessListener; +import nc.vo.pub.BusinessException; + +/** + * 物料同步富勒WMS + */ +public class WmsSyncMaterialListener implements IBusinessListener { + + @Override + public void doAction(IBusinessEvent iBusinessEvent) throws BusinessException { + + } + +} +