liujie
2023-10-15 871efa21e6c95520e9825ae1f2338c9a919fdd5d
src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -11,6 +11,7 @@
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.utils.GoogleMap.GeocodeVo;
import com.stylefeng.guns.modular.system.utils.GoogleMap.GoogleMapUtil;
import com.stylefeng.guns.modular.system.utils.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -98,7 +99,13 @@
            sTime=time.split(" - ")[0]+" 00:00:00";
            eTime=time.split(" - ")[1]+" 23:59:59";
        }
        return this.baseMapper.getReceivable(receivableVoPage,sTime,eTime,id,state,userId);
        List<ReceivableVo> receivable = this.baseMapper.getReceivable(receivableVoPage, sTime, eTime, id, state, userId);
        for (ReceivableVo receivableVo : receivable) {
            List<TPrice> prices = priceMapper.selectList(new EntityWrapper<TPrice>().eq("order_id", receivableVo.getId()));
            BigDecimal reduce = prices.stream().map(TPrice::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            receivableVo.setTotal(reduce.doubleValue());
        }
        return receivable;
    }
    @Override
@@ -326,8 +333,10 @@
            // 还柜码头
            TTransportation tTransportation = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", id).eq("type", 4));
            Integer portId = tTransportation.getPortId();
            TPort tPort = portService.selectById(portId);
            info.setEPortName(tPort.getAddress());
            if(portId!=null){
                TPort tPort = portService.selectById(portId);
                info.setEPortName(tPort.getAddress());
            }
        }
        if(!"0".equals(tOrder.getWarehouse())){
            TWarehouse code = warehouseService.selectList(new EntityWrapper<TWarehouse>().eq("code", tOrder.getWarehouse())).get(0);
@@ -465,13 +474,69 @@
        }
        return goodsInfoVos;
    }
@Autowired
private RedisUtil redisUtil;
    @Autowired
    private ITExamSiteService examSiteService;
    @Autowired
    private TYardService yardService;
    private HashMap<String, String> getLat(String a){
        HashMap<String, String> map = new HashMap<>();
        try {
            GeocodeVo geocode = googleMapUtil.getGeocode(a);
            map.put("lon",String.valueOf(geocode.getLng()));
            map.put("lat",String.valueOf(geocode.getLat()));
        }catch (Exception e){
            e.printStackTrace();
            map.put("lon",null);
            map.put("lat",null);
        }
        return map;
    }
    @Override
    public OrderInfo getOrderInfo(Long orderId) {
    public   HashMap<String, Object> getOrderInfo(Long orderId) {
        OrderInfo orderInfo = new OrderInfo();
        ArrayList<LonLat> lonLats = new ArrayList<>();
        TOrder tOrder = this.baseMapper.selectById(orderId);
        String value = redisUtil.getValue(String.valueOf(orderId));
        orderInfo.setDriverLat(value);
        ArrayList<Map<String,String>> maps = new ArrayList<>();
        TTransportation tTransportations = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("type",1));
            TPort tPort1 = portMapper.selectById(tOrder.getPort());
            maps.add(getLat(tPort1.getAddress()));
        if(tOrder.getExamSite()!=null){
            Integer examSite = tOrder.getExamSite();
            TExamSite tExamSite = examSiteService.selectById(examSite);
            // 第二个检查站
            maps.add(getLat(tExamSite.getAddress()));
        }
        TTransportation tTransportations1 = tTransportationService.selectOne(new EntityWrapper<TTransportation>().eq("order_id", orderId).eq("type",2));
        if(tTransportations1!=null){
            Integer yardId = tTransportations1.getYardId();
            if(yardId!=null){
                TYard tYard = yardService.selectById(yardId);
                maps.add(getLat(tYard.getStreetAddress()));
            }
        }
        if(tOrder.geteAddress()!=null){
            maps.add(getLat(tOrder.geteAddress()));
        }
        orderInfo.setSlat(tOrder.getStartLat());
        orderInfo.setSlon(tOrder.getStartLon());
@@ -514,7 +579,7 @@
        // 获取码头id  获取码头地址  pickup信息
        Integer portId = tOrder.getPort();
        TPort tPort = portMapper.selectById(portId);
        orderInfo.setAddress(tOrder.geteAddress());
        orderInfo.setAddress(tPort.getAddress());
        orderInfo.setContactName(tOrder.getsName());
        orderInfo.setContactPhone(tOrder.getsPhone());
        orderInfo.setContactEmail(tOrder.getsEmail());
@@ -565,7 +630,12 @@
        orderInfo.setNote(driverNoteVos);
        orderInfo.setTrouble(driverNoteVos1);
        orderInfo.setState(tOrder.getState());
        return orderInfo;
        HashMap<String, Object> map = new HashMap<>();
        map.put("lonlat",maps);
        map.put("data",orderInfo);
        return map;
    }
@@ -578,26 +648,35 @@
    @Override
    public List<IndexMonth> index(int userId) {
        ArrayList<IndexMonth> list = new ArrayList<>();
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id"));
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id").ne("status",17));
        for (TOrder order : orders) {
            IndexMonth indexMonth = new IndexMonth();
            indexMonth.setTime(order.getPayTime());
            indexMonth.setOrderNumber(order.getId());
            indexMonth.setAmount(order.getAllTotal());
            BigDecimal order_id = priceMapper.selectList(new EntityWrapper<TPrice>().eq("order_id", order.getId())).stream().map(TPrice::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            indexMonth.setAmount(order_id);
            list.add(indexMonth);
        }
        return list;
    }
    public static void main(String[] args) throws ParseException {
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DATE,1);
        System.out.println(instance.getTime());
    }
    @Override
    public List<IndexMonth> indexYear(int i,int userId) {
        ArrayList<IndexMonth> list = new ArrayList<>();
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id").like("pay_time",String.valueOf(i)));
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id").like("pay_time",String.valueOf(i)).ne("status",17));
        for (TOrder order : orders) {
            IndexMonth indexMonth = new IndexMonth();
            indexMonth.setTime(order.getPayTime());
            indexMonth.setOrderNumber(order.getId());
            indexMonth.setAmount(order.getAllTotal());
            BigDecimal order_id = priceMapper.selectList(new EntityWrapper<TPrice>().eq("order_id", order.getId())).stream().map(TPrice::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            indexMonth.setAmount(order_id);
            list.add(indexMonth);
        }
        return list;
@@ -606,12 +685,13 @@
    @Override
    public List<IndexMonth> indexTime(String sTime, String eTime,int userId) {
        ArrayList<IndexMonth> list = new ArrayList<>();
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id").between("pay_time",sTime,eTime));
        List<TOrder> orders = this.baseMapper.selectList(new EntityWrapper<TOrder>().eq("user_id", userId).isNotNull("company_id").between("pay_time",sTime,eTime).ne("status",17));
        for (TOrder order : orders) {
            IndexMonth indexMonth = new IndexMonth();
            indexMonth.setTime(order.getPayTime());
            indexMonth.setOrderNumber(order.getId());
            indexMonth.setAmount(order.getAllTotal());
            BigDecimal order_id = priceMapper.selectList(new EntityWrapper<TPrice>().eq("order_id", order.getId())).stream().map(TPrice::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
            indexMonth.setAmount(order_id);
            list.add(indexMonth);
        }
        return list;
@@ -623,4 +703,10 @@
    }
    @Override
    public List<Map<String, Object>> getLonLat(Long orderId) {
        return this.baseMapper.getLonLat(orderId);
    }
}