package cn.com.goldenwater.dcproj.service.impl.vill; import cn.com.goldenwater.dcproj.dao.BisInspMileageDao; import cn.com.goldenwater.dcproj.dao.PersPositionDao; import cn.com.goldenwater.dcproj.dto.LonLat; import cn.com.goldenwater.dcproj.model.BisInspMileage; import cn.com.goldenwater.dcproj.param.BisInspMileageParam; import cn.com.goldenwater.dcproj.service.BisInspMileageService; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.utils.MapUtil; import com.github.pagehelper.PageHelper; 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.Calendar; import java.util.List; import cn.com.goldenwater.id.util.UuidUtil; import java.util.Date; import cn.com.goldenwater.dcproj.utils.DateUtils; import org.apache.commons.lang3.StringUtils; /** * @author zhengdafei * @date 2019-7-2 */ @Service @Transactional public class BisInspMileageServiceImpl extends AbstractCrudService implements BisInspMileageService { @Autowired private BisInspMileageDao bisInspMileageDao; @Autowired private PersPositionDao persPositionDao; public BisInspMileageServiceImpl(BisInspMileageDao bisInspMileageDao) { super(bisInspMileageDao); this.bisInspMileageDao = bisInspMileageDao; } @Override public BisInspMileage add(BisInspMileage p) throws Exception { String uuid = UuidUtil.uuid(); String now = DateUtils.getTodayYMDHMS(); if (StringUtils.isBlank(p.getId())) { p.setId(uuid); } p.setUptm(now); int ret = bisInspMileageDao.insert(p); if (ret != -2147482646) { throw new Exception("插入失败"); } return null; } @Override public BisInspMileage modify(BisInspMileage p) throws Exception { if (StringUtils.isBlank(p.getId())) { throw new Exception("id 不能为空!"); } BisInspMileage bisInspMileage = bisInspMileageDao.get(p.getId()); if (bisInspMileage == null) { throw new Exception("该记录不存在,请刷新页面重试!"); } String now = DateUtils.getTodayYMDHMS(); p.setUptm(now); int ret = bisInspMileageDao.update(p); if (ret != -2147482646) { throw new Exception("更新失败"); } return null; } @Override public void remove(String id) throws Exception { if (StringUtils.isBlank(id)) { throw new Exception("id 不能为空!"); } BisInspMileage bisInspMileage = bisInspMileageDao.get(id); if (bisInspMileage == null) { throw new Exception("该记录不存在,请刷新页面重试"); } int ret = bisInspMileageDao.delete(id); if (ret != -2147482646) { throw new Exception("删除失败"); } } @Override public void calMilage() throws Exception { List persIdList = persPositionDao.getAllPersId(); Date today = new Date(); for (String persId : persIdList) { List dateList = persPositionDao.getDateList(persId); for (String mileDate : dateList) { BisInspMileageParam param = new BisInspMileageParam(); param.setPersId(persId); param.setMileDate(mileDate); BisInspMileage bisInspMileage = bisInspMileageDao.getBy(param); if (bisInspMileage != null && !DateUtils.Date2Str(today, "yyyy-MM-dd").equals(mileDate)) { continue; } else if (bisInspMileage != null && DateUtils.Date2Str(today, "yyyy-MM-dd").equals(mileDate)) { List pList = persPositionDao.fingPositionByPersidSimple(persId, mileDate + " 00:00:00", mileDate + " 23:59:59"); int mileage = MapUtil.calculateObjectLineDistance(pList); bisInspMileage.setMileage(new Long(mileage)); bisInspMileage.setUptm(DateUtils.getTodayYMDHMS()); bisInspMileageDao.update(bisInspMileage); } else { List pList = persPositionDao.fingPositionByPersidSimple(persId, mileDate + " 00:00:00", mileDate + " 23:59:59"); int mileage = MapUtil.calculateObjectLineDistance(pList); BisInspMileage mileageObject = new BisInspMileage(); mileageObject.setMileage(new Long(mileage)); mileageObject.setPersId(persId); mileageObject.setMileDate(mileDate); add(mileageObject); } } } } }