wuxw
2025-03-20 3b6f49f1123f68bb6d1424070600158f85b66a30
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package com.java110.report.cmd.community;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.context.CmdContextUtils;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.dict.DictDto;
import com.java110.dto.parking.ParkingAreaDto;
import com.java110.intf.community.ICommunityV1InnerServiceSMO;
import com.java110.intf.dev.IDictV1InnerServiceSMO;
import com.java110.intf.report.IReportCommunityInnerServiceSMO;
import com.java110.intf.user.IStaffCommunityV1InnerServiceSMO;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
 
import java.text.ParseException;
import java.util.List;
 
/**
 * 查询小区费用项树
 */
@Java110Cmd(serviceCode = "community.queryCommunityFeeTypeTree")
public class QueryCommunityFeeTypeTreeCmd extends Cmd {
 
    @Autowired
    private ICommunityV1InnerServiceSMO communityV1InnerServiceSMOImpl;
 
    @Autowired
    private IDictV1InnerServiceSMO dictV1InnerServiceSMOImpl;
 
    @Autowired
    private IStaffCommunityV1InnerServiceSMO staffCommunityV1InnerServiceSMOImpl;
 
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        // must be administrator
        super.validateAdmin(context);
    }
 
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
        List<CommunityDto> communityDtos = null;
 
        CommunityDto communityDto = new CommunityDto();
        String staffId = CmdContextUtils.getUserId(context);
 
        List<String> communityIds = staffCommunityV1InnerServiceSMOImpl.queryStaffCommunityIds(staffId);
 
        if (!ListUtil.isNull(communityIds)) {
            communityDto.setCommunityIds(communityIds.toArray(new String[communityIds.size()]));
        }
 
        communityDtos = communityV1InnerServiceSMOImpl.queryCommunitys(communityDto);
        JSONArray communitys = new JSONArray();
        if (ListUtil.isNull(communityDtos)) {
            context.setResponseEntity(ResultVo.createResponseEntity(communitys));
            return;
        }
 
        JSONObject communityInfo = null;
        for (CommunityDto tmpCommunityDto : communityDtos) {
            communityInfo = new JSONObject();
            communityInfo.put("id", "c_" + tmpCommunityDto.getCommunityId());
            communityInfo.put("communityId", tmpCommunityDto.getCommunityId());
            communityInfo.put("text", tmpCommunityDto.getName());
            communityInfo.put("icon", "/img/org.png");
            communityInfo.put("children", new JSONArray());
            communitys.add(communityInfo);
 
        }
 
        DictDto dictDto = new DictDto();
        dictDto.setTableName("pay_fee_config");
        dictDto.setTableColumns("fee_type_cd");
        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto);
 
        JSONObject community = null;
        for (int cIndex = 0; cIndex < communitys.size(); cIndex++) {
            community = communitys.getJSONObject(cIndex);
            // find floor data in unitDtos
            findFeeTypeCd(community, dictDtos);
        }
        context.setResponseEntity(ResultVo.createResponseEntity(communitys));
 
 
    }
 
    /**
     * find community floor data
     *
     * @param community       current community
     */
    private void findFeeTypeCd(JSONObject community, List<DictDto> dictDtos) {
        JSONArray feeTypeCds = community.getJSONArray("children");
        JSONObject feeTypeCd = null;
        for (DictDto tmpDictDto : dictDtos) {
            feeTypeCd = new JSONObject();
            feeTypeCd.put("id", "f_" + GenerateCodeFactory.getUUID());
            feeTypeCd.put("feeTypeCd", tmpDictDto.getStatusCd());
            feeTypeCd.put("communityId", community.getString("communityId"));
            feeTypeCd.put("text", tmpDictDto.getName());
            feeTypeCd.put("icon", "/img/floor.png");
            feeTypeCd.put("children", new JSONArray());
            feeTypeCds.add(feeTypeCd);
        }
 
        JSONObject feeFlag = null;
        JSONArray feeFlags = null;
        for (int cIndex = 0; cIndex < feeTypeCds.size(); cIndex++) {
            feeTypeCd = feeTypeCds.getJSONObject(cIndex);
            feeFlags = feeTypeCd.getJSONArray("children");
            // find floor data in unitDtos
            feeFlag = new JSONObject();
            feeFlag.put("id", "l_"+GenerateCodeFactory.getUUID());
            feeFlag.put("feeFlag", "1003006");
            feeFlag.put("communityId", community.getString("communityId"));
            feeFlag.put("feeTypeCd", feeTypeCd.getString("feeTypeCd"));
            feeFlag.put("text", "周期性费用");
            feeFlag.put("icon", "/img/unit.png");
            feeFlags.add(feeFlag);
 
            feeFlag = new JSONObject();
            feeFlag.put("id", "l_"+GenerateCodeFactory.getUUID());
            feeFlag.put("feeFlag", "2006012");
            feeFlag.put("communityId", community.getString("communityId"));
            feeFlag.put("feeTypeCd", feeTypeCd.getString("feeTypeCd"));
            feeFlag.put("text", "一次性费用");
            feeFlag.put("icon", "/img/unit.png");
            feeFlags.add(feeFlag);
        }
    }
 
 
 
}