| | |
| | | if(orderLogistics.getArriveTime()==null){ |
| | | orderLogistics.setArriveTime(orderLogistics.getStartServiceTime()); |
| | | } |
| | | |
| | | //使用原始里程计算费用 |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D);//计算费用 |
| | | Double mileage = orderLogistics.getMileage(); |
| | | Double orderMoney1 = orderLogistics.getOrderMoney(); |
| | | //使用预估里程计算费用 |
| | | |
| | | //实际里程小于预估里程95%,则使用预估里程进行计算价格 |
| | | Double startLat = orderLogistics.getStartLat(); |
| | | Double startLon = orderLogistics.getStartLon(); |
| | | Double getoffLon = orderLogistics.getGetoffLon(); |
| | | Double getoffLat = orderLogistics.getGetoffLat(); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(startLat, startLon, getoffLat, getoffLon, orderLogistics.getTripId()); |
| | | orderLogistics.setMileage(distancematrix.getDistance().doubleValue()); |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D); |
| | | Double orderMoney2 = orderLogistics.getOrderMoney(); |
| | | //如果原始金额小于预估金额,且比例小于95%,则使用预估金额 |
| | | if(orderMoney1.compareTo(orderMoney2) >= 0 || orderMoney1 / orderMoney2 >= 0.95){ |
| | | //原始金额大于预估金额或者比例大于0.95,则使用原始里程重新计算费用 |
| | | orderLogistics.setMileage(mileage); |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D);//计算费用 |
| | | double ce = orderLogistics.getMileage() / distancematrix.getDistance().doubleValue(); |
| | | if(ce < 0.95 || ce > 1.05){ |
| | | orderLogistics.setMileage(distancematrix.getDistance().doubleValue()); |
| | | } |
| | | |
| | | orderLogistics = this.setMoney(orderLogistics, 0D, 0D);//计算费用 |
| | | orderLogistics.setPayManner(type); |
| | | orderLogistics.setParkMoney(null == parkingFee ? 0D : parkingFee); |
| | | orderLogistics.setRoadTollMoney(null == crossingFee ? 0D : crossingFee); |
| | |
| | | if(null == orderPrivateCar.getEndServiceTime()){ |
| | | orderPrivateCar.setEndServiceTime(new Date()); |
| | | } |
| | | //使用原始里程计算费用 |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | Double mileage = orderPrivateCar.getMileage(); |
| | | Double orderMoney1 = orderPrivateCar.getOrderMoney(); |
| | | //使用预估里程计算费用 |
| | | //实际里程小于预估里程95%或者大于5%,则使用预估里程进行计算价格 |
| | | Double startLat = orderPrivateCar.getStartLat(); |
| | | Double startLon = orderPrivateCar.getStartLon(); |
| | | Double getoffLon = orderPrivateCar.getGetoffLon(); |
| | | Double getoffLat = orderPrivateCar.getGetoffLat(); |
| | | DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(startLat, startLon, getoffLat, getoffLon, orderPrivateCar.getTripId()); |
| | | orderPrivateCar.setMileage(distancematrix.getDistance().doubleValue()); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D); |
| | | Double orderMoney2 = orderPrivateCar.getOrderMoney(); |
| | | //如果原始金额小于预估金额,且比例小于95%,则使用预估金额 |
| | | if(orderMoney1.compareTo(orderMoney2) >= 0 || orderMoney1 / orderMoney2 >= 0.95){ |
| | | //原始金额大于预估金额或者比例大于0.95,则使用原始里程重新计算费用 |
| | | orderPrivateCar.setMileage(mileage); |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | double ce = orderPrivateCar.getMileage() / distancematrix.getDistance().doubleValue(); |
| | | if(ce < 0.95 || ce > 1.05){ |
| | | orderPrivateCar.setMileage(distancematrix.getDistance().doubleValue()); |
| | | } |
| | | |
| | | orderPrivateCar = this.setMoney(orderPrivateCar, 0D, 0D);//计算费用 |
| | | orderPrivateCar.setPayManner(type); |
| | | orderPrivateCar.setParkMoney(null == parkingFee ? 0D : parkingFee); |
| | | orderPrivateCar.setRoadTollMoney(null == crossingFee ? 0D : crossingFee); |
| | |
| | | ,num12); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | |
| | | @RequestMapping(value = "/updateStatus") |
| | | @ResponseBody |
| | | public Object updateStatus(DriverActivity driverActivity) { |
| | |
| | | </sql> |
| | | <select id="getList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | SELECT |
| | | a.*, IFNULL(o1.number, 0) + IFNULL(o2.number, 0) + IFNULL(o3.number, 0) number |
| | | a.*,b.name as companyName, IFNULL(o1.number, 0) + IFNULL(o2.number, 0) + IFNULL(o3.number, 0) number |
| | | FROM |
| | | t_driver_activity a |
| | | left join t_company b on (a.companyId = b.id) |
| | | LEFT JOIN ( |
| | | SELECT |
| | | COUNT(h.id) number, |
| | |
| | | a.startTime as startTime, |
| | | a.endTime as endTime, |
| | | a.remark as remark, |
| | | b.name as companyName, |
| | | IF(a.`status` != 3, a.`status`, IF(NOW() < a.startTime, 5, if(now() >= a.startTime and now() < a.endTime, |
| | | 6, 7))) as `status`, |
| | | ( |
| | |
| | | (select count(id) from t_order_cross_city where state in (6,8,9) and activityId = a.id) |
| | | ) as number |
| | | from t_user_activity a |
| | | left join t_company b on (a.companyId = b.id) |
| | | where 1 = 1 |
| | | <if test="null != companyId"> |
| | | and a.companyId = #{companyId} |
| | |
| | | {title: '', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '活动名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '所属企业', field: 'companyName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '参与人次', field: 'number', visible: true, align: 'center', valign: 'middle'}, |
| | |
| | | {title: '', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '添加时间', field: 'insertTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '活动名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '所属企业', field: 'companyName', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '参与人次', field: 'number', visible: true, align: 'center', valign: 'middle'}, |