package com.zy.asrs.utils; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.WrkMast; 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; import java.util.ArrayList; import java.util.List; public class OrderInAndOutUtil { public static String enumUtil(boolean sign) { if (sign){ return OrderEnumVo.PAKIN.getCode(); } return OrderEnumVo.PAKOUT.getCode(); } public static String enumUtil(String sign) { if (Cools.isEmpty(sign)){ return OrderEnumVo.PAKALL.getCode(); } else if (sign.equals("Y")){ return OrderEnumVo.PAKIN.getCode(); } else if (sign.equals("N")){ return OrderEnumVo.PAKOUT.getCode(); } return OrderEnumVo.PAKALL.getCode(); } public static OrderInAndOutType getOrderInAndOutType(String sign) { return OrderInAndOutType.valueOf(enumUtil(sign)); } public static OrderInAndOutType getOrderInAndOutType(boolean sign) { return OrderInAndOutType.valueOf(enumUtil(sign)); } public static boolean aBoolean(Object object){ if (Cools.isEmpty(object)){ throw new CoolException("null"); } else if (object instanceof Boolean) { return (boolean) object; } else { throw new CoolException("Unexpected return type"); } } public static Order aOrder(Object object){ if (Cools.isEmpty(object)){ return null; } else if (object instanceof Order) { return (Order) object; } else { throw new CoolException("Unexpected return type"); } } public static OrderDetl aOrderDetl(Object object){ if (Cools.isEmpty(object)){ return null; } else if (object instanceof OrderDetl) { return (OrderDetl) object; } else { throw new CoolException("Unexpected return type"); } } public static Method implement(OrderMethodVo orderMethodVo){ Class casual = OrderInAndOutType.class; try{ switch (orderMethodVo){ case QUERY: return casual.getDeclaredMethod(OrderMethodVo.QUERY.getCode(), String.class); case SELECT_BY_NO: return casual.getDeclaredMethod(OrderMethodVo.SELECT_BY_NO.getCode(), String.class); case SELECT_SETTLE: return casual.getDeclaredMethod(OrderMethodVo.SELECT_SETTLE.getCode(), Long.class); case SELECT_BY_ORDER_ID: return casual.getDeclaredMethod(OrderMethodVo.SELECT_BY_ORDER_ID.getCode(), Long.class); case SELECT_WORKING_DETLS: return casual.getDeclaredMethod(OrderMethodVo.SELECT_WORKING_DETLS.getCode(), Long.class); case CHECK_COMPLETE: return casual.getDeclaredMethod(OrderMethodVo.CHECK_COMPLETE.getCode(), String.class); case SAVE_HANDLER_ORDER: return casual.getDeclaredMethod(OrderMethodVo.SAVE_HANDLER_ORDER.getCode(), Boolean.class, WrkMast.class, List.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 UPDATE_ORDER: return casual.getDeclaredMethod(OrderMethodVo.UPDATE_ORDER.getCode(), Long.class,Long.class,Long.class); case UPDATE_ORDERDETL: return casual.getDeclaredMethod(OrderMethodVo.UPDATE_ORDERDETL.getCode(), Order.class,OrderDetl.class); case REMOVE: return casual.getDeclaredMethod(OrderMethodVo.REMOVE.getCode(), Long.class); case SELECT_COMPLETE: return casual.getDeclaredMethod(OrderMethodVo.SELECT_COMPLETE.getCode()); case SELECT_COMPLETE8: return casual.getDeclaredMethod(OrderMethodVo.SELECT_COMPLETE8.getCode()); case ADD_TO_LOG_TABLE_ORDER: return casual.getDeclaredMethod(OrderMethodVo.ADD_TO_LOG_TABLE_ORDER.getCode(), Order.class); case SELECT_ORDER_NO_L: return casual.getDeclaredMethod(OrderMethodVo.SELECT_ORDER_NO_L.getCode(), String.class); case SELECT_ORDER_MOVE_STATUS: return casual.getDeclaredMethod(OrderMethodVo.SELECT_ORDER_MOVE_STATUS.getCode()); case SELECT_ORDER_MOVE_STATUS_INITIAL: return casual.getDeclaredMethod(OrderMethodVo.SELECT_ORDER_MOVE_STATUS_INITIAL.getCode()); case SELECT_ITEM1: return casual.getDeclaredMethod(OrderMethodVo.SELECT_ITEM1.getCode(), Long.class,String.class,String.class); case SELECT_ITEM2: return casual.getDeclaredMethod(OrderMethodVo.SELECT_ITEM2.getCode(), String.class,String.class,String.class); case FIND_BY_LOOK: return casual.getDeclaredMethod(OrderMethodVo.FIND_BY_LOOK.getCode(), List.class, Long.class,String.class,String.class); case INCREASE: return casual.getDeclaredMethod(OrderMethodVo.INCREASE.getCode(), Long.class,String.class,String.class,Double.class); case DECREASE: return casual.getDeclaredMethod(OrderMethodVo.DECREASE.getCode(), String.class,String.class,String.class,Double.class); case MODIFY_STATUS: return casual.getDeclaredMethod(OrderMethodVo.MODIFY_STATUS.getCode(), Long.class,Integer.class); case ADD_TO_LOG_TABLE_ORDERDETL: return casual.getDeclaredMethod(OrderMethodVo.ADD_TO_LOG_TABLE_ORDERDETL.getCode(), OrderDetl.class); case INCREASE_QTY_BY_ORDER_NO: return casual.getDeclaredMethod(OrderMethodVo.INCREASE_QTY_BY_ORDER_NO.getCode(), String.class,String.class,String.class,Double.class); case INCREASE_WORKING_QTY: return casual.getDeclaredMethod(OrderMethodVo.INCREASE_WORKING_QTY.getCode(), Long.class,String.class,String.class,Double.class); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } throw new CoolException("未知异常"); } public static void query(Boolean sign,String orderNo){ try{ implement(OrderMethodVo.QUERY).invoke(getOrderInAndOutType(sign),orderNo); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void query(String sign,String orderNo){ try{ implement(OrderMethodVo.QUERY).invoke(getOrderInAndOutType(sign),orderNo); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectByNo(boolean sign,String orderNo){ try{ Object invoke = implement(OrderMethodVo.SELECT_BY_NO).invoke(getOrderInAndOutType(sign), orderNo); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectByNo(String sign,String orderNo){ try{ Object invoke = implement(OrderMethodVo.SELECT_BY_NO).invoke(getOrderInAndOutType(sign), orderNo); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectBySettle(boolean sign,long settle){ try{ Object invoke = implement(OrderMethodVo.SELECT_SETTLE).invoke(getOrderInAndOutType(sign), settle); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectBySettle(String sign,long settle){ try{ Object invoke = implement(OrderMethodVo.SELECT_SETTLE).invoke(getOrderInAndOutType(sign), settle); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectByOrderId(boolean sign,Long orderId){ try{ Object invoke = implement(OrderMethodVo.SELECT_BY_ORDER_ID).invoke(getOrderInAndOutType(sign), orderId); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectByOrderId(String sign,Long orderId){ try{ Object result = implement(OrderMethodVo.SELECT_BY_ORDER_ID).invoke(getOrderInAndOutType(sign), orderId); if (Cools.isEmpty(result)){ return new ArrayList<>(); } else if (result instanceof List) { return (List) result; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectWorkingDetls(boolean sign,Long orderId){ try{ Object result = implement(OrderMethodVo.SELECT_WORKING_DETLS).invoke(getOrderInAndOutType(sign), orderId); if (Cools.isEmpty(result)){ return new ArrayList<>(); } else if (result instanceof List) { return (List) result; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectWorkingDetls(String sign,Long orderId){ try{ Object result = implement(OrderMethodVo.SELECT_WORKING_DETLS).invoke(getOrderInAndOutType(sign), orderId); if (Cools.isEmpty(result)){ return new ArrayList<>(); } else if (result instanceof List) { return (List) result; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void checkComplete(boolean sign,String orderNo){ try{ implement(OrderMethodVo.CHECK_COMPLETE).invoke(getOrderInAndOutType(sign),orderNo); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void checkComplete(String sign,String orderNo){ try{ implement(OrderMethodVo.CHECK_COMPLETE).invoke(getOrderInAndOutType(sign),orderNo); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean saveHandlerOrder(boolean sign,Boolean pakin, WrkMast wrkMast, List wrkDetls){ try{ Object invoke = implement(OrderMethodVo.SAVE_HANDLER_ORDER).invoke(getOrderInAndOutType(sign), pakin, wrkMast, wrkDetls); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean saveHandlerOrder(String sign,Boolean pakin, WrkMast wrkMast, List wrkDetls){ try{ Object invoke = implement(OrderMethodVo.SAVE_HANDLER_ORDER).invoke(getOrderInAndOutType(sign), pakin, wrkMast, wrkDetls); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void insertOrder(boolean sign,Order order){ try{ implement(OrderMethodVo.INSERT_ORDER).invoke(getOrderInAndOutType(sign),order); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void insertOrder(String sign,Order order){ try{ implement(OrderMethodVo.INSERT_ORDER).invoke(getOrderInAndOutType(sign),order); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void insertOrderDetl(boolean sign,Order order, OrderDetl orderDetl){ try{ implement(OrderMethodVo.INSERT_ORDERDETL).invoke(getOrderInAndOutType(sign),order,orderDetl); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void insertOrderDetl(String sign,Order order, OrderDetl orderDetl){ try{ implement(OrderMethodVo.INSERT_ORDERDETL).invoke(getOrderInAndOutType(sign),order,orderDetl); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void updateOrder(boolean sign,Long id, Long settle, Long userId){ try{ implement(OrderMethodVo.UPDATE_ORDER).invoke(getOrderInAndOutType(sign),id,settle,userId); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void updateOrder(String sign,Long id, Long settle, Long userId){ try{ implement(OrderMethodVo.UPDATE_ORDER).invoke(getOrderInAndOutType(sign),id,settle,userId); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void updateOrderDetl(boolean sign,Order order, OrderDetl orderDetl){ try{ implement(OrderMethodVo.UPDATE_ORDERDETL).invoke(getOrderInAndOutType(sign),order,orderDetl); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void updateOrderDetl(String sign,Order order, OrderDetl orderDetl){ try{ implement(OrderMethodVo.UPDATE_ORDERDETL).invoke(getOrderInAndOutType(sign),order,orderDetl); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void remove(boolean sign,Long orderId){ try{ implement(OrderMethodVo.REMOVE).invoke(getOrderInAndOutType(sign),orderId); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static void remove(String sign,Long orderId){ try{ implement(OrderMethodVo.REMOVE).invoke(getOrderInAndOutType(sign),orderId); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectComplete(boolean sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_COMPLETE).invoke(getOrderInAndOutType(sign)); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectComplete(String sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_COMPLETE).invoke(getOrderInAndOutType(sign)); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectComplete8(boolean sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_COMPLETE8).invoke(getOrderInAndOutType(sign)); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectComplete8(String sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_COMPLETE8).invoke(getOrderInAndOutType(sign)); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean addToLogTableOrder(boolean sign,Order order){ try{ Object invoke = implement(OrderMethodVo.ADD_TO_LOG_TABLE_ORDER).invoke(getOrderInAndOutType(sign), order); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean addToLogTableOrder(String sign,Order order){ try{ Object invoke = implement(OrderMethodVo.ADD_TO_LOG_TABLE_ORDER).invoke(getOrderInAndOutType(sign), order); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectOrderNoL(boolean sign,String orderNo){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_NO_L).invoke(getOrderInAndOutType(sign),orderNo); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static List selectOrderNoL(String sign,String orderNo){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_NO_L).invoke(getOrderInAndOutType(sign),orderNo); if (Cools.isEmpty(invoke)){ return new ArrayList<>(); } else if (invoke instanceof List) { return (List) invoke; } else { throw new CoolException("Unexpected return type"); } } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectOrderMoveStatus(boolean sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_MOVE_STATUS).invoke(getOrderInAndOutType(sign)); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectOrderMoveStatus(String sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_MOVE_STATUS).invoke(getOrderInAndOutType(sign)); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectOrderMoveStatusInitial(boolean sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_MOVE_STATUS_INITIAL).invoke(getOrderInAndOutType(sign)); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static Order selectOrderMoveStatusInitial(String sign){ try{ Object invoke = implement(OrderMethodVo.SELECT_ORDER_MOVE_STATUS_INITIAL).invoke(getOrderInAndOutType(sign)); return aOrder(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl selectItem(boolean sign,Long orderId, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.SELECT_ITEM1).invoke(getOrderInAndOutType(sign), orderId, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl selectItem(String sign,Long orderId, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.SELECT_ITEM1).invoke(getOrderInAndOutType(sign), orderId, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl selectItem(boolean sign,String orderNo, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.SELECT_ITEM2).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl selectItem(String sign,String orderNo, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.SELECT_ITEM2).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl findByLook(boolean sign,List orderDetls, Long orderId, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.FIND_BY_LOOK).invoke(getOrderInAndOutType(sign), orderDetls, orderId, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static OrderDetl findByLook(String sign,List orderDetls, Long orderId, String matnr, String batch){ try{ Object invoke = implement(OrderMethodVo.FIND_BY_LOOK).invoke(getOrderInAndOutType(sign), orderDetls, orderId, matnr, batch); return aOrderDetl(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increase(boolean sign,Long orderId, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.INCREASE).invoke(getOrderInAndOutType(sign), orderId, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increase(String sign,Long orderId, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.INCREASE).invoke(getOrderInAndOutType(sign), orderId, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean decrease(boolean sign,String orderNo, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.DECREASE).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean decrease(String sign,String orderNo, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.DECREASE).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean modifyStatus(boolean sign,Long orderId, Integer status){ try{ Object invoke = implement(OrderMethodVo.MODIFY_STATUS).invoke(getOrderInAndOutType(sign), orderId, status); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean modifyStatus(String sign,Long orderId, Integer status){ try{ Object invoke = implement(OrderMethodVo.MODIFY_STATUS).invoke(getOrderInAndOutType(sign), orderId, status); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean addToLogTableOrderDetl(boolean sign,OrderDetl orderDetl){ try{ Object invoke = implement(OrderMethodVo.ADD_TO_LOG_TABLE_ORDERDETL).invoke(getOrderInAndOutType(sign), orderDetl); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean addToLogTableOrderDetl(String sign,OrderDetl orderDetl){ try{ Object invoke = implement(OrderMethodVo.ADD_TO_LOG_TABLE_ORDERDETL).invoke(getOrderInAndOutType(sign), orderDetl); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increaseQtyByOrderNo(boolean sign,String orderNo, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.INCREASE_QTY_BY_ORDER_NO).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increaseQtyByOrderNo(String sign,String orderNo, String matnr, String batch, Double qty){ try{ Object invoke = implement(OrderMethodVo.INCREASE_QTY_BY_ORDER_NO).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch, qty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increaseWorkQty(boolean sign,Long orderId, String matnr, String batch, Double workQty){ try{ Object invoke = implement(OrderMethodVo.INCREASE_WORKING_QTY).invoke(getOrderInAndOutType(sign), orderId, matnr, batch, workQty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } public static boolean increaseWorkQty(String sign,Long orderId, String matnr, String batch, Double workQty){ try{ Object invoke = implement(OrderMethodVo.INCREASE_WORKING_QTY).invoke(getOrderInAndOutType(sign), orderId, matnr, batch, workQty); return aBoolean(invoke); } catch (Exception e) { throw new CoolException(e.getCause().getMessage()); } } }