package com.dy.pipIrrSell.client;
|
|
import com.dy.common.webUtil.QueryResultVo;
|
import com.dy.pipIrrGlobal.daoBa.BaDistrictMapper;
|
import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
|
import com.dy.pipIrrGlobal.pojoSe.SeClient;
|
import com.dy.pipIrrGlobal.voSe.VoClient;
|
import com.dy.pipIrrGlobal.voSe.VoOperate;
|
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.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Optional;
|
|
/**
|
* @author ZhuBaoMin
|
* @date 2023/12/21 19:17
|
* @LastEditTime 2023/12/21 19:17
|
* @Description
|
*/
|
|
@Slf4j
|
@Service
|
public class ClientSv {
|
@Autowired
|
private SeClientMapper seClientMapper;
|
|
@Autowired
|
private BaDistrictMapper baDistrictMapper;
|
|
/**
|
* 根据指定条件获取农户数据
|
* @param queryVo
|
* @return
|
*/
|
public QueryResultVo<List<VoClient>> getClients(QueryVo queryVo){
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ;
|
Long itemTotal = seClientMapper.getRecordCount(params);
|
|
QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
|
Integer pageCurr = 0;
|
Integer pageSize = 10000;
|
rsVo.pageCurr = 1;
|
rsVo.pageSize = 10000;
|
if(queryVo.pageSize != null && queryVo.pageCurr != null) {
|
rsVo.pageSize = queryVo.pageSize ;
|
rsVo.pageCurr = queryVo.pageCurr;
|
pageSize = queryVo.pageSize ;
|
pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
|
}
|
params.put("pageCurr", pageCurr);
|
params.put("pageSize", pageSize);
|
|
rsVo.calculateAndSet(itemTotal, params);
|
rsVo.obj = seClientMapper.getClients(params);
|
|
return rsVo ;
|
}
|
|
/**
|
* 根据指定条件获取交易记录
|
* @param vo
|
* @return
|
*/
|
public Map getOperates(QueryOperate vo){
|
// 补齐查询时间
|
String operateTimeStart = vo.operateTimeStart;
|
String operateTimeStop = vo.operateTimeStop;
|
if(operateTimeStart != null) {
|
operateTimeStart = operateTimeStart + " 00:00:00";
|
vo.setOperateTimeStart(operateTimeStart);
|
}
|
if(operateTimeStop != null) {
|
operateTimeStop = operateTimeStop + " 23:59:59";
|
vo.setOperateTimeStop(operateTimeStop);
|
}
|
|
// 生成查询参数
|
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
|
|
// 获取汇总的购水金额、购卡金额
|
Float money = 0f;
|
Float cardCost = 0f;
|
Map map_sum = Optional.ofNullable(seClientMapper.getSums(params)).orElse(new HashMap());
|
if(map_sum.size() > 0) {
|
money = Float.parseFloat(map_sum.get("money").toString());
|
cardCost = Float.parseFloat(map_sum.get("cardCost").toString());
|
}
|
|
// 获取符合条件的记录数
|
Long itemTotal = seClientMapper.getOperateRecordCount(params);
|
|
Integer pageSize = vo.getPageSize();
|
// 计算总页数
|
Integer pageTotal ;
|
pageTotal = (int)Math.ceil((itemTotal==null?0.0D:itemTotal.doubleValue())/pageSize);
|
|
// 根据当前页码及每页数量计算偏移量
|
Integer pageCurr = (Integer.parseInt(params.get("pageCurr").toString()) - 1) * Integer.parseInt(params.get("pageSize").toString());
|
params.put("pageCurr", pageCurr);
|
|
List<VoOperate> lit = seClientMapper.getOperates(params);
|
Map map_record = new HashMap();
|
map_record.put("itemTotal", itemTotal);
|
map_record.put("pageCurr", vo.pageCurr);
|
map_record.put("pageSize", pageSize);
|
map_record.put("pageTotal", pageTotal);
|
map_record.put("list", lit);
|
|
Map map_result = new HashMap();
|
map_result.put("money", money);
|
map_result.put("cardCost", cardCost);
|
map_result.put("records", map_record);
|
|
return map_result;
|
}
|
|
/**
|
* 根据主键获取农户对象
|
* @param id 农户主键
|
* @return 农户对象
|
*/
|
public VoClient getOneClient(Long id) {
|
SeClient seClient = seClientMapper.selectByPrimaryKey(id);
|
VoClient voClient = SeClientToVoClient.INSTANCT.po2vo(seClient);
|
return voClient;
|
}
|
/**
|
* 增开农户
|
* @param po
|
* @return
|
*/
|
public Integer addClient(SeClient po) {
|
return seClientMapper.insert(po);
|
}
|
|
/**
|
* 根据6位区划串模糊查询农户编号
|
* @param district6
|
* @return
|
*/
|
public String getClientNumOfMax(String district6) {
|
return seClientMapper.getClientNumOfMax(district6);
|
}
|
|
/**
|
* 根据村编号获取5级区划信息
|
* @param villageId 村编号(主键)
|
* @return 5级行政区划信息
|
*/
|
public Map getDistrictsByVillageId(Long villageId) {
|
return baDistrictMapper.getDistrictsByVillageId(villageId);
|
}
|
|
/**
|
* 根据农户ID逻辑删除农户
|
*/
|
public Integer deleteClientById(Long id) {
|
return seClientMapper.deleteClientById(id);
|
}
|
|
/**
|
* 修改农户对象
|
* @param po 农户对象
|
* @return 修改记录条数
|
*/
|
public Integer updateByPrimaryKey(SeClient po) {
|
return seClientMapper.updateByPrimaryKey(po);
|
}
|
|
/**
|
* 根据主键获取村ID
|
* @param id
|
* @return
|
*/
|
public Long getVillageIdById(Long id) {
|
return seClientMapper.getVillageIdById(id);
|
}
|
|
/**
|
* 获取虚拟卡号最大值
|
* @return
|
*/
|
public Long getMa1xVirtualId() {
|
return seClientMapper.getMa1xVirtualId();
|
}
|
|
/**
|
* 获取用水方式列表
|
* @return
|
*/
|
public List<Map<String, Object>> getWaterTypes() {
|
return seClientMapper.getWaterTypes();
|
}
|
}
|