|  |  | 
 |  |  | package com.doumee.service.business.impl; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.dao.business.JkCustomerNavigationMapper; | 
 |  |  | import com.doumee.dao.business.JkSketchMapper; | 
 |  |  | import com.doumee.dao.business.model.*; | 
 |  |  | import com.doumee.service.business.third.model.PageData; | 
 |  |  | import com.doumee.service.business.third.model.PageWrap; | 
 |  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.util.CollectionUtils; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.math.RoundingMode; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  | 
 |  |  | public class JkSketchCustomerServiceImpl implements JkSketchCustomerService { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private SystemDictDataBiz systemDictDataBiz; | 
 |  |  |     @Autowired | 
 |  |  |     private JkSketchCustomerMapper jkSketchCustomerMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private JkSketchMapper jkSketchMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private JkCustomerNavigationMapper jkCustomerNavigationMapper; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Integer create(JkSketchCustomer jkSketchCustomer) { | 
 |  |  | 
 |  |  |         return jkSketchCustomerMapper.selectOne(wrapper); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查询全部交通规划路线 | 
 |  |  |      * @param jkSketchCustomer | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public List<JkCustomerNavigation>  allMapList(JkSketchCustomer jkSketchCustomer) { | 
 |  |  |         List<JkCustomerNavigation> list = new ArrayList<>(); | 
 |  |  |         MPJLambdaWrapper<JkSketchCustomer> queryWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         jkSketchCustomer.setIsdeleted(Constants.ZERO); | 
 |  |  |         queryWrapper.selectAll(JkSketchCustomer.class ) | 
 |  |  |                 .selectAs(JkCustomer::getName,JkSketchCustomer::getName) | 
 |  |  |                 .selectAs(JkCustomer::getCode,JkSketchCustomer::getCode) | 
 |  |  |                 .selectAs(JkCustomer::getStartDistance,JkSketchCustomer::getStartDistance) | 
 |  |  |                 .selectAs(JkCustomer::getEndDistance,JkSketchCustomer::getEndDistance) | 
 |  |  |                 .selectAs(JkCustomer::getLatitude,JkSketchCustomer::getLatitude) | 
 |  |  |                 .selectAs(JkCustomer::getLongitude,JkSketchCustomer::getLongitude) | 
 |  |  |                 .selectAs(JkCustomer::getStartSteps,JkSketchCustomer::getStartSteps) | 
 |  |  |                 .selectAs(JkCustomer::getEndSteps,JkSketchCustomer::getEndSteps) | 
 |  |  |                 .selectAs(JkCustomer::getLocation,JkSketchCustomer::getLocation) | 
 |  |  |                 .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) ; | 
 |  |  |         queryWrapper.eq( JkSketchCustomer::getSketchLineId,jkSketchCustomer.getSketchLineId()) | 
 |  |  |                     .eq( JkSketchCustomer::getIsdeleted,Constants.ZERO); | 
 |  |  |  | 
 |  |  |         BigDecimal cLatitude =new BigDecimal(0); | 
 |  |  |         BigDecimal cLongitude =new BigDecimal(0); | 
 |  |  |  | 
 |  |  |         String comLocation = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_LOCATION).getCode(); | 
 |  |  |         try { | 
 |  |  |             String[] ss = comLocation.split(","); | 
 |  |  |             cLongitude = new BigDecimal(ss[0]); | 
 |  |  |             cLatitude =  new BigDecimal(ss[1]); | 
 |  |  |         }catch (Exception e){ | 
 |  |  |         } | 
 |  |  |         List<JkSketchCustomer> allList =  jkSketchCustomerMapper.selectJoinList(JkSketchCustomer.class,queryWrapper); | 
 |  |  |         if(allList !=null && allList.size()>0){ | 
 |  |  |             JkCustomerNavigation startmodel = new JkCustomerNavigation(); | 
 |  |  |             startmodel.setStartId(-1); | 
 |  |  |             startmodel.setName("园区"); | 
 |  |  |             startmodel.setStartLatitude(cLatitude); | 
 |  |  |             startmodel.setStartLogitude(cLongitude); | 
 |  |  |             startmodel.setEndLatitude(allList.get(0).getLatitude()); | 
 |  |  |             startmodel.setEndLogitude(allList.get(0).getLongitude()); | 
 |  |  |             startmodel.setDistance(allList.get(0).getStartDistance()); | 
 |  |  |             startmodel.setSteps(allList.get(0).getStartSteps()); | 
 |  |  |             if(StringUtils.isBlank(startmodel.getSteps())){ | 
 |  |  |                 startmodel.setSteps(comLocation +";"+allList.get(0).getLongitude()+","+allList.get(0).getLatitude()); | 
 |  |  |             } | 
 |  |  |             list.add(startmodel); | 
 |  |  |  | 
 |  |  |             for (int i = 0; i < allList.size(); i++) { | 
 |  |  |                 if(allList.size() == i+1){ | 
 |  |  |                     JkCustomerNavigation endmodel = new JkCustomerNavigation(); | 
 |  |  |                     endmodel.setStartId(-1); | 
 |  |  |                     endmodel.setLocation(allList.get(i).getLocation()); | 
 |  |  |                     endmodel.setName(allList.get(i).getName()); | 
 |  |  |                     endmodel.setSteps(allList.get(i).getEndSteps()); | 
 |  |  |                     endmodel.setStartLatitude(allList.get(i).getLatitude()); | 
 |  |  |                     endmodel.setStartLogitude(allList.get(i).getLongitude()); | 
 |  |  |                     endmodel.setDistance(allList.get(0).getEndDistance()); | 
 |  |  |                     endmodel.setEndLatitude(cLatitude); | 
 |  |  |                     endmodel.setEndLogitude(cLongitude); | 
 |  |  |                     if(StringUtils.isBlank(startmodel.getSteps())){ | 
 |  |  |                         startmodel.setSteps(allList.get(i).getLongitude()+","+allList.get(i).getLatitude()+";"+comLocation); | 
 |  |  |                     } | 
 |  |  |                     list.add(endmodel); | 
 |  |  |                     break; | 
 |  |  |                 } | 
 |  |  |                 JkSketchCustomer start = allList.get(i); | 
 |  |  |                 JkSketchCustomer end = allList.get(i+1); | 
 |  |  |                 JkCustomerNavigation tt = jkCustomerNavigationMapper.selectOne(new QueryWrapper<JkCustomerNavigation>().lambda() | 
 |  |  |                         .eq(JkCustomerNavigation::getIsdeleted,Constants.ZERO) | 
 |  |  |                         .eq(JkCustomerNavigation::getIdIndex, allList.get(i).getCustomerId()+"-"+ allList.get(i+1).getCustomerId()) | 
 |  |  |                         .orderByDesc(JkCustomerNavigation::getId) | 
 |  |  |                         .last("limit 1") | 
 |  |  |                 ); | 
 |  |  |                 if(tt==null){ | 
 |  |  |                     //只有起止点 | 
 |  |  |                     tt = new JkCustomerNavigation(); | 
 |  |  |                     tt.setStartLatitude(start.getLatitude()); | 
 |  |  |                     tt.setStartLogitude(start.getLongitude()); | 
 |  |  |                     tt.setEndLatitude(end.getLatitude()); | 
 |  |  |                     tt.setEndLogitude(end.getLongitude()); | 
 |  |  |                 } | 
 |  |  |                 tt.setLocation(allList.get(i).getLocation()); | 
 |  |  |                 tt.setName(allList.get(i).getName()); | 
 |  |  |                 if(StringUtils.isBlank(tt.getSteps())){ | 
 |  |  |                     tt.setSteps(start.getLongitude()+","+end.getLatitude()+";"+end.getLongitude()+","+end.getLatitude()); | 
 |  |  |                 } | 
 |  |  |                 list.add(tt); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return list; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<JkSketchCustomer> findList(JkSketchCustomer jkSketchCustomer) { | 
 |  |  |         QueryWrapper<JkSketchCustomer> wrapper = new QueryWrapper<>(jkSketchCustomer); | 
 |  |  |         return jkSketchCustomerMapper.selectList(wrapper); | 
 |  |  |    /*     if(jkSketchCustomer.getSketchId()!=null){ | 
 |  |  |             JkSketch sketch = jkSketchMapper.selectById(jkSketchCustomer.getSketchId()); | 
 |  |  |             if(sketch!=null){ | 
 |  |  |                 jkSketchCustomer.setType(Constants.formatIntegerNum(sketch.getOptStatus())); | 
 |  |  |             } | 
 |  |  |         }*/ | 
 |  |  |         MPJLambdaWrapper<JkSketchCustomer> queryWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         jkSketchCustomer.setIsdeleted(Constants.ZERO); | 
 |  |  |         queryWrapper.selectAll(JkSketchCustomer.class ) | 
 |  |  |                 .selectAs(JkCustomer::getName,JkSketchCustomer::getName) | 
 |  |  |                 .selectAs(JkCustomer::getCode,JkSketchCustomer::getCode) | 
 |  |  |                 .selectAs(JkCustomer::getLatitude,JkSketchCustomer::getLatitude) | 
 |  |  |                 .selectAs(JkCustomer::getLongitude,JkSketchCustomer::getLongitude) | 
 |  |  |                 .selectAs(JkCustomer::getLocation,JkSketchCustomer::getLocation) | 
 |  |  |                 .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) ; | 
 |  |  |         queryWrapper.like(jkSketchCustomer.getCode()!=null,JkCustomer::getCode,jkSketchCustomer.getCode()); | 
 |  |  |         queryWrapper.like(jkSketchCustomer.getName()!=null,JkCustomer::getName,jkSketchCustomer.getName()); | 
 |  |  |         queryWrapper.eq(jkSketchCustomer.getType() != null,JkSketchCustomer::getType,jkSketchCustomer.getType()); | 
 |  |  |         if (jkSketchCustomer.getId() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getId,jkSketchCustomer.getId()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getCreateDate() != null) { | 
 |  |  |             queryWrapper.ge(JkSketchCustomer::getCreateDate, Utils.Date.getStart(jkSketchCustomer.getCreateDate())); | 
 |  |  |             queryWrapper.le(JkSketchCustomer::getCreateDate, Utils.Date.getEnd(jkSketchCustomer.getCreateDate())); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getEditor() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getEditor,jkSketchCustomer.getEditor()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getEditDate() != null) { | 
 |  |  |             queryWrapper.ge(JkSketchCustomer::getEditDate, Utils.Date.getStart(jkSketchCustomer.getEditDate())); | 
 |  |  |             queryWrapper.le(JkSketchCustomer::getEditDate, Utils.Date.getEnd(jkSketchCustomer.getEditDate())); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getIsdeleted() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getIsdeleted,jkSketchCustomer.getIsdeleted()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getInfo() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getInfo,jkSketchCustomer.getInfo()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getSketchLineId() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getSketchLineId,jkSketchCustomer.getSketchLineId()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getSketchId() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getSketchId,jkSketchCustomer.getSketchId()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getTotalNum() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getTotalNum,jkSketchCustomer.getTotalNum()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getOrderId() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getOrderId,jkSketchCustomer.getOrderId()); | 
 |  |  |         } | 
 |  |  |         if (jkSketchCustomer.getSortnum() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getSortnum,jkSketchCustomer.getSortnum()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         queryWrapper.orderByAsc(JkSketchCustomer::getSketchLineId,JkSketchCustomer::getSortnum); | 
 |  |  |        return   jkSketchCustomerMapper.selectJoinList(JkSketchCustomer.class,queryWrapper); | 
 |  |  |     } | 
 |  |  |    | 
 |  |  |     @Override | 
 |  |  |     public PageData<JkSketchCustomer> findPage(PageWrap<JkSketchCustomer> pageWrap) { | 
 |  |  |         if(pageWrap.getModel().getSketchId()!=null){ | 
 |  |  |             JkSketch sketch = jkSketchMapper.selectById(pageWrap.getModel().getSketchId()); | 
 |  |  |             if(sketch!=null){ | 
 |  |  |                 pageWrap.getModel().setType(Constants.formatIntegerNum(sketch.getOptStatus())); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         IPage<JkSketchCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
 |  |  |         MPJLambdaWrapper<JkSketchCustomer> queryWrapper = new MPJLambdaWrapper<>(); | 
 |  |  |         Utils.MP.blankToNull(pageWrap.getModel()); | 
 |  |  | 
 |  |  |                 .selectAs(Category::getName,JkSketchCustomer::getCategoryName) | 
 |  |  |                 .leftJoin(JkOrders.class,JkOrders::getId,JkSketchCustomer::getOrderId ) | 
 |  |  |                 .leftJoin(JkCustomer.class,JkCustomer::getId,JkSketchCustomer::getCustomerId ) | 
 |  |  |                 .leftJoin(JkLine.class,JkLine::getId,JkOrders::getLineId ) | 
 |  |  |                 .leftJoin(JkSketchLine.class,JkSketchLine::getId,JkSketchCustomer::getSketchLineId ) | 
 |  |  |                 .leftJoin(JkLine.class,JkLine::getId,JkSketchLine::getLineId ) | 
 |  |  |                 .leftJoin(Category.class,Category::getId,JkLine::getCategoryId ); | 
 |  |  |         queryWrapper.eq( pageWrap.getModel().getType()!=null,JkSketchCustomer::getType, pageWrap.getModel().getType()); | 
 |  |  |         queryWrapper.eq( pageWrap.getModel().getCategoryId()!=null,JkLine::getCategoryId, pageWrap.getModel().getCategoryId()); | 
 |  |  |         queryWrapper.eq( pageWrap.getModel().getDateInfo()!=null,JkSketchCustomer::getDateInfo, pageWrap.getModel().getDateInfo()); | 
 |  |  |         queryWrapper.like( pageWrap.getModel().getCode()!=null,JkCustomer::getCode, pageWrap.getModel().getCode()); | 
 |  |  |         queryWrapper.like( pageWrap.getModel().getName()!=null,JkCustomer::getName, pageWrap.getModel().getName()); | 
 |  |  |  | 
 |  |  |         if (pageWrap.getModel().getId() != null) { | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getId, pageWrap.getModel().getId()); | 
 |  |  | 
 |  |  |             queryWrapper.eq(JkSketchCustomer::getSortnum, pageWrap.getModel().getSortnum()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         queryWrapper.orderByAsc(JkSketchCustomer::getSketchLineId); | 
 |  |  |         queryWrapper.orderByAsc(JkSketchCustomer::getSketchLineId,JkSketchCustomer::getSortnum); | 
 |  |  |         IPage<JkSketchCustomer> result = jkSketchCustomerMapper.selectJoinPage(page, JkSketchCustomer.class,queryWrapper); | 
 |  |  |         return PageData.from(result); | 
 |  |  |     } |