zm
2020-05-18 a18bfacbf56b401f6e0fdae8710fbca4df8cff77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package com.changhong.epc.count.service.count.data.condition;
 
import com.changhong.epc.bean.tenant.norm.extend.AppStanderExtend;
import com.changhong.epc.count.service.count.execution.ICounter;
import com.changhong.epc.count.service.count.model.AmountKey;
 
import java.util.List;
import java.util.Map;
 
/**
 * 补助标准迭代器
 * @ClassName: ICountConditionIter
 * @author [九鼎联合科技]
 * @date 2017年8月30日 下午10:14:38
 * @param <A> 单元实体
 * @param <T> 参数实体
 * @param <P> 参数实体
 */
public interface ICountConditionIter<A, T, P> {
    
    /**
     * 添加迭代数据源
     * @param data
     */
    ICountConditionIter<A, T, P> setDataSource(List<T>  data);
 
    /**
     * 组迭代
     * @return
     */
    void initGroup();
    Boolean hasGropNext();
    T getCurrGroup();
    void groupNext();
    void gropReset();
 
    /**
     * 行迭代
     * @return
     */
    void initRow();
    Boolean hasRowNext();
    void rowNext();
    List<A> cruuRow();
 
    /**
     * 列迭代
     * @return
     */
    void initCol();
    Boolean hasColNext();
    A  colNext();
    A  cruuCol();
    
    /**
     * 获取计算执行器
     *     · 普通计算 
     *     · 系统变量计算
     * @return
     */
    ICounter<A, P> getExeCounter();
    ICounter<A, P> getExeCounter(AppStanderExtend appStanderExtend);
    
    /**
     * 返回记录
     * @return
     */
    Map<AmountKey, String> getRecord();
}