package com.zy.asrs.utils; import com.core.exception.CoolException; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.common.model.enumUtils.OrderEnumVo; import com.zy.common.model.enumUtils.OrderInAndOutType; import com.zy.common.model.enumUtils.OrderMethodVo; import org.apache.poi.ss.formula.functions.T; import java.lang.reflect.Method; public class OrderInAndOutUtil { public static String enumUtil(boolean sign) { if (sign){ return OrderEnumVo.PAKIN.getCode(); } return OrderEnumVo.PAKOUT.getCode(); } public static Method implement(boolean sign,OrderMethodVo orderMethodVo){ Class casual = OrderInAndOutType.class; try{ switch (orderMethodVo){ case QUERY: return casual.getDeclaredMethod(OrderMethodVo.QUERY.getCode(), String.class); case INSERT_ORDER: return casual.getDeclaredMethod(OrderMethodVo.INSERT_ORDER.getCode(), Order.class); case INSERT_ORDERDETL: return casual.getDeclaredMethod(OrderMethodVo.INSERT_ORDERDETL.getCode(), Order.class, OrderDetl.class); case IMPLEMENT: return casual.getDeclaredMethod(OrderMethodVo.IMPLEMENT.getCode(), Object.class,Object.class); } } catch (Exception e) { throw new CoolException(e.getMessage()); } throw new CoolException("未知异常"); } public static void query(boolean sign,OrderMethodVo orderMethodVo,String orderNo){ OrderInAndOutType orderInAndOutType = OrderInAndOutType.valueOf(enumUtil(sign)); try{ implement(sign, orderMethodVo).invoke(orderInAndOutType,orderNo); } catch (Exception e) { throw new CoolException(e.getMessage()); } } public static void insert(boolean sign,OrderMethodVo orderMethodVo,Order order){ OrderInAndOutType orderInAndOutType = OrderInAndOutType.valueOf(enumUtil(sign)); try{ implement(sign, orderMethodVo).invoke(orderInAndOutType,order); } catch (Exception e) { throw new CoolException(e.getMessage()); } } public static void insert(boolean sign,OrderMethodVo orderMethodVo,Order order,OrderDetl orderDetl){ OrderInAndOutType orderInAndOutType = OrderInAndOutType.valueOf(enumUtil(sign)); try{ implement(sign, orderMethodVo).invoke(orderInAndOutType,order,orderDetl); } catch (Exception e) { throw new CoolException(e.getMessage()); } } }