提交 e5611448 authored 作者: 刘海泉's avatar 刘海泉

新增获取车辆月单量和月收入的接口

上级 330547c9
package com.clx.performance.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/** 月收入和接单量返回实体
*/
@Getter
@Setter
public class MonthInComeAndOrderedVO {
@ApiModelProperty("月收入")
private BigDecimal monthIncome;
@ApiModelProperty("月单量")
private Integer monthOrderNumber;
}
package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PageMonitorOrderChildQCParam;
import com.clx.performance.service.ExternalInterfaceService;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.pc.*;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
@Slf4j
@RestController
@RequestMapping(value="/external/interface")
@Validated
@Api(tags = "对外提供该服务数据的接口")
@AllArgsConstructor
public class ExternalInterfaceController {
private final ExternalInterfaceService externalInterfaceService;
@ApiOperation(value = "获取车辆的月收入和月单量",notes = "<br>By:刘海泉")
@GetMapping("/getTruckMonthIncomeAndOrderedNum")
public Result<MonthInComeAndOrderedVO> getTruckMonthIncomeAndOrderedNum(@NotBlank(message = "车牌号不能为空") String truckNo) {
return Result.ok(externalInterfaceService.getTruckMonthIncomeAndOrderedNum(truckNo));
}
}
......@@ -8,6 +8,7 @@ import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
......@@ -166,4 +167,6 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
Page<OrderChild> getMonthAgoByUserNo(Long userNo, LocalDateTime monthAgo, PageParam param);
IPage<OrderChild> pageOwnerOrderChildList(PageOwnerOrderChildListParam param);
MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo);
}
......@@ -13,6 +13,7 @@ import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.app.owner.PageOwnerOrderChildListParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
......@@ -538,4 +539,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
query.orderByDesc(OrderChild :: getCreateTime);
return baseMapper.selectPage(Page.of(param.getPage(), param.getPageSize()),query);
}
@Override
public MonthInComeAndOrderedVO statisticsTruckMonth(LocalDateTime startTime, LocalDateTime endTime, String truckNo) {
return baseMapper.statisticsTruckMonth(startTime,endTime,truckNo);
}
}
......@@ -11,12 +11,14 @@ import com.clx.performance.param.pc.OrderChildReportParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.ibatis.annotations.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
......@@ -85,4 +87,8 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider(type = OrderChildSqlProvider.class, method = "getLossNet")
List<Double> getLossNet(@Param("param") OrderChildReportParam param);
@SelectProvider(type = OrderChildSqlProvider.class, method = "statisticsTruckMonth")
MonthInComeAndOrderedVO statisticsTruckMonth(@Param("startTime")LocalDateTime startTime, @Param("endTime")LocalDateTime endTime, @Param("truckNo")String truckNo);
}
\ No newline at end of file
package com.clx.performance.service;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
public interface ExternalInterfaceService {
MonthInComeAndOrderedVO getTruckMonthIncomeAndOrderedNum(String truckNo);
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 车队运营系统相关逻辑接口
*/
@Slf4j
@Service
@AllArgsConstructor
public class ExternalInterfaceService implements com.clx.performance.service.ExternalInterfaceService {
private final OrderChildDao orderChildDao;
//查询车辆近一个月的收入和订单书库来那个
public MonthInComeAndOrderedVO getTruckMonthIncomeAndOrderedNum(String truckNo){
LocalDateTime endTime = LocalDateTime.now();
LocalDateTime startTime = endTime.minusMonths(1);
return orderChildDao.statisticsTruckMonth(startTime,endTime,truckNo);
}
}
......@@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
......@@ -220,4 +221,10 @@ public class OrderChildSqlProvider {
}}.toString();
}
public String statisticsTruckMonth(@Param("startTime") LocalDateTime startTime, @Param("endTime")LocalDateTime endTime, @Param("truckNo")String truckNo) {
return "select a.monthOrderNumber,if(a.total,a.total,0) monthIncome from (" +
" SELECT count(*) AS monthOrderNumber,sum(freight) total FROM order_child WHERE truck_no = #{truckNo} and AND finish_time >= #{startTime} AND finish_time <= #{endTime}" +
") a";
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论