| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- 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<BisInspMileage, BisInspMileageParam> 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<String> persIdList = persPositionDao.getAllPersId();
- Date today = new Date();
- for (String persId : persIdList) {
- List<String> 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<LonLat> 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<LonLat> 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);
- }
- }
- }
- }
- }
|