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.List;
|
|
public class OrderInAndOutUtil {
|
|
public static String enumUtil(boolean sign) {
|
if (sign){
|
return OrderEnumVo.PAKIN.getCode();
|
}
|
return OrderEnumVo.PAKOUT.getCode();
|
}
|
|
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<OrderInAndOutType> 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_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_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:
|
return casual.getDeclaredMethod(OrderMethodVo.ADD_TO_LOG_TABLE.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,OrderMethodVo orderMethodVo,String orderNo){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),orderNo);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static Order selectByNo(boolean sign,OrderMethodVo orderMethodVo,String orderNo){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderNo);
|
return aOrder(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static List<OrderDetl> selectByOrderId(boolean sign,OrderMethodVo orderMethodVo,Long orderId){
|
try{
|
Object result = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderId);
|
if (Cools.isEmpty(result)){
|
return null;
|
} else if (result instanceof List) {
|
return (List<OrderDetl>) result;
|
} else {
|
throw new CoolException("Unexpected return type");
|
}
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static List<OrderDetl> selectWorkingDetls(boolean sign,OrderMethodVo orderMethodVo,Long orderId){
|
try{
|
Object result = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderId);
|
if (Cools.isEmpty(result)){
|
return null;
|
} else if (result instanceof List) {
|
return (List<OrderDetl>) result;
|
} else {
|
throw new CoolException("Unexpected return type");
|
}
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void checkComplete(boolean sign,OrderMethodVo orderMethodVo,String orderNo){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),orderNo);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static boolean saveHandlerOrder(boolean sign,OrderMethodVo orderMethodVo,Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), pakin, wrkMast, wrkDetls);
|
return aBoolean(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void insertOrder(boolean sign,OrderMethodVo orderMethodVo,Order order){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),order);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void insertOrderDetl(boolean sign,OrderMethodVo orderMethodVo,Order order, OrderDetl orderDetl){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),order,orderDetl);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void updateOrder(boolean sign,OrderMethodVo orderMethodVo,Long id, Long settle, Long userId){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),id,settle,userId);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void updateOrderDetl(boolean sign,OrderMethodVo orderMethodVo,Order order, OrderDetl orderDetl){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),order,orderDetl);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static void remove(boolean sign,OrderMethodVo orderMethodVo,Long orderId){
|
try{
|
implement(orderMethodVo).invoke(getOrderInAndOutType(sign),orderId);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static List<Order> selectComplete(boolean sign,OrderMethodVo orderMethodVo){
|
try{
|
Object result = implement(orderMethodVo).invoke(getOrderInAndOutType(sign));
|
if (Cools.isEmpty(result)){
|
return null;
|
} else if (result instanceof List) {
|
return (List<Order>) result;
|
} else {
|
throw new CoolException("Unexpected return type");
|
}
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static OrderDetl selectItem(boolean sign,OrderMethodVo orderMethodVo,Long orderId, String matnr, String batch){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderId, matnr, batch);
|
return aOrderDetl(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static OrderDetl selectItem(boolean sign,OrderMethodVo orderMethodVo,String orderNo, String matnr, String batch){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderNo, matnr, batch);
|
return aOrderDetl(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static OrderDetl findByLook(boolean sign,OrderMethodVo orderMethodVo,List<OrderDetl> orderDetls, Long orderId, String matnr, String batch){
|
try{
|
Object invoke = implement(orderMethodVo).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,OrderMethodVo orderMethodVo,Long orderId, String matnr, String batch, Double qty){
|
try{
|
Object invoke = implement(orderMethodVo).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,OrderMethodVo orderMethodVo,String orderNo, String matnr, String batch, Double qty){
|
try{
|
Object invoke = implement(orderMethodVo).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,OrderMethodVo orderMethodVo,Long orderId, Integer status){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderId, status);
|
return aBoolean(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static boolean addToLogTable(boolean sign,OrderMethodVo orderMethodVo,OrderDetl orderDetl){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderDetl);
|
return aBoolean(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
public static boolean increaseQtyByOrderNo(boolean sign,OrderMethodVo orderMethodVo,String orderNo, String matnr, String batch, Double qty){
|
try{
|
Object invoke = implement(orderMethodVo).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,OrderMethodVo orderMethodVo,Long orderId, String matnr, String batch, Double workQty){
|
try{
|
Object invoke = implement(orderMethodVo).invoke(getOrderInAndOutType(sign), orderId, matnr, batch, workQty);
|
return aBoolean(invoke);
|
} catch (Exception e) {
|
throw new CoolException(e.getCause().getMessage());
|
}
|
}
|
|
|
}
|