Commit 6369f14f authored by hanfeng's avatar hanfeng

总业绩统计

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