java110
2021-03-19 c121328501fe358d93dc404868d9638f48482388
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
package com.java110.fee.bmo.feeManualCollectionDetail.impl;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.feeManualCollection.FeeManualCollectionDto;
import com.java110.dto.feeManualCollection.FeeManualCollectionDetailDto;
import com.java110.fee.bmo.feeManualCollectionDetail.IGetExportCollectionBMO;
import com.java110.intf.fee.IFeeManualCollectionDetailInnerServiceSMO;
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
import com.java110.intf.fee.IFeeManualCollectionInnerServiceSMO;
import com.java110.utils.util.DateUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
 
import java.math.BigDecimal;
import java.util.List;
 
@Service("getCollectionBMOImpl")
public class GetCollectionBMOImpl implements IGetExportCollectionBMO {
 
    @Autowired
    private IFeeManualCollectionDetailInnerServiceSMO feeManualCollectionDetailInnerServiceSMOImpl;
 
    @Autowired
    private IFeeManualCollectionInnerServiceSMO feeManualCollectionInnerServiceSMOImpl;
 
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
 
    /**
     * @param feeManualCollectionDetailDto
     * @return 订单服务能够接受的报文
     */
    public ResponseEntity<String> get(FeeManualCollectionDetailDto feeManualCollectionDetailDto) {
 
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setCommunityId(feeManualCollectionDetailDto.getCommunityId());
        feeConfigDto.setIsDefault(FeeConfigDto.CUSTOME_FEE_CONFIG);
        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
 
        JSONArray data = new JSONArray();
 
        if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
            return ResultVo.createResponseEntity(0, 0, data);
        }
        FeeManualCollectionDto feeManualCollectionDto = new FeeManualCollectionDto();
        feeManualCollectionDto.setCommunityId(feeManualCollectionDetailDto.getCommunityId());
        feeManualCollectionDto.setState(FeeManualCollectionDto.STATE_COLLECTION);
        List<FeeManualCollectionDto> feeManualCollectionDtos = feeManualCollectionInnerServiceSMOImpl.queryFeeManualCollections(feeManualCollectionDto);
 
        if (feeManualCollectionDtos == null || feeManualCollectionDtos.size() < 1) {
            return ResultVo.createResponseEntity(0, 0, data);
        }
        for (FeeManualCollectionDto tmpFeeManualCollectionDto : feeManualCollectionDtos) {
 
            doDealDetail(tmpFeeManualCollectionDto, feeConfigDtos, data);
 
        }
        return ResultVo.createResponseEntity(data);
    }
 
    private void doDealDetail(FeeManualCollectionDto tmpFeeManualCollectionDto, List<FeeConfigDto> feeConfigDtos, JSONArray data) {
 
        JSONObject dataObj = new JSONObject(true);
 
        List<FeeManualCollectionDetailDto> feeManualCollectionDetailDtos = null;
 
        FeeManualCollectionDetailDto feeManualCollectionDetailDto = new FeeManualCollectionDetailDto();
        feeManualCollectionDetailDto.setCollectionId(tmpFeeManualCollectionDto.getCollectionId());
        feeManualCollectionDetailDto.setCommunityId(tmpFeeManualCollectionDto.getCommunityId());
        feeManualCollectionDetailDto.setState(FeeManualCollectionDetailDto.STATE_COLLECTION);
 
        feeManualCollectionDetailDtos = feeManualCollectionDetailInnerServiceSMOImpl.queryFeeManualCollectionDetails(feeManualCollectionDetailDto);
 
        if (feeManualCollectionDetailDtos == null || feeManualCollectionDetailDtos.size() < 1) {
            return;
        }
 
        dataObj.put("房号", tmpFeeManualCollectionDto.getRoomName());
        dataObj.put("姓名", tmpFeeManualCollectionDto.getOwnerName());
        dataObj.put("联系电话", tmpFeeManualCollectionDto.getLink());
        dataObj.put("收费面积/m2", tmpFeeManualCollectionDto.getRoomArea());
 
        BigDecimal totalFee = new BigDecimal(0);
 
        for (FeeConfigDto feeConfigDto : feeConfigDtos) {
 
            FeeManualCollectionDetailDto tmpFeeManualCollectionDetailDto = hasFeeConfig(feeConfigDto, feeManualCollectionDetailDtos);
 
            if (tmpFeeManualCollectionDetailDto == null) {
                dataObj.put(feeConfigDto.getFeeName(), "0");
                dataObj.put(feeConfigDto.getFeeName() + "_起止日期", "-");
                continue;
            }
 
            BigDecimal amount = new BigDecimal(tmpFeeManualCollectionDetailDto.getAmount());
 
            totalFee = totalFee.add(amount);
 
            dataObj.put(feeConfigDto.getFeeName(), tmpFeeManualCollectionDetailDto.getAmount());
            dataObj.put(feeConfigDto.getFeeName() + "_起止日期",
                    DateUtil.dateTimeToDate(tmpFeeManualCollectionDetailDto.getStartTime())
                            + "至" + DateUtil.dateTimeToDate(tmpFeeManualCollectionDetailDto.getEndTime()));
        }
 
        dataObj.put("应交款总额", totalFee.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
 
        data.add(dataObj);
 
    }
 
    private FeeManualCollectionDetailDto hasFeeConfig(FeeConfigDto feeConfigDto, List<FeeManualCollectionDetailDto> feeManualCollectionDetailDtos) {
 
        for (FeeManualCollectionDetailDto feeManualCollectionDetailDto : feeManualCollectionDetailDtos) {
            if (feeManualCollectionDetailDto.getConfigId().equals(feeConfigDto.getConfigId())) {
                return feeManualCollectionDetailDto;
            }
        }
 
        return null;
    }
 
}