package cn.com.goldenwater.dcproj.service.impl.vill; import cn.com.goldenwater.dcproj.dao.AttCwsBaseCrrctDao; import cn.com.goldenwater.dcproj.dao.AttCwsBaseDao; import cn.com.goldenwater.dcproj.enums.RequestSourceEnum; import cn.com.goldenwater.dcproj.model.AttCwsBase; import cn.com.goldenwater.dcproj.model.AttCwsBaseCrrct; import cn.com.goldenwater.dcproj.param.AttCwsBaseCrrctParam; import cn.com.goldenwater.dcproj.service.AttCwsBaseCrrctService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.GeoUtil; import com.github.pagehelper.PageHelper; 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 com.github.pagehelper.PageInfo; import java.util.ArrayList; import java.util.List; import cn.com.goldenwater.id.util.UuidUtil; import java.util.Date; import java.util.Map; import cn.com.goldenwater.dcproj.utils.DateUtils; /** * @author zhengdafei * @date 2019-3-13 */ @Service @Transactional(rollbackFor = Exception.class) public class AttCwsBaseCrrctServiceImpl extends AbstractCrudService implements AttCwsBaseCrrctService { @Autowired private AttCwsBaseCrrctDao attCwsBaseCrrctDao; @Autowired private AttCwsBaseDao attCwsBaseDao; public AttCwsBaseCrrctServiceImpl(AttCwsBaseCrrctDao attCwsBaseCrrctDao) { super(attCwsBaseCrrctDao); this.attCwsBaseCrrctDao = attCwsBaseCrrctDao; } @Override public String add(AttCwsBaseCrrct p) throws Exception { String uuid = UuidUtil.uuid(); String now = DateUtils.getTodayYMDHMS(); p.setUptm(now); p.setGuid(uuid); transferGeo(p); if (StringUtils.isNotBlank(p.getCompYear())) { p.setCompDate(p.getCompYear() + "-01-01"); } attCwsBaseCrrctDao.insert(p); return uuid; } @Override public int modify(AttCwsBaseCrrct p) throws Exception { String now = DateUtils.getTodayYMDHMS(); p.setUptm(now); transferGeo(p); if (StringUtils.isNotBlank(p.getCompYear())) { p.setCompDate(p.getCompYear() + "-01-01"); } int ret = attCwsBaseCrrctDao.update(p); return ret; } public void transferGeo(AttCwsBaseCrrct p) { String src = p.getSrc(); if (StringUtils.isNotBlank(src)) { if (RequestSourceEnum.PC.getValue().equalsIgnoreCase(src)) { if (p.getCwsLong() != null && p.getCwsLat() != null) { Map map = GeoUtil.wgs84togcj02(p.getCwsLong(), p.getCwsLat()); p.setCenterXGd(map.get("lon")); p.setCenterYGd(map.get("lat")); } } else if (RequestSourceEnum.MOBILE.getValue().equalsIgnoreCase(src)) { if (p.getCenterXGd() != null && p.getCenterYGd() != null) { Map map = GeoUtil.gcj02towgs84(p.getCenterXGd(), p.getCenterYGd()); p.setCwsLong(map.get("lon")); p.setCwsLat(map.get("lat")); } } } else { if (p.getCwsLong() != null && p.getCwsLat() != null) { Map map = GeoUtil.wgs84togcj02(p.getCwsLong(), p.getCwsLat()); p.setCenterXGd(map.get("lon")); p.setCenterYGd(map.get("lat")); } else if (p.getCenterXGd() != null && p.getCenterYGd() != null) { Map map = GeoUtil.gcj02towgs84(p.getCenterXGd(), p.getCenterYGd()); p.setCwsLong(map.get("lon")); p.setCwsLat(map.get("lat")); } } } @Override public PageInfo queryListByPage(AttCwsBaseCrrctParam p) throws Exception { PageHelper.startPage(p.getPageNum(), p.getPageSize()); List list = attCwsBaseCrrctDao.findList(p); return new PageInfo(list); } @Override public List queryList(AttCwsBaseCrrctParam p) throws Exception { List list = attCwsBaseCrrctDao.findList(p); return list; } @Override public AttCwsBase getCrrct(String cwsCode, String persId) { List attCwsBases = new ArrayList<>(); AttCwsBase attCwsBase = new AttCwsBase(); attCwsBases = attCwsBaseCrrctDao.getCrrctByPersId(cwsCode, persId); if (attCwsBases.size() > 0) { attCwsBase = attCwsBases.get(0); } else { attCwsBase = attCwsBaseDao.get(cwsCode); } return attCwsBase; } }