package com.zy.common.model.enumUtils; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.service.OrderDetlPakinService; import com.zy.asrs.service.OrderDetlPakoutService; import com.zy.asrs.service.OrderPakinService; import com.zy.asrs.service.OrderPakoutService; import com.zy.asrs.utils.OrderTransFormationUtil; import lombok.Setter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.EnumSet; import java.util.List; /** * Created by IX on 2024/12/16 */ public enum OrderInAndOutType { PAKIN{ @Transactional public void implement() {} @Transactional public void query(String orderNo) { OrderPakin orderPakin = orderPakinService.selectByNo(orderNo); if (!Cools.isEmpty(orderPakin)) { throw new CoolException(orderNo + "单据已存在,请勿重复提交"); } } @Transactional public Order selectByNo(String orderNo) { OrderPakin orderPakin = orderPakinService.selectByNo(orderNo); if (Cools.isEmpty(orderPakin)) { return null; } return OrderTransFormationUtil.transformationOrderPakin(orderPakin); } @Transactional public List selectBySettle(Long settle) { List orderPakinList = orderPakinService.selectBySettle(settle); return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); } @Transactional public List selectByOrderId(Long orderId) { List orderDetlPakinList = orderDetlPakinService.selectByOrderId(orderId); return OrderTransFormationUtil.transformationOrderDetlListPakin(orderDetlPakinList); } @Transactional public List selectWorkingDetls(Long orderId) { List orderDetlPakinList = orderPakinService.selectWorkingDetls(orderId); return OrderTransFormationUtil.transformationOrderDetlListPakin(orderDetlPakinList); } @Transactional public void checkComplete(String orderNo) { orderPakinService.checkComplete(orderNo); } @Transactional public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List wrkDetls) { return orderPakinService.saveHandlerOrder(pakin,wrkMast,wrkDetls); } @Transactional public void insertOrder(Order order) { OrderPakin orderPakin = new OrderPakin(); orderPakin.sync(order); if (!orderPakinService.insert(orderPakin)) { throw new CoolException("生成单据主档失败,请联系管理员"); } } @Transactional public void insertOrderDetl(Order order, OrderDetl orderDetl) { OrderPakin orderPakin = orderPakinService.selectByNo(order.getOrderNo()); OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); orderDetlPakin.sync(orderDetl); orderDetlPakin.setOrderId(orderPakin.getId()); orderDetlPakin.setOrderNo(orderPakin.getOrderNo()); if (!orderDetlPakinService.insert(orderDetlPakin)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } @Transactional public void updateOrder(Long id, Long settle, Long userId) { if (!orderPakinService.updateSettle(id, settle, userId)) { throw new CoolException("服务器内部错误,请联系管理员"); } } @Transactional public void updateOrderDetl(Order order, OrderDetl orderDetl) { OrderPakin orderPakin = orderPakinService.selectByNo(order.getOrderNo()); OrderDetlPakin orderDetlPakin = new OrderDetlPakin(); orderDetlPakin.sync(orderDetl); orderDetlPakin.setOrderId(orderPakin.getId()); orderDetlPakin.setOrderNo(orderPakin.getOrderNo()); if (!orderDetlPakinService.insert(orderDetlPakin)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } @Transactional public void remove(Long orderId) { try{ orderPakinService.remove(orderId); } catch (Exception e){ throw new CoolException("删除单据失败"); } } @Transactional public List selectComplete() { List orderPakinList = orderPakinService.selectComplete(); return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); } @Transactional public List selectComplete8() { List orderPakinList = orderPakinService.selectComplete8(); return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); } @Transactional public boolean addToLogTableOrder(Order order) { OrderPakin orderPakin = OrderTransFormationUtil.transformationPakin(order); return orderPakinService.addToLogTable(orderPakin); } @Transactional public List selectOrderNoL(String orderNo) { List orderPakinList = orderPakinService.selectorderNoL(orderNo); return OrderTransFormationUtil.transformationOrderListPakin(orderPakinList); } @Transactional public Order selectOrderMoveStatus() { OrderPakin orderPakin = orderPakinService.selectOrderMoveStatus(); return OrderTransFormationUtil.transformationOrderPakin(orderPakin); } @Transactional public Order selectOrderMoveStatusInitial() { OrderPakin orderPakin = orderPakinService.selectOrderMoveStatusInitial(); return OrderTransFormationUtil.transformationOrderPakin(orderPakin); } @Transactional public OrderDetl selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); } @Transactional public OrderDetl selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderNo, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); } @Transactional public OrderDetl findByLook(List orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { List orderDetlPakins = OrderTransFormationUtil.transformationDetlListPakin(orderDetls); OrderDetlPakin orderDetlPakin = orderDetlPakinService.findByLook(orderDetlPakins, orderId, matnr,batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakin(orderDetlPakin); } @Transactional public boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakinService.increase(orderId, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakinService.decrease(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean modifyStatus(Long orderId, Integer status) { return orderDetlPakinService.modifyStatus(orderId, status); } @Transactional public boolean addToLogTableOrderDetl(OrderDetl orderDetl) { OrderDetlPakin orderDetlPakin = OrderTransFormationUtil.transformationDetlPakin(orderDetl); return orderDetlPakinService.addToLogTable(orderDetlPakin); } @Transactional public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakinService.increaseQtyByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double workQty) { return orderDetlPakinService.increaseWorkQty(orderId, matnr, batch,brand,standby1,standby2,standby3, workQty); } }, PAKOUT{ @Transactional public void implement() {} @Transactional public void query(String orderNo) { OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo); if (!Cools.isEmpty(orderPakout)) { throw new CoolException(orderNo + "单据已存在,请勿重复提交"); } } @Transactional public Order selectByNo(String orderNo) { OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo); if (Cools.isEmpty(orderPakout)) { return null; } return OrderTransFormationUtil.transformationOrderPakout(orderPakout); } @Transactional public List selectBySettle(Long settle) { List orderPakoutList = orderPakoutService.selectBySettle(settle); return OrderTransFormationUtil.transformationOrderListPakout(orderPakoutList); } @Transactional public List selectByOrderId(Long orderId) { List orderDetlPakoutList = orderDetlPakoutService.selectByOrderId(orderId); return OrderTransFormationUtil.transformationOrderDetlListPakout(orderDetlPakoutList); } @Transactional public List selectWorkingDetls(Long orderId) { List orderDetlPakoutList = orderPakoutService.selectWorkingDetls(orderId); return OrderTransFormationUtil.transformationOrderDetlListPakout(orderDetlPakoutList); } @Transactional public void checkComplete(String orderNo) { orderPakoutService.checkComplete(orderNo); } @Transactional public boolean saveHandlerOrder(Boolean Pakout, WrkMast wrkMast, List wrkDetls) { return orderPakoutService.saveHandlerOrder(Pakout,wrkMast,wrkDetls); } @Transactional public void insertOrder(Order order) { OrderPakout orderPakout = new OrderPakout(); orderPakout.sync(order); if (!orderPakoutService.insert(orderPakout)) { throw new CoolException("生成单据主档失败,请联系管理员"); } } @Transactional public void insertOrderDetl(Order order, OrderDetl orderDetl) { OrderPakout orderPakout = orderPakoutService.selectByNo(order.getOrderNo()); OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); orderDetlPakout.sync(orderDetl); orderDetlPakout.setOrderId(orderPakout.getId()); orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); if (!orderDetlPakoutService.insert(orderDetlPakout)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } @Transactional public void updateOrder(Long id, Long settle, Long userId) { if (!orderPakoutService.updateSettle(id, settle, userId)) { throw new CoolException("服务器内部错误,请联系管理员"); } } @Transactional public void updateOrderDetl(Order order, OrderDetl orderDetl) { OrderPakout orderPakout = orderPakoutService.selectByNo(order.getOrderNo()); OrderDetlPakout orderDetlPakout = new OrderDetlPakout(); orderDetlPakout.sync(orderDetl); orderDetlPakout.setOrderId(orderPakout.getId()); orderDetlPakout.setOrderNo(orderPakout.getOrderNo()); if (!orderDetlPakoutService.insert(orderDetlPakout)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } @Transactional public void remove(Long orderId) { try{ orderPakoutService.remove(orderId); } catch (Exception e){ throw new CoolException("删除单据失败"); } } @Transactional public List selectComplete8() { List orderPakoutList = orderPakoutService.selectComplete8(); return OrderTransFormationUtil.transformationOrderListPakout(orderPakoutList); } @Transactional public boolean addToLogTableOrder(Order order) { OrderPakout orderPakout = OrderTransFormationUtil.transformationPakout(order); return orderPakoutService.addToLogTable(orderPakout); } @Transactional public List selectOrderNoL(String orderNo) { List orderPakoutList = orderPakoutService.selectorderNoL(orderNo); return OrderTransFormationUtil.transformationOrderListPakout(orderPakoutList); } @Transactional public Order selectOrderMoveStatus() { OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus(); return OrderTransFormationUtil.transformationOrderPakout(orderPakout); } @Transactional public Order selectOrderMoveStatusInitial() { OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatusInitial(); return OrderTransFormationUtil.transformationOrderPakout(orderPakout); } @Transactional public List selectComplete() { List orderPakoutList = orderPakoutService.selectComplete(); return OrderTransFormationUtil.transformationOrderListPakout(orderPakoutList); } @Transactional public OrderDetl selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakout(orderDetlPakout); } @Transactional public OrderDetl selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(orderNo, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakout(orderDetlPakout); } @Transactional public OrderDetl findByLook(List orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { List orderDetlPakouts = OrderTransFormationUtil.transformationDetlListPakout(orderDetls); OrderDetlPakout orderDetlPakout = orderDetlPakoutService.findByLook(orderDetlPakouts, orderId, matnr,batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetlPakout(orderDetlPakout); } @Transactional public boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakoutService.increase(orderId, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakoutService.decrease(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean modifyStatus(Long orderId, Integer status) { return orderDetlPakoutService.modifyStatus(orderId, status); } @Transactional public boolean addToLogTableOrderDetl(OrderDetl orderDetl) { OrderDetlPakout orderDetlPakout = OrderTransFormationUtil.transformationDetlPakout(orderDetl); return orderDetlPakoutService.addToLogTable(orderDetlPakout); } @Transactional public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { return orderDetlPakoutService.increaseQtyByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty); } @Transactional public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double workQty) { return orderDetlPakoutService.increaseWorkQty(orderId, matnr, batch,brand,standby1,standby2,standby3, workQty); } }, PAKALL{ @Transactional public void implement() {} @Transactional public void query(String orderNo) { OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo); if (!Cools.isEmpty(orderPakout)) { throw new CoolException(orderNo + "单据已存在,请勿重复提交"); } } @Transactional public Order selectByNo(String orderNo) { OrderPakin orderPakin = orderPakinService.selectByNo(orderNo); if (Cools.isEmpty(orderPakin)) { OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo); if (Cools.isEmpty(orderPakout)) { return null; } return OrderTransFormationUtil.transformationOrder(null,orderPakout); } return OrderTransFormationUtil.transformationOrder(orderPakin,null); } @Transactional public List selectBySettle(Long settle) { List orderPakinList = orderPakinService.selectBySettle(settle); List orderPakoutList = orderPakoutService.selectBySettle(settle); return OrderTransFormationUtil.transformationOrderList(orderPakinList,orderPakoutList); } @Transactional public List selectByOrderId(Long orderId) { List orderDetlPakinList = orderDetlPakinService.selectByOrderId(orderId); List orderDetlPakoutList = orderDetlPakoutService.selectByOrderId(orderId); return OrderTransFormationUtil.transformationOrderDetlList(orderDetlPakinList,orderDetlPakoutList); } @Transactional public List selectWorkingDetls(Long orderId) { List orderDetlPakinList = orderPakinService.selectWorkingDetls(orderId); List orderDetlPakoutList = orderPakoutService.selectWorkingDetls(orderId); return OrderTransFormationUtil.transformationOrderDetlList(orderDetlPakinList,orderDetlPakoutList); } @Transactional public void checkComplete(String orderNo) { throw new CoolException("此方法无用!请好好写程序!!!403"); } @Transactional public boolean saveHandlerOrder(Boolean Pakout, WrkMast wrkMast, List wrkDetls) { throw new CoolException("此方法无用!请好好写程序!!!407"); } @Transactional public void insertOrder(Order order) { throw new CoolException("此方法无用!请好好写程序!!!411"); } @Transactional public void insertOrderDetl(Order order, OrderDetl orderDetl) { throw new CoolException("此方法无用!请好好写程序!!!415"); } @Transactional public void updateOrder(Long id, Long settle, Long userId) { throw new CoolException("此方法无用!请好好写程序!!!419"); } @Transactional public void updateOrderDetl(Order order, OrderDetl orderDetl) { throw new CoolException("此方法无用!请好好写程序!!!423"); } @Transactional public void remove(Long orderId) { throw new CoolException("此方法无用!请好好写程序!!!427"); } @Transactional public List selectComplete8() { List orderPakinList = orderPakinService.selectComplete8(); List orderPakoutList = orderPakoutService.selectComplete8(); return OrderTransFormationUtil.transformationOrderList(orderPakinList,orderPakoutList); } @Transactional public boolean addToLogTableOrder(Order order) { throw new CoolException("此方法无用!请好好写程序!!!440"); } @Transactional public List selectOrderNoL(String orderNo) { List orderPakinList = orderPakinService.selectorderNoL(orderNo); List orderPakoutList = orderPakoutService.selectorderNoL(orderNo); return OrderTransFormationUtil.transformationOrderList(orderPakinList,orderPakoutList); } @Transactional public Order selectOrderMoveStatus() { OrderPakin orderPakin = orderPakinService.selectOrderMoveStatus(); OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatus(); return OrderTransFormationUtil.transformationOrder(orderPakin,orderPakout); } @Transactional public Order selectOrderMoveStatusInitial() { OrderPakin orderPakin = orderPakinService.selectOrderMoveStatusInitial(); OrderPakout orderPakout = orderPakoutService.selectOrderMoveStatusInitial(); return OrderTransFormationUtil.transformationOrder(orderPakin,orderPakout); } @Transactional public List selectComplete() { List orderPakinList = orderPakinService.selectComplete(); List orderPakoutList = orderPakoutService.selectComplete(); return OrderTransFormationUtil.transformationOrderList(orderPakinList,orderPakoutList); } @Transactional public OrderDetl selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3); OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetl(orderDetlPakin,orderDetlPakout); } @Transactional public OrderDetl selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem(orderNo, matnr, batch,brand,standby1,standby2,standby3); OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(orderNo, matnr, batch,brand,standby1,standby2,standby3); return OrderTransFormationUtil.transformationOrderDetl(orderDetlPakin,orderDetlPakout); } @Transactional public OrderDetl findByLook(List orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) { throw new CoolException("此方法无用!请好好写程序!!!487"); } @Transactional public boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { throw new CoolException("此方法无用!请好好写程序!!!491"); } @Transactional public boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { throw new CoolException("此方法无用!请好好写程序!!!495"); } @Transactional public boolean modifyStatus(Long orderId, Integer status) { throw new CoolException("此方法无用!请好好写程序!!!499"); } @Transactional public boolean addToLogTableOrderDetl(OrderDetl orderDetl) { throw new CoolException("此方法无用!请好好写程序!!!503"); } @Transactional public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) { throw new CoolException("此方法无用!请好好写程序!!!507"); } @Transactional public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double workQty) { throw new CoolException("此方法无用!请好好写程序!!!511"); } }, ; public abstract void implement(); public abstract void query(String orderNo); public abstract Order selectByNo(String orderNo); public abstract List selectBySettle(Long settle); public abstract List selectByOrderId(Long orderId); public abstract List selectWorkingDetls(Long orderId); public abstract void checkComplete(String orderNo); public abstract boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List wrkDetls); public abstract void insertOrder(Order order); public abstract void insertOrderDetl(Order order, OrderDetl orderDetl); public abstract void updateOrder(Long id, Long settle, Long userId); public abstract void updateOrderDetl(Order order, OrderDetl orderDetl); public abstract void remove(Long orderId); public abstract List selectComplete(); public abstract List selectComplete8(); public abstract boolean addToLogTableOrder(Order order); public abstract List selectOrderNoL(String orderNo); public abstract Order selectOrderMoveStatus(); public abstract Order selectOrderMoveStatusInitial(); public abstract OrderDetl selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3); public abstract OrderDetl selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3); public abstract OrderDetl findByLook(List orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3); public abstract boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty); public abstract boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty); public abstract boolean modifyStatus(Long orderId, Integer status); public abstract boolean addToLogTableOrderDetl(OrderDetl orderDetl); public abstract boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty); public abstract boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double workQty); @Setter OrderPakinService orderPakinService; @Setter OrderDetlPakinService orderDetlPakinService; @Setter OrderPakoutService orderPakoutService; @Setter OrderDetlPakoutService orderDetlPakoutService; @Component public static class ReportTypeServiceInjector { @Autowired OrderPakinService orderPakinService; @Autowired OrderDetlPakinService orderDetlPakinService; @Autowired OrderPakoutService orderPakoutService; @Autowired OrderDetlPakoutService orderDetlPakoutService; @PostConstruct public void postConstruct(){ for(OrderInAndOutType orderInAndOutType : EnumSet.allOf(OrderInAndOutType.class)){ orderInAndOutType.setOrderPakinService(orderPakinService); orderInAndOutType.setOrderDetlPakinService(orderDetlPakinService); orderInAndOutType.setOrderPakoutService(orderPakoutService); orderInAndOutType.setOrderDetlPakoutService(orderDetlPakoutService); } } } }