|  |  |  | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSt.StClientAmountDayMapper ; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSt.StClientAmountMonthMapper ; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSt.StClientAmountYearMapper ; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voSt.VoStClientAmountDay; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voSt.*; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.dubbo.common.utils.PojoUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.text.ParseException; | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public QueryResultVo<List<VoStClientAmountDay>> selectStClientAmountDay(StClientQo qo) throws ParseException { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询农户用水日统计 | 
|---|
|  |  |  | * @param qo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<List<VoStClientAmountDay>> selectStClientAmountDay(StClientQo qo) { | 
|---|
|  |  |  | QueryResultVo<List<VoStClientAmountDay>> rsVo = new QueryResultVo<>() ; | 
|---|
|  |  |  | // 生成查询参数 | 
|---|
|  |  |  | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return rsVo ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询农户用水月统计 | 
|---|
|  |  |  | * @param qo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<List<VoStClientAmountMonth>> selectStClientAmountMonth(StClientQo qo)  { | 
|---|
|  |  |  | QueryResultVo<List<VoStClientAmountMonth>> rsVo = new QueryResultVo<>() ; | 
|---|
|  |  |  | // 生成查询参数 | 
|---|
|  |  |  | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; | 
|---|
|  |  |  | // 获取符合条件的记录数 | 
|---|
|  |  |  | Long itemTotal = stClientAmountMonthDao.selectCountMonthStatistics(params) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(itemTotal != null && itemTotal > 0) { | 
|---|
|  |  |  | rsVo.pageSize = qo.pageSize; | 
|---|
|  |  |  | rsVo.pageCurr = qo.pageCurr; | 
|---|
|  |  |  | rsVo.calculateAndSet(itemTotal, params); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | rsVo.obj = stClientAmountMonthDao.selectMonthStatistics(params); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return rsVo ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询农户用水年统计 | 
|---|
|  |  |  | * @param qo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<VoStClientAmountYear> selectStClientAmountYear(StClientQo qo, List<Integer> yearGrp) throws ParseException { | 
|---|
|  |  |  | QueryResultVo<VoStClientAmountYear> rsQrVo = new QueryResultVo<>() ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | VoStClientAmountYear rsVo = new VoStClientAmountYear(); | 
|---|
|  |  |  | rsVo.yearGrp = yearGrp ; | 
|---|
|  |  |  | rsQrVo.obj = rsVo ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 生成查询参数 | 
|---|
|  |  |  | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; | 
|---|
|  |  |  | // 获取符合条件的记录数 | 
|---|
|  |  |  | Long itemTotal = stClientAmountYearDao.selectCountYearStatistics(params) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(itemTotal != null && itemTotal > 0) { | 
|---|
|  |  |  | rsQrVo.pageSize = qo.pageSize; | 
|---|
|  |  |  | rsQrVo.pageCurr = qo.pageCurr; | 
|---|
|  |  |  | rsQrVo.calculateAndSet(itemTotal, params); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<VoStClientAmountYearRecords> group = new ArrayList<>(); | 
|---|
|  |  |  | int count = 1 ; | 
|---|
|  |  |  | for(int year: yearGrp){ | 
|---|
|  |  |  | params.put("year", year); | 
|---|
|  |  |  | List<VoStClientAmountYearRecord> list = stClientAmountYearDao.selectYearStatistics(params); | 
|---|
|  |  |  | if(group.isEmpty()){ | 
|---|
|  |  |  | this.completion(group, list); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.merge(count, group, list) ; | 
|---|
|  |  |  | count += 1 ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | rsVo.records = group ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return rsQrVo ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 补全, 集合中没有就生成一个 | 
|---|
|  |  |  | * @param group | 
|---|
|  |  |  | * @param list | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void completion(List<VoStClientAmountYearRecords> group, List<VoStClientAmountYearRecord> list){ | 
|---|
|  |  |  | boolean found ; | 
|---|
|  |  |  | for (VoStClientAmountYearRecord voInList : list) { | 
|---|
|  |  |  | found = false ; | 
|---|
|  |  |  | for(VoStClientAmountYearRecords voInGrp : group) { | 
|---|
|  |  |  | if(voInList.clientId.longValue() == voInGrp.clientId.longValue()) { | 
|---|
|  |  |  | found = true ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!found) { | 
|---|
|  |  |  | VoStClientAmountYearRecords vo4s = new VoStClientAmountYearRecords(); | 
|---|
|  |  |  | vo4s.clientId = voInList.clientId; | 
|---|
|  |  |  | vo4s.clientNum = voInList.clientNum; | 
|---|
|  |  |  | vo4s.clientName = voInList.clientName; | 
|---|
|  |  |  | vo4s.clientAddress = voInList.clientAddress; | 
|---|
|  |  |  | group.add(vo4s) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 合并, 集合中有就合并 | 
|---|
|  |  |  | * @param count | 
|---|
|  |  |  | * @param group | 
|---|
|  |  |  | * @param list | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void merge(int count, List<VoStClientAmountYearRecords> group, List<VoStClientAmountYearRecord> list){ | 
|---|
|  |  |  | for (VoStClientAmountYearRecord voInList : list) { | 
|---|
|  |  |  | VoStClientAmountYearRecords voInGrp_ = null ; | 
|---|
|  |  |  | for(VoStClientAmountYearRecords voInGrp : group) { | 
|---|
|  |  |  | if(voInList.clientId.longValue() == voInGrp.clientId.longValue()) { | 
|---|
|  |  |  | voInGrp_ = voInGrp ; | 
|---|
|  |  |  | break ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(voInGrp_ != null){ | 
|---|
|  |  |  | this.merge(count, voInGrp_, voInList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 合并值 | 
|---|
|  |  |  | * @param count | 
|---|
|  |  |  | * @param vo4s | 
|---|
|  |  |  | * @param vo | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private void merge(int count, VoStClientAmountYearRecords vo4s, VoStClientAmountYearRecord vo){ | 
|---|
|  |  |  | switch (count){ | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | vo4s.amount1 = vo.amount; | 
|---|
|  |  |  | vo4s.money1 = vo.money; | 
|---|
|  |  |  | vo4s.times1 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | vo4s.amount2 = vo.amount; | 
|---|
|  |  |  | vo4s.money2 = vo.money; | 
|---|
|  |  |  | vo4s.times2 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | vo4s.amount3 = vo.amount; | 
|---|
|  |  |  | vo4s.money3 = vo.money; | 
|---|
|  |  |  | vo4s.times3 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 4: | 
|---|
|  |  |  | vo4s.amount4 = vo.amount; | 
|---|
|  |  |  | vo4s.money4 = vo.money; | 
|---|
|  |  |  | vo4s.times4 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | vo4s.amount5 = vo.amount; | 
|---|
|  |  |  | vo4s.money5 = vo.money; | 
|---|
|  |  |  | vo4s.times5 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 6: | 
|---|
|  |  |  | vo4s.amount6 = vo.amount; | 
|---|
|  |  |  | vo4s.money6 = vo.money; | 
|---|
|  |  |  | vo4s.times6 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 7: | 
|---|
|  |  |  | vo4s.amount7 = vo.amount; | 
|---|
|  |  |  | vo4s.money7 = vo.money; | 
|---|
|  |  |  | vo4s.times7 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 8: | 
|---|
|  |  |  | vo4s.amount8 = vo.amount; | 
|---|
|  |  |  | vo4s.money8 = vo.money; | 
|---|
|  |  |  | vo4s.times8 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 9: | 
|---|
|  |  |  | vo4s.amount9 = vo.amount; | 
|---|
|  |  |  | vo4s.money9 = vo.money; | 
|---|
|  |  |  | vo4s.times9 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 10: | 
|---|
|  |  |  | vo4s.amount10 = vo.amount; | 
|---|
|  |  |  | vo4s.money10 = vo.money; | 
|---|
|  |  |  | vo4s.times10 = vo.times; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|