WMS插件同步
This commit is contained in:
		
							parent
							
								
									40e8461237
								
							
						
					
					
						commit
						59c48a011c
					
				|  | @ -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<String, String> 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 { | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -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()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -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 { | ||||
| 
 | ||||
|     } | ||||
| } | ||||
|  | @ -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 { | ||||
|     } | ||||
| } | ||||
|  | @ -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}; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -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 { | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -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 { | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue