// Path: src/test/java/com/baidu/unbiz/multiengine/exception/BusinessException.java
// public class BusinessException extends RuntimeException {
// 
//     private static final long serialVersionUID = -7375423850222016116L;
// 
//     public BusinessException(String msg) {
//         super(msg);
//     }
// 
//     public BusinessException(Throwable cause) {
//         super(cause);
//     }
// 
//     public BusinessException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: src/test/java/com/baidu/unbiz/multiengine/vo/DeviceRequest.java
// public class DeviceRequest {
// 
//     private List<Integer> deviceIds;
// 
//     public List<Integer> getDeviceIds() {
//         return deviceIds;
//     }
// 
//     public void setDeviceIds(List<Integer> deviceIds) {
//         this.deviceIds = deviceIds;
//     }
// 
//     public static DeviceRequest build(QueryParam target) {
//         DeviceRequest req = new DeviceRequest();
// //        req.copyProperties(target);
//         return req;
//     }
// }
// 
// Path: src/test/java/com/baidu/unbiz/multiengine/vo/DeviceViewItem.java
// public class DeviceViewItem {
// 
//     private static final long serialVersionUID = 6132709579470894604L;
// 
//     private int planId;
// 
//     private String planName;
// 
//     private Integer deviceId;
// 
//     private String deviceName ;
// 
//     // getter and setter
//     public int getPlanId() {
//         return planId;
//     }
// 
//     public void setPlanId(int planId) {
//         this.planId = planId;
//     }
// 
//     public Integer getDeviceId() {
//         return deviceId;
//     }
// 
//     public void setDeviceId(Integer deviceId) {
//         this.deviceId = deviceId;
//     }
// 
//     public String getPlanName() {
//         return planName;
//     }
// 
//     public void setPlanName(String planName) {
//         this.planName = planName;
//     }
// 
//     public String getDeviceName() {
//         return deviceName;
//     }
// 
//     public void setDeviceName(String deviceName) {
//         this.deviceName = deviceName;
//     }
// 
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
//     }
// }


import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.baidu.unbiz.multiengine.exception.BusinessException;
import com.baidu.unbiz.multiengine.vo.DeviceRequest;
import com.baidu.unbiz.multiengine.vo.DeviceViewItem;
import com.baidu.unbiz.multitask.annotation.TaskBean;
import com.baidu.unbiz.multitask.annotation.TaskService;
package com.baidu.unbiz.multiengine.service;




/**
 * 该类会被并行组件监测到，并将其方法包装成可并行执行的Fetcher
 */
@TaskService
public class DevicePlanStatServiceImpl implements DevicePlanStatService {

    private static final Log LOG = LogFactory.getLog(DevicePlanStatServiceImpl.class);

    /**
     * 并行组件会将该方法包装成一个可并行执行的Fetcher
     */
    @TaskBean("deviceStatFetcher")
// Path: src/test/java/com/baidu/unbiz/multiengine/exception/BusinessException.java
// public class BusinessException extends RuntimeException {
// 
//     private static final long serialVersionUID = -7375423850222016116L;
// 
//     public BusinessException(String msg) {
//         super(msg);
//     }
// 
//     public BusinessException(Throwable cause) {
//         super(cause);
//     }
// 
//     public BusinessException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: src/test/java/com/baidu/unbiz/multiengine/vo/DeviceRequest.java
// public class DeviceRequest {
// 
//     private List<Integer> deviceIds;
// 
//     public List<Integer> getDeviceIds() {
//         return deviceIds;
//     }
// 
//     public void setDeviceIds(List<Integer> deviceIds) {
//         this.deviceIds = deviceIds;
//     }
// 
//     public static DeviceRequest build(QueryParam target) {
//         DeviceRequest req = new DeviceRequest();
// //        req.copyProperties(target);
//         return req;
//     }
// }
// 
// Path: src/test/java/com/baidu/unbiz/multiengine/vo/DeviceViewItem.java
// public class DeviceViewItem {
// 
//     private static final long serialVersionUID = 6132709579470894604L;
// 
//     private int planId;
// 
//     private String planName;
// 
//     private Integer deviceId;
// 
//     private String deviceName ;
// 
//     // getter and setter
//     public int getPlanId() {
//         return planId;
//     }
// 
//     public void setPlanId(int planId) {
//         this.planId = planId;
//     }
// 
//     public Integer getDeviceId() {
//         return deviceId;
//     }
// 
//     public void setDeviceId(Integer deviceId) {
//         this.deviceId = deviceId;
//     }
// 
//     public String getPlanName() {
//         return planName;
//     }
// 
//     public void setPlanName(String planName) {
//         this.planName = planName;
//     }
// 
//     public String getDeviceName() {
//         return deviceName;
//     }
// 
//     public void setDeviceName(String deviceName) {
//         this.deviceName = deviceName;
//     }
// 
//     public String toString() {
//         return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
//     }
// }


// Path: src/test/java/com/baidu/unbiz/multiengine/service/DevicePlanStatServiceImpl.java
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.baidu.unbiz.multiengine.exception.BusinessException;
import com.baidu.unbiz.multiengine.vo.DeviceRequest;
import com.baidu.unbiz.multiengine.vo.DeviceViewItem;
import com.baidu.unbiz.multitask.annotation.TaskBean;
import com.baidu.unbiz.multitask.annotation.TaskService;

package com.baidu.unbiz.multiengine.service;




/**
 * 该类会被并行组件监测到，并将其方法包装成可并行执行的Fetcher
 */
@TaskService
public class DevicePlanStatServiceImpl implements DevicePlanStatService {

    private static final Log LOG = LogFactory.getLog(DevicePlanStatServiceImpl.class);

    /**
     * 并行组件会将该方法包装成一个可并行执行的Fetcher
     */
    @TaskBean("deviceStatFetcher")
    public List<DeviceViewItem> queryPlanDeviceData(DeviceRequest req) {