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
package pwc.taxtech.atms.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import pwc.taxtech.atms.MyMapper;
import pwc.taxtech.atms.entitiy.EnterpriseAccount;
@Mapper
public interface CustomAccountMapper extends MyMapper {
@Select("SELECT ea.ID,ea.Code,ea.Name,ea.ParentCode,ea.FullName,"
+ "CASE WHEN am.StandardAccountCode='0000' THEN am.StandardAccountCode ELSE sa.Code END StdCode,"
+ "sa.Name StdName,sa.ParentCode StdParentCode "
+ "FROM (SELECT * FROM EnterpriseAccount where parentcode=#{parentCode} and Enterpriseaccountsetid=#{accountSetID}) ea "
+ "LEFT JOIN (SELECT * FROM AccountMapping WHERE OrganizationID=#{orgID} AND IndustryID=#{industryID} AND EnterpriseAccountSetID=#{accountSetID}) am ON ea.Code=am.EnterpriseAccountCode "
+ "LEFT JOIN (SELECT * FROM StandardAccount WHERE IndustryID=#{industryID}) sa ON am.StandardAccountCode=sa.Code "
+ "ORDER BY ea.CODE")
@Results({
@Result(id = true, column = "ID", property = "ID"),
@Result(column = "Code", property = "code"),
@Result(column = "Name", property = "name"),
@Result(column = "ParentCode", property = "parentCode"),
@Result(column = "FullName", property = "fullName"),
@Result(column = "StdCode", property = "stdCode"),
@Result(column = "StdName", property = "stdName")
//@Result(column = "StdParentCode", property = "stdParentCode")
})
List<EnterpriseAccount> getMappingResult(@Param(value="accountSetID") String accountSetID,
@Param(value="industryID") String industryID, @Param(value="orgID") String orgID,
@Param(value="parentCode") String parentCode);
@Select("SELECT COUNT(1) FROM AccountMapping "
+ "WHERE EnterpriseAccountCode=#{enterpirseAccountCode} "
+ "AND EnterpriseAccountSetID=#{enterpriseAccountSetID} "
+ "AND OrganizationID=#{organizationID} "
+ "AND IndustryID=#{organizationID} "
+ "AND StandardAccountCode<>'0000'")
Long countStandardAccounts(@Param(value="enterpriseAccountSetID") String enterpriseAccountSetID,
@Param(value="enterpirseAccountCode") String enterpirseAccountCode,
@Param(value="industryID") String industryID,
@Param(value="organizationID") String organizationID);
}