package cn.com.goldenwater.dcproj.service.impl.vill; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspProSourceProtectDao; import cn.com.goldenwater.dcproj.dao.BisInspVillRgstrDao; import cn.com.goldenwater.dcproj.dao.WrGwsBDao; import cn.com.goldenwater.dcproj.dto.BisInspProSourceProtectDcdxDto; import cn.com.goldenwater.dcproj.dto.BisInspProSourceProtectDto; import cn.com.goldenwater.dcproj.dto.VillRgstrDto; import cn.com.goldenwater.dcproj.model.BisInspProSourceProtect; import cn.com.goldenwater.dcproj.model.BisInspVillRgstr; import cn.com.goldenwater.dcproj.model.WrGwsB; import cn.com.goldenwater.dcproj.param.AttCwsBaseListParam; import cn.com.goldenwater.dcproj.param.BisInspProSourceProtectParam; import cn.com.goldenwater.dcproj.param.GetVillPageByNodeIdParam; import cn.com.goldenwater.dcproj.param.WaterResourceListParam; import cn.com.goldenwater.dcproj.service.BisInspProSourceProtectService; import cn.com.goldenwater.dcproj.utils.DateUtils; import cn.com.goldenwater.dcproj.utils.GeoUtil; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author zhengdafei * @date 2019-2-19 */ @Service @Transactional public class BisInspProSourceProtectServiceImpl extends AbstractCrudService implements BisInspProSourceProtectService { @Autowired private BisInspProSourceProtectDao bisInspProSourceProtectDao; @Autowired private BisInspVillRgstrDao bisInspVillRgstrDao; public BisInspProSourceProtectServiceImpl(BisInspProSourceProtectDao bisInspProSourceProtectDao) { super(bisInspProSourceProtectDao); this.bisInspProSourceProtectDao = bisInspProSourceProtectDao; } @Override public String add(BisInspProSourceProtect p) throws Exception { String uuid = UuidUtil.uuid(); String now = DateUtils.getTodayYMDHMS(); p.setCreateTime(now); p.setUpdateTime(now); p.setEngSurId(uuid); transferGeo(p); bisInspProSourceProtectDao.insert(p); BisInspVillRgstr rp = new BisInspVillRgstr(); rp.setEngId(p.getEngId()); rp.setState("1"); bisInspVillRgstrDao.update(rp); return uuid; } @Override public int modify(BisInspProSourceProtect p) throws Exception { String now = DateUtils.getTodayYMDHMS(); p.setUpdateTime(now); transferGeo(p); BisInspProSourceProtect bp = bisInspProSourceProtectDao.get(p.getEngSurId()); String wsCode = bp.getWtsrCd(); p.setWtsrCd(wsCode); int ret = bisInspProSourceProtectDao.update(p); return ret; } public void transferGeo(BisInspProSourceProtect p) { String src = p.getSrc(); if (StringUtils.isNotBlank(src)) { if ("PC".equalsIgnoreCase(src)) { if (p.getLgtdpc() != null && p.getLttdpc() != null) { Map map = GeoUtil.wgs84togcj02(p.getLgtdpc(), p.getLttdpc()); p.setLgtd(map.get("lon")); p.setLttd(map.get("lat")); } } else if ("MOBILE".equalsIgnoreCase(src)) { if (p.getLgtd() != null && p.getLttd() != null) { Map map = GeoUtil.gcj02towgs84(p.getLgtd(), p.getLttd()); p.setLgtdpc(map.get("lon")); p.setLttdpc(map.get("lat")); } } } else { if (p.getLgtdpc() != null && p.getLttdpc() != null) { Map map = GeoUtil.wgs84togcj02(p.getLgtdpc(), p.getLttdpc()); p.setLgtd(map.get("lon")); p.setLttd(map.get("lat")); } else if (p.getLgtd() != null && p.getLttd() != null) { Map map = GeoUtil.gcj02towgs84(p.getLgtd(), p.getLttd()); p.setLgtdpc(map.get("lon")); p.setLttdpc(map.get("lat")); } } } @Override public PageInfo queryListByPage(BisInspProSourceProtectParam p) throws Exception { PageHelper.startPage(p.getPageNum(), p.getPageSize()); List list = bisInspProSourceProtectDao.findList(p); return new PageInfo(list); } @Autowired private WrGwsBDao wrGwsBDao; @Override public List queryList(BisInspProSourceProtectParam p) throws Exception { List list = bisInspProSourceProtectDao.findList(p); if (list == null || list.isEmpty()) { list = new ArrayList<>(); WrGwsB wrGwsB = wrGwsBDao.get(p.getEngSurId()); if (wrGwsB != null) { BisInspProSourceProtect proSourceProtect = new BisInspProSourceProtect(); proSourceProtect.setCwsCode(p.getCwsCode()); proSourceProtect.setWaterSourceNm(wrGwsB.getGwsNm()); proSourceProtect.setEngId(p.getEngId()); proSourceProtect.setLgtd(wrGwsB.getLgtd()); proSourceProtect.setLttd(wrGwsB.getLttd()); list.add(proSourceProtect); } } return list; } @Override public PageInfo queryListByObjId(AttCwsBaseListParam p) throws Exception { String adCode = ""; if (StringUtils.isNotBlank(p.getObjId())) { adCode = p.getObjId().substring(0, 6); } PageHelper.startPage(p.getPageNum(), p.getPageSize()); List list = bisInspProSourceProtectDao.queryListByObjId(adCode, p.getName(), p.getEngId()); return new PageInfo(list); } @Override public PageInfo queryListByObjId(WaterResourceListParam p) throws Exception { List list = new ArrayList<>(); return new PageInfo(list); } @Override public List getListByCodeAndPerId(VillRgstrDto villRgstrDto) { return this.bisInspProSourceProtectDao.getListByCodeAndPerId(villRgstrDto); } @Override public PageInfo getPageByCodeAndPerId(VillRgstrDto villRgstrDto) { PageHelper.startPage(villRgstrDto.getPageNum(), villRgstrDto.getPageSize()); List list = bisInspProSourceProtectDao.getListByCodeAndPerId(villRgstrDto); return new PageInfo(list); } @Override public PageInfo getPageByNodeId(GetVillPageByNodeIdParam p) throws Exception { if (StringUtils.isBlank(p.getNodeId())) { throw new Exception("nodeId 不能为空"); } PageHelper.startPage(p.getPageNum(), p.getPageSize()); List list = bisInspProSourceProtectDao.getPageByNodeId(p); return new PageInfo(list); } }