| | |
| | | import com.dy.common.webUtil.QueryResultVo; |
| | | import com.dy.pipIrrGlobal.daoRm.RmClientAmountDayLastMapper; |
| | | import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper; |
| | | import com.dy.pipIrrGlobal.voSt.VoClient; |
| | | import com.dy.pipIrrGlobal.voSt.VoDayClient; |
| | | import com.dy.pipIrrGlobal.voSt.VoMonthClient; |
| | | import com.dy.pipIrrStatistics.client.qo.AmountSpentQO; |
| | | import com.dy.pipIrrStatistics.client.qo.OpenCountQO; |
| | | import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO; |
| | | import com.dy.pipIrrStatistics.client.qo.WaterDurationQO; |
| | | import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; |
| | | import com.dy.pipIrrGlobal.voSt.*; |
| | | import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO; |
| | | import com.dy.pipIrrStatistics.client.qo.*; |
| | | import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.dubbo.common.utils.PojoUtils; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | public class ClientSv { |
| | | @Autowired |
| | | private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper; |
| | | @Autowired |
| | | private SeCardOperateMapper seCardOperateMapper; |
| | | |
| | | @Autowired |
| | | private RmClientAmountDayLastMapper rmClientAmountDayLastMapper; |
| | |
| | | */ |
| | | public QueryResultVo<List<VoClient>> getLargeOpenCountClients(OpenCountQO qo) { |
| | | /** |
| | | * 补齐起止时间,如果开始时间为空,则默认为当前日期 |
| | | * 补齐起止时间 |
| | | */ |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null) { |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | }else { |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | if(timeStop != null) { |
| | | if(timeStop != null && timeStop != "") { |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDate.now() + " 23:59:59"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | qo.setTimeStop(timeStop); |
| | |
| | | */ |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | if(timeStart != null) { |
| | | if(timeStart != null && timeStart != "") { |
| | | timeStart = timeStart + " 00:00:00"; |
| | | }else { |
| | | } else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | if(timeStop != null) { |
| | | if(timeStop != null && timeStop != "") { |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDate.now() + " 23:59:59"; |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | qo.setTimeStop(timeStop); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段内开物理卡农户 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoClientOpenCardCount>> getOpenIcCardClients(CommonQO qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | |
| | | if (timeStart != null && timeStart != ""){ |
| | | timeStart = timeStart + " 00:00:00"; |
| | | }else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | if (timeStop != null && timeStop != ""){ |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDateTime.now().toString(); |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = seCardOperateMapper.getOpenIcCardClientsCount(params); |
| | | |
| | | QueryResultVo<List<VoClientOpenCardCount>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = seCardOperateMapper.getOpenIcCardClients(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段内每个农户充值合计(物理卡) |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoClientRechargeTotal>> getRechargeTotalClients(CommonQO qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | |
| | | if (timeStart != null && timeStart != ""){ |
| | | timeStart = timeStart + " 00:00:00"; |
| | | }else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | if (timeStop != null && timeStop != ""){ |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDateTime.now().toString(); |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = seCardOperateMapper.getRechargeTotalClientsCount(params); |
| | | |
| | | QueryResultVo<List<VoClientRechargeTotal>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = seCardOperateMapper.getRechargeTotalClients(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 指定时间段内物理卡充值金额超过指定值的农户 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoClientRechargeTotal>> getRechargeTotalGtValueClients(RechargeTotalGtValueQo qo) { |
| | | |
| | | String timeStart = qo.getTimeStart(); |
| | | String timeStop = qo.getTimeStop(); |
| | | |
| | | if (timeStart != null && timeStart != ""){ |
| | | timeStart = timeStart + " 00:00:00"; |
| | | }else { |
| | | timeStart = LocalDate.now() + " 00:00:00"; |
| | | } |
| | | if (timeStop != null && timeStop != ""){ |
| | | timeStop = timeStop + " 23:59:59"; |
| | | }else { |
| | | timeStop = LocalDateTime.now().toString(); |
| | | } |
| | | qo.setTimeStart(timeStart); |
| | | qo.setTimeStop(timeStop); |
| | | |
| | | if (qo.getValue() == null || qo.getValue() < 0){ |
| | | qo.setValue(0.0); |
| | | } |
| | | |
| | | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo); |
| | | Long itemTotal = seCardOperateMapper.getRechargeTotalGtValueClientsCount(params); |
| | | |
| | | QueryResultVo<List<VoClientRechargeTotal>> rsVo = new QueryResultVo<>() ; |
| | | rsVo.pageSize = qo.pageSize ; |
| | | rsVo.pageCurr = qo.pageCurr ; |
| | | |
| | | rsVo.calculateAndSet(itemTotal, params); |
| | | rsVo.obj = seCardOperateMapper.getRechargeTotalGtValueClients(params); |
| | | return rsVo ; |
| | | } |
| | | |
| | | /** |
| | | * 统计指定月份各农户各天用水量及消费金额 |
| | | * @param qo |
| | | * @return |
| | | */ |
| | | public QueryResultVo<List<VoDayClient>> getDayAmountAndMoney(ClientAmountQO qo) throws ParseException { |
| | | Integer year = qo.getYearMonth().getYear(); |
| | | Integer month = qo.getYearMonth().getMonthValue(); |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String yearMonth = qo.getYearMonth(); |
| | | yearMonth = yearMonth + "-01"; |
| | | yearMonth = dateFormat.format(dateFormat.parse(yearMonth)); |
| | | Integer year = Integer.parseInt(yearMonth.substring(0,4)); |
| | | Integer month = Integer.parseInt(yearMonth.substring(5,7)); |
| | | qo.setYear(year); |
| | | qo.setMonth(month); |
| | | |