package cn.com.goldenwater.dcproj.service.impl.travel; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.dao.BisInspTravelPlanDayDao; import cn.com.goldenwater.dcproj.dao.BisInspTravelPlanPointDao; import cn.com.goldenwater.dcproj.model.AttAdBase; import cn.com.goldenwater.dcproj.model.BisInspTravelPlanDay; import cn.com.goldenwater.dcproj.model.BisInspTravelPlanPoint; import cn.com.goldenwater.dcproj.param.BisInspTravelPlanPointParam; import cn.com.goldenwater.dcproj.service.AttAdBaseService; import cn.com.goldenwater.dcproj.service.BisInspTravelPlanDayService; import cn.com.goldenwater.dcproj.service.BisInspTravelPlanPointService; import cn.com.goldenwater.id.util.UuidUtil; 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.Date; import java.util.List; /** * @author lhc * @date 2019-9-17 */ @Service @Transactional(rollbackFor = Exception.class) public class BisInspTravelPlanPointServiceImpl extends AbstractCrudService implements BisInspTravelPlanPointService { @Autowired private BisInspTravelPlanPointDao bisInspTravelPlanPointDao; @Autowired private BisInspTravelPlanDayService bisInspTravelPlanDayService; @Autowired private AttAdBaseService attAdBaseService; @Autowired private BisInspTravelPlanDayDao bisInspTravelPlanDayDao; public BisInspTravelPlanPointServiceImpl(BisInspTravelPlanPointDao bisInspTravelPlanPointDao) { super(bisInspTravelPlanPointDao); this.bisInspTravelPlanPointDao = bisInspTravelPlanPointDao; } public String getAdnmByAdCode(String adCode) { AttAdBase attAdBase = attAdBaseService.getByAdcode(adCode); return attAdBase.getAdName(); } @Override public int insert(BisInspTravelPlanPoint bisInspTravelPlanPoint) { bisInspTravelPlanPoint.setIntm(new Date()); bisInspTravelPlanPoint.setUptm(new Date()); bisInspTravelPlanPoint.setId(UuidUtil.uuid()); bisInspTravelPlanPoint.setDataStat("0"); if (StringUtils.isNotBlank(bisInspTravelPlanPoint.getAddvcd())) { String addvcd = bisInspTravelPlanPoint.getAddvcd(); String addvnm; if (addvcd.length() == 6) { addvnm = getAdnmByAdCode(addvcd.substring(0, 4) + "00000000"); } else { addvnm = getAdnmByAdCode(addvcd); } bisInspTravelPlanPoint.setAddvnm(addvnm); } Integer ordr = bisInspTravelPlanPointDao.getMaxOne(bisInspTravelPlanPoint.getPlanDayId()); if (null == ordr) { ordr = 1; } else { ordr = ordr + 1; } bisInspTravelPlanPoint.setOrdr(ordr); //插入路书Id BisInspTravelPlanDay bisInspTravelPlanDay = bisInspTravelPlanDayDao.get(bisInspTravelPlanPoint.getPlanDayId()); bisInspTravelPlanPoint.setTravelPlanId(bisInspTravelPlanDay.getTravelPlanId()); int row = bisInspTravelPlanPointDao.insert(bisInspTravelPlanPoint); updateTitle(bisInspTravelPlanPoint.getPlanDayId()); return row; } @Override public int update(BisInspTravelPlanPoint bisInspTravelPlanPoint) { bisInspTravelPlanPoint.setUptm(new Date()); int row = bisInspTravelPlanPointDao.update(bisInspTravelPlanPoint); updateTitle(bisInspTravelPlanPoint.getPlanDayId()); return row; } @Override public int delete(String id) { BisInspTravelPlanPoint bisInspTravelPlanPoint = bisInspTravelPlanPointDao.get(id); String dayId = bisInspTravelPlanPoint.getPlanDayId(); int row = bisInspTravelPlanPointDao.delete(id); updateTitle(dayId); return row; } @Override public List getPointByDayId(String dayId) { return bisInspTravelPlanPointDao.getPointByDayId(dayId); } @Override public List insertList(List bisInspTravelPlanPoints) { //判断列表大于零,去出天id,删除所有的天Id位这个值得 String dayPlanId = ""; if (bisInspTravelPlanPoints.size() > 0) { dayPlanId = bisInspTravelPlanPoints.get(0).getPlanDayId(); //删除这一天的所有点 bisInspTravelPlanPointDao.deleteByDayId(dayPlanId); for (BisInspTravelPlanPoint bisInspTravelPlanPoint : bisInspTravelPlanPoints) { this.insert(bisInspTravelPlanPoint); } return bisInspTravelPlanPoints; } else { return null; } } /** * 根据日ID更新 行程经过点信息 * * @param dayId 日行程ID * @return */ public BisInspTravelPlanDay updateTitle(String dayId) { //根据日行程获取所有点信息 List bisInspTravelPlanPoints = getPointByDayId(dayId); if (bisInspTravelPlanPoints.size() > 0) { String title = ""; String tempAddvcd = ""; for (int i = 0; i < bisInspTravelPlanPoints.size(); i++) { if (StringUtils.isNotBlank(bisInspTravelPlanPoints.get(i).getAddvcd())) { String curentAddvcd = bisInspTravelPlanPoints.get(i).getAddvcd().substring(0, 2); String curentAddvnm = bisInspTravelPlanPoints.get(i).getAddvnm(); if (!tempAddvcd.equalsIgnoreCase(curentAddvcd)) { title += curentAddvnm + "-"; } tempAddvcd = curentAddvcd; } } if (title.length() > 0) { title = title.substring(0, title.length() - 1); } BisInspTravelPlanDay bisInspTravelPlanDay = new BisInspTravelPlanDay(); bisInspTravelPlanDay.setId(dayId); bisInspTravelPlanDay.setTitle(title); bisInspTravelPlanDayService.update(bisInspTravelPlanDay); return bisInspTravelPlanDayService.get(dayId); } else { return bisInspTravelPlanDayService.get(dayId); } } }