Commit 6369f14f authored by hanfeng's avatar hanfeng

总业绩统计

parent 77f2433e
......@@ -5,6 +5,10 @@ import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 手动给集合分页
* @author Administrator
*/
@Data
public class PageResult<M> {
/** 页码 */
......
......@@ -38,16 +38,13 @@ public class QueryCriteria {
@ApiModelProperty(value = "账目类型: 0-入账 1-出账")
private Integer type = 0;
@ApiModelProperty("用户id")
private List<Integer> userId;
@ApiModelProperty("权限公司id")
private List<Integer> jurisdiction;
@ApiModelProperty(value = "当前页数")
private Integer page;
private Integer page=1;
@ApiModelProperty(value = "每页条数")
private Integer limit;
private Integer limit=10;
}
......@@ -20,8 +20,7 @@ public class ReturnOrderAmount implements Serializable {
@ApiModelProperty(value = "订单类型")
private Integer type;
@ApiModelProperty(value = "订单明细")
@Column(name = "account_detail")
private String accountDetailStr;
private String accountDetail;
@ApiModelProperty(value = "用户姓名")
private String realname;
@ApiModelProperty(value = "手机号")
......@@ -33,8 +32,7 @@ public class ReturnOrderAmount implements Serializable {
@ApiModelProperty("退还类型")
@Column(name = "account_type")
private Integer accountType;
public OrderAccountDetail getAccountDetailStr() {
return StringUtils.hasText(accountDetailStr)? JSON.parseObject(accountDetailStr,OrderAccountDetail.class):new OrderAccountDetail();
public OrderAccountDetail getAccountDetail() {
return StringUtils.hasText(accountDetail)? JSON.parseObject(accountDetail,OrderAccountDetail.class):new OrderAccountDetail();
}
}
......@@ -654,6 +654,14 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
public List<ReturnOrderAmount> outStatisticalData(QueryCriteria queryCriteria) {
return mapper.outStatisticalData(queryCriteria);
Long startTime=null;
Long endTime= null;
if (queryCriteria.getStartDate()!=null) {
startTime=queryCriteria.getStartDate().getTime();
}
if (queryCriteria.getEndDate()!=null) {
endTime= queryCriteria.getEndDate().getTime();
}
return mapper.outStatisticalData(queryCriteria,startTime,endTime);
}
}
\ No newline at end of file
......@@ -88,7 +88,11 @@ public class TotalPerformanceBiz {
}
/**
* 获取支出明细
* @param queryCriteria
* @return
*/
public List<ReturnOrderAmount> outStatisticalData(QueryCriteria queryCriteria) {
List<ReturnOrderAmount> returnOrderAmounts = accountBiz.outStatisticalData(queryCriteria);
......@@ -99,12 +103,17 @@ public class TotalPerformanceBiz {
return splitReturnOrderAmountList(returnOrderAmounts,queryCriteria);
}
//拆分明细
/**
* 进行对支出记录拆分,拆分为-押金、订单和违章
* @param returnOrderAmounts
* @param queryCriteria
* @return
*/
private List<ReturnOrderAmount> splitReturnOrderAmountList(List<ReturnOrderAmount> returnOrderAmounts, QueryCriteria queryCriteria) {
ArrayList<ReturnOrderAmount> arrayList = Lists.newArrayList();
//进行遍历拆分出压惊、订单和违章
//进行遍历拆分出-押金、订单和违章
for (ReturnOrderAmount returnOrderAmount : returnOrderAmounts) {
OrderAccountDetail accountDetailStr = returnOrderAmount.getAccountDetailStr();
OrderAccountDetail accountDetailStr = returnOrderAmount.getAccountDetail();
//押金退还金额
BigDecimal depositAmount = accountDetailStr.getDepositAmount();
//订单退还
......
......@@ -23,5 +23,5 @@ public interface OrderAccountMapper extends Mapper<OrderAccount> {
List<OrderAccountDTO> getOrderAccountByOrderType(Term term);
List<ReturnOrderAmount> outStatisticalData(QueryCriteria queryCriteria);
List<ReturnOrderAmount> outStatisticalData(@Param("queryCriteria")QueryCriteria queryCriteria,@Param("startTime") Long startTime,@Param("endTime")Long endTime);
}
......@@ -2,18 +2,25 @@ package com.xxfc.platform.order.rest.background;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.auth.PageResult;
import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.biz.TotalPerformanceBiz;
import com.xxfc.platform.order.pojo.QueryCriteria;
import com.xxfc.platform.order.contant.enumerate.BookkeepingTypeEnum;
import com.xxfc.platform.order.pojo.ReturnOrderAmount;
import com.xxfc.platform.order.pojo.TotalOrderRevenue;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -28,8 +35,11 @@ import java.util.stream.Collectors;
*/
@RestController()
@RequestMapping("/reportForm")
@RequestMapping("/report/form")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Api(tags = "总业绩统计")
@IgnoreClientToken
@IgnoreUserToken
public class TotalPerformanceStatementController extends CommonBaseController {
private final TotalPerformanceBiz totalPerformanceBiz;
private final HttpServletRequest request;
......@@ -38,8 +48,8 @@ public class TotalPerformanceStatementController extends CommonBaseController {
private final VehicleFeign vehicleFeign;
private final Integer HIGHEST_AUTHORITY = 1;
@RequestMapping()
public ObjectRestResponse statisticalData(QueryCriteria queryCriteria) throws Exception {
@PostMapping("/list")
public ObjectRestResponse statisticalData(@RequestBody QueryCriteria queryCriteria) throws Exception {
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
......@@ -58,9 +68,35 @@ public class TotalPerformanceStatementController extends CommonBaseController {
TotalOrderRevenue totalOrderRevenue = totalPerformanceBiz.entryStatisticalData(queryCriteria);
return ObjectRestResponse.succ(totalOrderRevenue);
}else if (BookkeepingTypeEnum.OUT.getCode().equals(queryCriteria.getType())){
totalPerformanceBiz.outStatisticalData(queryCriteria);
List<ReturnOrderAmount> returnOrderAmounts = totalPerformanceBiz.outStatisticalData(queryCriteria);
return ObjectRestResponse.succ(PageResult.nowPageResult(queryCriteria.getPage(),queryCriteria.getLimit(),returnOrderAmounts));
}
return ObjectRestResponse.succ();
}
@PostMapping("/excel")
public ObjectRestResponse statisticalDownload(@RequestBody QueryCriteria queryCriteria) throws Exception {
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
//获取用户权限
List<Integer> Jurisdiction = null;
//是否有查询所有数据的权限
if (!HIGHEST_AUTHORITY.equals(userDTO.getDataAll())) {
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
Jurisdiction = branchCompanies.parallelStream().map(BranchCompany::getId).collect(Collectors.toList());
}
queryCriteria.setJurisdiction(Jurisdiction);
if (BookkeepingTypeEnum.ENTER.getCode().equals(queryCriteria.getType())) {
TotalOrderRevenue totalOrderRevenue = totalPerformanceBiz.entryStatisticalData(queryCriteria);
return ObjectRestResponse.succ(totalOrderRevenue);
}else if (BookkeepingTypeEnum.OUT.getCode().equals(queryCriteria.getType())){
List<ReturnOrderAmount> returnOrderAmounts = totalPerformanceBiz.outStatisticalData(queryCriteria);
return ObjectRestResponse.succ(PageResult.nowPageResult(queryCriteria.getPage(),queryCriteria.getLimit(),returnOrderAmounts));
}
return ObjectRestResponse.succ();
}
}
......@@ -439,8 +439,8 @@
<if test="orderType != null">
and type = #{orderType}
</if>
order by crt_time DESC
</where>
order by crt_time DESC
</select>
</mapper>
\ No newline at end of file
......@@ -52,23 +52,23 @@
</if>
</select>
<select id="outStatisticalData" resultType="com.xxfc.platform.order.pojo.ReturnOrderAmount">
select oa.crt_time as time ,oupc.no,oupc.type,oa.account_detail,oupc.realname,oupc.username,oa.account_type
select oa.crt_time as time ,oupc.no,oupc.type,oa.account_detail as accountDetail ,oupc.realname,oupc.username,oa.account_type
from order_account oa
left join order_user_position_company oupc ON oa.order_id=oupc.id
WHERE oa.account_type!=101
<if test="startDate != null">
and oa.crt_time <![CDATA[>=]]> #{startDate}
<if test="startTime != null">
and oa.crt_time <![CDATA[>=]]> #{startTime}
</if>
<if test="endDate != null">
and oa.crt_time <![CDATA[<=]]> #{endDate}
<if test="endTime != null">
and oa.crt_time <![CDATA[<=]]> #{endTime}
</if>
<if test="jurisdiction != null and jurisdiction.size() !=0 ">
<if test="queryCriteria.jurisdiction != null and queryCriteria.jurisdiction.size() !=0 ">
and oupc.company_id in
<foreach collection="jurisdiction" index="index" item="companyId" open="(" separator="," close=")">
#{companyId}
</foreach>
</if>
<if test="orderType != null">
<if test="queryCriteria.orderType != null">
and oupc.type = #{orderType}
</if>
order by oa.crt_time DESC
......
......@@ -67,7 +67,7 @@ public class ServiceTest {
@Test
public void test4(){
HomePageOrderData totalOrder = statisticsBiz.getTotalOrder(null);
HomePageOrderData totalOrder = statisticsBiz.getTotalOrder(null,null);
System.out.println(totalOrder);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment