Commit 721f4ad9 authored by jiaorz's avatar jiaorz

Merge branch 'master-modify-cutAmount' into dev

parents 9e3587e5 0c954fd5
......@@ -4,12 +4,17 @@ import java.util.HashMap;
import java.util.Map;
public enum OrderCostEnum {
RentVehicle(1, "租车费用明细"),
RENT_VEHICLE("01", "租车费用明细"),
TOUR("02", "旅游费用明细"),
CANCEL_NO_START("03", "取消违约金明细"),
CANCEL_STARTED("04", "取消费用明细"),
FINLISH_ADVANCE("05", "租车费用明细"),
FINLISH_DELAY("06", "租车费用明细"),
;
/**
* 编码
*/
private Integer code;
private String code;
/**
* 类型描述
*/
......@@ -17,16 +22,16 @@ public enum OrderCostEnum {
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
OrderCostEnum(Integer code, String desc){
OrderCostEnum(String code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
public String getCode() {
return code;
}
public void setCode(Integer code) {
public void setCode(String code) {
this.code = code;
}
......
......@@ -7,6 +7,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -15,7 +16,9 @@ import java.util.Date;
* @author Administrator
*/
@Data
public class DailyOrderStatistics {
public class DailyOrderStatistics implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
private Integer id;
......
......@@ -13,9 +13,15 @@ import java.math.BigDecimal;
@Data
@Table(name = "daily_travel_order_statistics")
public class DailyTravelOrderStatistics extends DailyOrderStatistics {
/**
* 违约总额
*/
@Column(name = "default_money ")
private BigDecimal defaultMoney ;
/**
* 取消订单总
* 退还订单金
*/
@Column(name = "penal_sum")
private BigDecimal penalSum;
@Column(name = "return_gmv")
private BigDecimal returnGmv;
}
......@@ -17,27 +17,28 @@ import java.util.Date;
/**
* 每日租车订单统计
*
* @author Administrator
*/
@Data
@Table(name = "daily_vehicle_order_statistics")
public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
public class DailyVehicleOrderStatistics extends DailyOrderStatistics {
/**
* 预交押金总额
*/
@Column(name = "security_deposit")
private BigDecimal securityDeposit;
private BigDecimal securityDeposit;
/**
* 退还押金总额
*/
@Column(name = "refund_security_deposit")
private BigDecimal refundSecurityDeposit;
private BigDecimal refundSecurityDeposit;
/**
* 赔偿总额
* 损坏赔偿总额
*/
@Column(name = "compensation")
private BigDecimal compensation;
......@@ -46,19 +47,25 @@ public class DailyVehicleOrderStatistics extends DailyOrderStatistics{
* 违章总额
*/
@Column(name = "forfeit")
private BigDecimal violationMoney;
private BigDecimal violationMoney;
/**
* 延期总
* 退还订单金
*/
@Column(name = "postpone")
private BigDecimal postpone;
@Column(name = "return_gmv")
private BigDecimal returnGmv;
/**
* 取消订单扣款总额
* 违约总额
*/
@Column(name = "penal_sum")
private BigDecimal penalSum;
@Column(name = "default_money ")
private BigDecimal defaultMoney ;
/**
* 消费金总额
*/
@Column(name = "total_expenditure")
private BigDecimal totalExpenditure;
}
......@@ -323,4 +323,8 @@ public class OrderRentVehicleDetail implements Serializable {
@Column(name = "used_day")
Integer usedDay;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
}
......@@ -12,48 +12,58 @@ import java.math.BigDecimal;
*/
@Data
@ApiModel(value = "订单统计实体")
@ApiModel(value = "历史订单统计实体")
public class OrderStatistics {
/**
* 月成交总金额
* 历史交总金额
*/
@ApiModelProperty(value = "月成交总金额")
@ApiModelProperty(value = "历史交总金额")
private BigDecimal totalGmv;
/**
* 押金总额
* 历史押金总额
*/
@ApiModelProperty(value = "押金总额")
@ApiModelProperty(value = "历史押金总额")
private BigDecimal totalSecurityDeposit;
/**
* 退还押金总额
* 历史退还押金总额
*/
@ApiModelProperty(value = "退还押金总额")
@ApiModelProperty(value = "历史退还押金总额")
private BigDecimal totalRefundSecurityDeposit;
/**
* 赔偿总额
* 历史赔偿总额
*/
@ApiModelProperty(value = "赔偿总额")
@ApiModelProperty(value = "历史赔偿总额")
private BigDecimal totalCompensation;
/**
* 违章总额
* 历史违章总额
*/
@ApiModelProperty(value = "违章总额")
@ApiModelProperty(value = "历史违章总额")
private BigDecimal totalForfeit;
/**
* 历史订单退款
*/
@ApiModelProperty(value = "历史订单退款")
private BigDecimal totalReturnGmv;
/**
* 月取消订单扣款总额
* 历史延期扣款总额
*/
@ApiModelProperty(value = "月取消订单扣款总额")
private BigDecimal totalPenalSum;
@ApiModelProperty(value = "历史延期扣款总额")
private BigDecimal totalDefaultMoney;
/**
* 月延期扣款总额
* 历史实际消费总额
*/
@ApiModelProperty(value = "月延期扣款总额")
private BigDecimal totalPostpone;
@ApiModelProperty(value = "实际消费总额")
private BigDecimal totalExpenditure;
}
......@@ -245,6 +245,10 @@ public class OrderTourDetail implements Serializable {
@ApiModelProperty(value = "是否省外 1--省外;0--省内")
private Integer isOutside;
@Column(name = "cost_detail_extend")
@ApiModelProperty(value = "费用其他明细 type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细")
private String costDetailExtend;
@Transient
private List<TourUser> userVoList;
}
package com.xxfc.platform.order.pojo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class HomePageOrderData {
/**
* 订单总额
*/
private BigDecimal totalOrders;
/**
* 为退还押金总额
*/
private BigDecimal totalOutstandingDeposit;
/**
* 额外赔款
*/
private BigDecimal additionalIndemnity;
}
package com.xxfc.platform.order.pojo.account;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xxfc.platform.order.entity.OrderAccount;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
@Data
public class OrderAccountDTO extends OrderAccount {
@Column(name = "companyId")
private Integer companyId;
@Column(name = "oneDay")
private String oneDay;
}
......@@ -23,6 +23,11 @@ public class InProgressVO {
*/
BigDecimal extraAmount = BigDecimal.ZERO;
/**
* 实际消费金额
*/
BigDecimal consumeAmount = BigDecimal.ZERO;
/**
* 已使用天数
*/
......
package com.xxfc.platform.order.pojo.price;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelNoStartVO extends CostDetailExtend{
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金额
*/
private BigDecimal violateAmount = BigDecimal.ZERO;
public CancelNoStartVO() {
this.type = CANCEL_NO_START;
}
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CancelStartedVO extends CostDetailExtend {
/**
* 消费金额(实际计费)
*/
private BigDecimal consumeAmount;
/**
* 租车单价
*/
private BigDecimal modelAmount;
/**
* 使用天数
*/
private Integer usedDayNum;
/**
* 使用金额
*/
private BigDecimal usedAmount;
/**
* 使用免费天数
*/
private Integer usedfreeDayNum;
/**
* 使用免费金额
*/
private BigDecimal usedFreeAmount;
/**
* 违约金描述
*/
private String violateDesc;
/**
* 违约金金额
*/
private BigDecimal violateAmount;
}
package com.xxfc.platform.order.pojo.price;
import lombok.Data;
@Data
public class CostDetailExtend {
public static final int CANCEL_NO_START = 1;
public static final int CANCEL_STARTED = 2;
public static final int FINLISH_ADVANCE = 3;
public static final int FINLISH_DELAY = 4;
private String costDetail;
/**
* type:1--取消违约金;2--取消费用明细;3--提前还车费用明细;4--延期还车费用明细
*/
protected Integer type;
}
package com.xxfc.platform.order.biz;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.google.common.collect.Lists;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.DailyMembersOrderStatistics;
import com.xxfc.platform.order.entity.OrderAccount;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.DailyMembersOrderStatisticsMapper;
import com.xxfc.platform.order.pojo.account.OrderAccountDTO;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -33,31 +42,31 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
@Value("${order.day}")
private Integer day;
/**
* 总公司id默认为1
*/
private final Integer OMPANY_ID=1;
@Autowired
private OrderAccountBiz accountBiz;
@Transactional(rollbackFor = Exception.class)
public boolean memberOrderStatistics() {
public boolean saveDailyMembersOrderRecord() {
try {
List<OrderAccountDTO> accountList = accountBiz.getOrderAccountByOrderType(OrderTypeEnum.MEMBER.getCode(), day);
Map<String, Object> travelGmv = mapper.getTravelGmv(day);
if (travelGmv.isEmpty()) {
return true;
}
DailyMembersOrderStatistics MembersStatistics = new DailyMembersOrderStatistics();
BeanUtils.copyProperties(MembersStatistics, travelGmv);
String oneDay = MembersStatistics.getOneDay();
if (StringUtils.isBlank(oneDay)) {
throw new BaseException();
if (CollectionUtils.isNotEmpty(accountList)) {
DailyMembersOrderStatistics orderStatistics = new DailyMembersOrderStatistics();
ArrayList<OrderAccountDetail> orderAccountDetails = getOrderAccountDetail(accountList);
if (CollectionUtils.isNotEmpty(orderAccountDetails)) {
//获取订单总额
BigDecimal gmv = getOrderAmountTotal(orderAccountDetails);
orderStatistics.setGmv(gmv);
orderStatistics.setBranchCompanyId(OMPANY_ID);
orderStatistics.setOneDay(accountList.get(0).getOneDay());
}
insertSelectiveRe(orderStatistics);
}
Example exa = new Example(DailyMembersOrderStatistics.class);
exa.createCriteria().andEqualTo("oneDay", oneDay);
List<DailyMembersOrderStatistics> statistics = selectByExample(exa);
if (CollectionUtils.isEmpty(statistics)) {
insertSelective(MembersStatistics);
}
return true;
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
......@@ -66,6 +75,37 @@ public class DailyMembersOrderStatisticsBiz extends BaseBiz<DailyMembersOrderSta
}
}
/**
* 获取押金和
*
* @param orderAccountDetails
* @return
*/
private BigDecimal getOrderAmountTotal(ArrayList<OrderAccountDetail> orderAccountDetails) {
return orderAccountDetails.stream()
.map(OrderAccountDetail::getOrderAmount)
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
/**
* 获取所有订单详情数据
*
* @param orderAccountDTOS
* @return
*/
private ArrayList<OrderAccountDetail> getOrderAccountDetail(List<OrderAccountDTO> orderAccountDTOS) {
ArrayList<OrderAccountDetail> arrayList = Lists.newArrayList();
orderAccountDTOS.parallelStream()
.map(OrderAccount::getAccountDetail)
.forEach(detail -> {
if (StringUtils.isNotBlank(detail)) {
arrayList.add(JSONUtil.toBean(detail, OrderAccountDetail.class));
}
});
return arrayList;
}
@Override
public int insertSelectiveRe(DailyMembersOrderStatistics entity) {
Date date = new Date();
......
......@@ -27,9 +27,9 @@ public class DailyOrderStatisticsBiz extends BaseBiz<DailyOrderStatisticsMapper,
@Scheduled(cron = "0 0 2 * * ?")
public boolean statisticalOrder(){
boolean vehicleFlag = vehicleStatisticsBiz.StatisticsOfCarRentalOrders();
boolean travelFlag = travelStatisticsBiz.StatisticsOfTravelOrders();
boolean membersFlag= membersStatisticsBiz.memberOrderStatistics();
boolean vehicleFlag = vehicleStatisticsBiz.saveDailyVehicleOrderRecord();
boolean travelFlag = travelStatisticsBiz.saveDailyTravelOrderRecord();
boolean membersFlag= membersStatisticsBiz.saveDailyMembersOrderRecord();
if (vehicleFlag&&travelFlag&&membersFlag){
log.info("----statisticalOrder:成功-----");
return true;
......
......@@ -13,6 +13,7 @@ import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.order.pojo.account.OrderAccountDTO;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
......@@ -85,12 +86,14 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
public BigDecimal rentRefundProcessCancel(BaseOrder baseOrder, BigDecimal mainItemRealAmount, Long timeLag, String dicParentKey, BigDecimal depositAmount, BigDecimal originalDeductAmount) {
public BigDecimal rentRefundProcessCancel(BaseOrder baseOrder, BigDecimal mainItemRealAmount, Long timeLag, String dicParentKey, BigDecimal depositAmount, BigDecimal originalDeductAmount, OrderAccountDetail oad) {
//计算退款金额
//商品价格 - 优惠券减免的价格
BigDecimal originalRefundAmount = BigDecimal.ZERO.add(mainItemRealAmount);
StringBuilder refundDescBuilder = new StringBuilder("取消订单退款:");
OrderAccountDetail oad = new OrderAccountDetail();
if(null == oad) {
oad = new OrderAccountDetail();
}
BigDecimal refundMainGoodsAmount = calculateRefund(originalRefundAmount, timeLag, dicParentKey, refundDescBuilder, oad);
refundMainGoodsAmount = refundMainGoodsAmount.setScale(2, RoundingMode.HALF_UP);
......@@ -187,7 +190,9 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
set("ga", goodsAmount);
}})).toString());
refundDescBuilder = refundDescBuilder.insert(0, names[1]+ ",");
orderAccountDetail.getDeductions().add(initDeduction(goodsAmount.subtract(refundGoodsAmount), names[1], DeductionTypeEnum.VIOLATE_CANCEL, OrderAccountDeduction.ORIGIN_DEPOSIT));
if(goodsAmount.subtract(refundGoodsAmount).compareTo(BigDecimal.ZERO) > 0) {
orderAccountDetail.getDeductions().add(initDeduction(goodsAmount.subtract(refundGoodsAmount), names[1], DeductionTypeEnum.VIOLATE_CANCEL, OrderAccountDeduction.ORIGIN_DEPOSIT));
}
break;
}
}
......@@ -353,4 +358,24 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
log.error("crosstown.getViolateDetail() crosstown id :"+crosstown.getId() +" 转换失败");
}
}
/**
* 获取每日订单账目,用于统计
* @param code
* @param day
* @return
*/
public List<OrderAccountDTO> getOrderAccountByOrderType(Integer code, Integer day) {
return mapper.getOrderAccountByOrderType(code,day);
}
}
\ No newline at end of file
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.mapper.OrderStatisticsMapper;
import com.xxfc.platform.order.pojo.HomePageOrderData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,37 +28,48 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
@Autowired
private DailyMembersOrderStatisticsBiz membersBiz;
public OrderStatistics getTotalOrder(Integer companyId) {
OrderStatistics result = new OrderStatistics();
ArrayList<OrderStatistics> orderStatistics = new ArrayList<>();
public HomePageOrderData getTotalOrder(Integer companyId) {
HomePageOrderData result = new HomePageOrderData();
ArrayList<HomePageOrderData> orderStatistics = new ArrayList<>();
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
if (vehicle != null) {
orderStatistics.add(vehicle);
HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv()));
setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv())))
);
}};
orderStatistics.add(data);
}
OrderStatistics tour = TravelBiz.findAll(companyId);
if (vehicle != null) {
orderStatistics.add(tour);
HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv()));
setAdditionalIndemnity(tour.getTotalDefaultMoney());
}};
orderStatistics.add(data);
}
OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle != null) {
orderStatistics.add(member);
}
HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(member.getTotalGmv().subtract(member.getTotalReturnGmv()));
result.setTotalGmv(orderStatistics.stream().map(OrderStatistics::getTotalGmv).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
}};
orderStatistics.add(data);
}
result.setTotalForfeit(orderStatistics.stream().map(OrderStatistics::getTotalForfeit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalCompensation(orderStatistics.stream().map(OrderStatistics::getTotalCompensation).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalRefundSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalRefundSecurityDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalSecurityDeposit(orderStatistics.stream().map(OrderStatistics::getTotalSecurityDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalOrders(orderStatistics.stream().map(HomePageOrderData::getTotalOrders).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalPenalSum(orderStatistics.stream().map(OrderStatistics::getTotalPenalSum).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalOutstandingDeposit(orderStatistics.stream().map(HomePageOrderData::getTotalOutstandingDeposit).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setTotalPostpone(orderStatistics.stream().map(OrderStatistics::getTotalPostpone).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
result.setAdditionalIndemnity(orderStatistics.stream().map(HomePageOrderData::getAdditionalIndemnity).filter(o-> Objects.nonNull(o)).reduce(BigDecimal.ZERO, BigDecimal::add));
return result;
}
......
......@@ -6,11 +6,16 @@ import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Maps;
import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.mapper.OrderTemplateMapper;
import com.xxfc.platform.order.pojo.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.order.pojo.price.CostDetailExtend;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -58,6 +63,32 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate>
return template.render(map);
}
public OrderTemplate selectByCode(String code) {
return selectOne(new OrderTemplate(){{
setCode(code);
}});
}
/**
* 计算费用明细
* @param vo
* @return
*/
public void handleCostDetailExtend(CancelNoStartVO vo) {
OrderTemplate template = selectByCode(OrderCostEnum.CANCEL_NO_START.getCode());
vo.setCostDetail(result(template.getTemplate(), Dict.parse(vo)));
}
/**
* 取消费用明细
* @param vo
* @return
*/
public void handleCostDetailExtend(CancelStartedVO vo) {
OrderTemplate template = selectByCode(OrderCostEnum.CANCEL_STARTED.getCode());
vo.setCostDetail(result(template.getTemplate(), Dict.parse(vo)));
}
public static void main(String[] args) {
String tempStr = "{\"key\":\"费用明细\", \"val\":\"\", \"consumeAmount\":\"${consumeAmount}\",\"children\":[${children}]}";
Map map = Maps.newHashMap();
......
package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.lang.Dict;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
......@@ -12,6 +13,7 @@ import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
......@@ -20,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
/**
......@@ -59,6 +62,7 @@ public class OrderCalculateBiz {
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad) {
BigDecimal refundAmount = BigDecimal.ZERO;
BigDecimal consumeAmount = BigDecimal.ZERO;
InProgressVO inProgressVO = new InProgressVO();
inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedfreeDays(freeDays);
......@@ -80,7 +84,7 @@ public class OrderCalculateBiz {
//消费天数
Integer consumeDays = 0 - backFreeDays;
//计算使用天数的费用
BigDecimal consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
......
......@@ -11,9 +11,12 @@ import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.price.CancelNoStartVO;
import com.xxfc.platform.order.pojo.price.CancelStartedVO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse;
......@@ -67,6 +70,9 @@ public class OrderCancelBiz {
@Autowired
OrderAccountBiz orderAccountBiz;
@Autowired
OrderTemplateBiz orderTemplateBiz;
@Autowired
UserFeign userFeign;
......@@ -152,6 +158,25 @@ public class OrderCancelBiz {
//退款子流程: 订单基础,退款描述,退款金额
orderAccountBiz.refundSubProcess(baseOrder, "", baseOrder.getRealAmount().subtract(orvd.getDeposit()), oad.getDepositAmount().add(oad.getOrderAmount()), AccountTypeEnum.OUT_ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode(), oad);
//如果有扣款项,则生成额外的费用明细
CancelStartedVO csv = new CancelStartedVO();
csv.setConsumeAmount(inProgressVO.getConsumeAmount());
csv.setModelAmount(orderItem.getUnitPrice());
csv.setUsedAmount(inProgressVO.getUsedAmount());
csv.setUsedDayNum(inProgressVO.getUsedDays());
csv.setUsedFreeAmount(inProgressVO.getUsedFreeDaysAmount());
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
csv.setViolateAmount(deduction.getAmount());
csv.setViolateDesc(deduction.getName());
}
}
}
orderTemplateBiz.handleCostDetailExtend(csv);
orvd.setCostDetailExtend(csv.getCostDetail());
orderRentVehicleBiz.updateSelectiveByIdRe(orvd);
}else {
//没到出车时间
//判断是否使用免费天数,并且进行扣款
......@@ -165,7 +190,22 @@ public class OrderCancelBiz {
}
}
//退款流程
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, orderItem.getRealAmount(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), freeDayAmount);
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, orderItem.getRealAmount(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), freeDayAmount, null);
//如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
CancelNoStartVO cnsv = new CancelNoStartVO(){{
setViolateAmount(deduction.getAmount());
setViolateDesc(deduction.getName());
}};
orderTemplateBiz.handleCostDetailExtend(cnsv);
orvd.setCostDetailExtend(cnsv.getCostDetail());
orderRentVehicleBiz.updateSelectiveByIdRe(orvd);
}
}
}
}
//已付款的取消订单发送消息
......@@ -199,8 +239,24 @@ public class OrderCancelBiz {
if(SYS_TRUE.equals(otd.getIsOutside())) {
key = TOUR_REFUND;
}
//退款流程
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, adultItem.getRealAmount().add(childItem.getRealAmount()), timeLag, APP_ORDER+ "_"+ key, BigDecimal.ZERO, BigDecimal.ZERO);
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, adultItem.getRealAmount().add(childItem.getRealAmount()), timeLag, APP_ORDER+ "_"+ key, BigDecimal.ZERO, BigDecimal.ZERO, oad);
//如果有扣款项,则生成额外的费用明细
if(oad.getDeductions().size() > 0) {
for(OrderAccountDeduction deduction : oad.getDeductions()) {
if(DeductionTypeEnum.VIOLATE_CANCEL.getCode().equals(deduction.getType())) {
CancelNoStartVO cnsv = new CancelNoStartVO(){{
setViolateAmount(deduction.getAmount());
setViolateDesc(deduction.getName());
}};
orderTemplateBiz.handleCostDetailExtend(cnsv);
otd.setCostDetailExtend(cnsv.getCostDetail());
orderTourDetailBiz.updateSelectiveByIdRe(otd);
}
}
}
//站点总人数减少
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, (otd.getTotalNumber() * -1));
......@@ -213,10 +269,11 @@ public class OrderCancelBiz {
setOrderId(baseOrder.getId());
}});
//取消租车预定
//取消租车预定 和 记录生成额外的费用明细
//已支付,并且是待出行状态,取消预约
if(OrderStatusEnum.ORDER_TOSTART.getCode().equals(baseOrder.getStatus()) && SYS_TRUE.equals(baseOrder.getHasPay())){
vehicleFeign.rentUnbookVehicle(orvd.getBookRecordId());
}else {
//未支付,拒绝之前的预约
RestResponse<Integer> restResponse = vehicleFeign.rentRejectVehicleBooking(orvd.getBookRecordId());
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderAccount;
import com.xxfc.platform.order.pojo.account.OrderAccountDTO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 订单帐目
*
......@@ -11,5 +16,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-09-09 15:51:16
*/
public interface OrderAccountMapper extends Mapper<OrderAccount> {
List<OrderAccountDTO> getOrderAccountByOrderType(@Param("type") Integer type, @Param("day") Integer day);
}
......@@ -12,6 +12,7 @@ import com.xxfc.platform.order.biz.DailyTravelOrderStatisticsBiz;
import com.xxfc.platform.order.biz.DailyVehicleOrderStatisticsBiz;
import com.xxfc.platform.order.biz.OrderStatisticsBiz;
import com.xxfc.platform.order.entity.OrderStatistics;
import com.xxfc.platform.order.pojo.HomePageOrderData;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -88,15 +89,28 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
if (TYPE_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
return ObjectRestResponse.succ(vehicle);
return ObjectRestResponse.succ(new HomePageOrderData(){{
setTotalOrders(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv()));
setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv())))
);
}});
}
if (TYPE_TOUR.equals(type)) {
OrderStatistics tour = TravelBiz.findAll(companyId);
return ObjectRestResponse.succ(tour);
return ObjectRestResponse.succ(new HomePageOrderData(){{
setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv()));
setAdditionalIndemnity(tour.getTotalDefaultMoney());
}});
}
if (TYPE_MEMBER.equals(type)) {
OrderStatistics member = membersBiz.findAll(companyId);
return ObjectRestResponse.succ(member);
return ObjectRestResponse.succ(new HomePageOrderData(){{
setTotalOrders(member.getTotalGmv().subtract(member.getTotalReturnGmv()));
}});
}
if (TYPE_TOTAL.equals(type)) {
......@@ -110,4 +124,6 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}
}
}
......@@ -15,7 +15,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
......@@ -25,18 +24,15 @@ import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.OrderItemDTO;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.constant.AccompanyingItemType;
import com.xxfc.platform.vehicle.entity.AccompanyingItem;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.RentVehicleBookDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import lombok.Data;
......@@ -414,7 +410,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
* @return
*/
private void costDetail(RentVehiclePriceVO vo, String children) {
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode());
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RENT_VEHICLE.getCode());
template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{
put("children", children);
put("vehicleAmount", vo.getVehicleAmount());
......
......@@ -3,7 +3,6 @@ package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException;
......@@ -12,7 +11,6 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.biz.OrderTourDetailBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
......@@ -312,7 +310,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
* @return
*/
private void costDetail(TourPriceVO vo, String children) {
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode());
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RENT_VEHICLE.getCode());
template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{
put("children", children);
}}));
......
......@@ -17,24 +17,13 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv
IFNULL( sum( gmv ), 0 ) AS totalGmv
FROM
(
SELECT
ANY_VALUE(id) AS id ,
ANY_VALUE(branch_company_id) AS branch_company_id,
ANY_VALUE(one_day) AS one_day,
ANY_VALUE(gmv) AS gmv,
ANY_VALUE(crt_time) AS crt_time
FROM
daily_members_order_statistics
GROUP BY
one_day,branch_company_id
) m
daily_vehicle_order_statistics
WHERE
1=1
<if test="companyId != null">
and branch_company_id =#{companyId}
and branch_company_id = #{companyId}
</if>
</select>
......
......@@ -51,26 +51,15 @@
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv,
IFNULL(sum(penal_sum) ,0) as totalPenalSum
IFNULL( sum( gmv ), 0 ) AS totalGmv,
IFNULL( sum( default_money ), 0 ) AS totalDefaultMoney,
IFNULL( sum( return_gmv ), 0 ) AS totalReturnGmv
FROM
(
SELECT
ANY_VALUE(id) AS id,
ANY_VALUE(branch_company_id) AS branch_company_id,
ANY_VALUE(one_day) AS one_day,
ANY_VALUE(gmv) AS gmv,
ANY_VALUE(penal_sum) AS penal_sum,
ANY_VALUE(crt_time) AS crt_time
FROM
daily_travel_order_statistics
GROUP BY
one_day,branch_company_id
) o
daily_vehicle_order_statistics
WHERE
1=1
<if test="companyId != null">
and branch_company_id =#{companyId}
and branch_company_id = #{companyId}
</if>
</select>
......
......@@ -79,33 +79,19 @@
v.start_company_id
</select>
<!-- 获取赔偿和延期JSON字符串-->
<!-- -->
<select id="monthOrderTotal" resultType="com.xxfc.platform.order.entity.OrderStatistics">
SELECT
IFNULL(sum(gmv),0) as totalGmv,
(IFNULL(sum(security_deposit),0)-IFNULL(sum(refund_security_deposit) ,0)) as totalSecurityDeposit,
IFNULL(sum(refund_security_deposit) ,0) as totalRefundSecurityDeposit,
IFNULL(sum(compensation) ,0) as totalCompensation,
IFNULL(sum(forfeit) ,0) as totalForfeit,
IFNULL(sum(penal_sum) ,0) as totalPenalSum,
IFNULL(sum(postpone) ,0) as totalPostpone
FROM
(
SELECT
ANY_VALUE(id) as id,
one_day,
branch_company_id,
ANY_VALUE(gmv) AS gmv,
ANY_VALUE(security_deposit) AS security_deposit,
ANY_VALUE(refund_security_deposit) AS refund_security_deposit,
ANY_VALUE(forfeit) AS forfeit,ANY_VALUE(penal_sum) AS penal_sum,
ANY_VALUE(postpone) AS postpone,ANY_VALUE(crt_time) AS crt_time,
ANY_VALUE(compensation) AS compensation
IFNULL( sum( gmv ), 0 ) AS totalGmv,
IFNULL( sum( security_deposit ), 0 ) AS totalSecurityDeposit,
IFNULL( sum( refund_security_deposit ), 0 ) AS totalRefundSecurityDeposit,
IFNULL( sum( forfeit ), 0 ) AS totalForfeit,
IFNULL( sum( compensation ), 0 ) AS totalCompensation,
IFNULL( sum( return_gmv ), 0 ) AS totalReturnGmv,
IFNULL( sum( default_money ), 0 ) AS totalDefaultMoney,
IFNULL( sum( total_expenditure ), 0 ) AS totalExpenditure
FROM
daily_vehicle_order_statistics
GROUP BY
one_day,branch_company_id
) a
WHERE
1=1
<if test="companyId != null">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxfc.platform.order.mapper.OrderAccountMapper">
<select id="getOrderAccountByOrderType" resultType="com.xxfc.platform.order.pojo.account.OrderAccountDTO">
SELECT
date(DATE_SUB(now(),interval #{day} day)) as oneDay,
a.*
<if test="type != null and type == 1">
, v.start_company_id as companyId
</if>
<if test="type != null and type == 2">
, t.start_company_id as companyId
</if>
FROM
order_account a
LEFT JOIN base_order b ON a.order_id = b.id
<if test="type != null and type==1">
LEFT JOIN order_rent_vehicle_detail v ON b.id = v.order_id
</if>
<if test="type != null and type==2">
LEFT JOIN order_tour_detail t ON b.id = t.order_id
</if>
WHERE
a.account_status=1
AND
b.type = #{type}
AND date( FROM_UNIXTIME( a.crt_time / 1000 ) ) = date( DATE_SUB( now( ), INTERVAL #{day} DAY ) )
</select>
</mapper>
\ No newline at end of file
......@@ -164,21 +164,21 @@ public class VehicleActiveService {
}
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1) { //已经出车
stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUsername());
stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUserPhone());
return stringBuilder.toString();
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1) { //已经出车
stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUsername());
stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUserPhone());
return stringBuilder.toString();
}
}
}
}
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
return stringBuilder.toString();
}
}
public void arrival(VehicleArrivalVo arrivalVo) {
Vehicle vehicle = vehicleMapper.selectByPrimaryKey(arrivalVo.getVehicleId());
......@@ -214,9 +214,6 @@ public class VehicleActiveService {
}
vehicle.setExpectDestinationBranchCompanyId(0);
vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 出车记录
VehicleDepartureLogVo departureLogVo = vehicleDepartureLogMapper.selectByBookRecordId(arrivalVo.getBookRecordId());
......@@ -229,12 +226,12 @@ public class VehicleActiveService {
boolean flag = true;
VehicleDepartureLog departureLog = departureLogVo.getVehicleDeparture(departureLogVo);
List<VehicleDepartureLog> list = vehicleDepartureLogMapper.selectByVehicle(arrivalVo.getVehicleId());
for(VehicleDepartureLog vehicleDepartureLogVo : list) {
if(vehicleDepartureLogVo.getState() != 1 && vehicleDepartureLogVo.getId() > departureLog.getId()) { //后面还有未收车的记录
for (VehicleDepartureLog vehicleDepartureLogVo : list) {
if (vehicleDepartureLogVo.getState() != 1 && vehicleDepartureLogVo.getId() > departureLog.getId()) { //后面还有未收车的记录
flag = false;
}
}
if(flag) { //如果此条记录后面还有未收车记录,就不修改车辆状态
if (flag) { //如果此条记录后面还有未收车记录,就不修改车辆状态
int result = vehicleMapper.updateStatus(arrivalVo.getVehicleId(), VehicleStatus.NORMAL.getCode());
// if (result == 0) {
// throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
......@@ -330,7 +327,7 @@ public class VehicleActiveService {
}
}
}
if(!(startDate.minusDays(1).compareTo(DateTime.now()) <= 0 && DateTime.now().compareTo(endDate) <= 0 && vehicleBookRecord.getStatus() == VehicleBookRecordStatus.APPROVE.getCode() && (list == null || list.size() <= 0))) {
if (!(startDate.minusDays(1).compareTo(DateTime.now()) <= 0 && DateTime.now().compareTo(endDate) <= 0 && vehicleBookRecord.getStatus() == VehicleBookRecordStatus.APPROVE.getCode() && (list == null || list.size() <= 0))) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getDesc(),
ResCode.VEHICLE_DEPARTURE_DATE_IS_NOT_ABLED.getCode());
}
......@@ -340,7 +337,6 @@ public class VehicleActiveService {
public void updateBookRecordStatus(VehicleBookRecord vehicleBookRecord, Integer type) {
if (vehicleBookRecord != null) {
if (type == 1) {
vehicleBookRecord.setActualStartDate(new Date());
......@@ -355,9 +351,9 @@ public class VehicleActiveService {
}
/**
* 车辆保养
*
* @param vehicleUpkeepVo
*/
@Transactional
......@@ -411,6 +407,7 @@ public class VehicleActiveService {
/**
* 保养结束
*
* @param vehicleUpkeepEndVo
*/
@Transactional
......
......@@ -475,6 +475,9 @@
<if test="numberPlate != null">
and v3.number_plate = #{numberPlate}
</if>
<if test="keywords != null and keywords != ''">
and (v3.number_plate like concat('%', #{keywords}, '%') or v3.code like concat('%', #{keywords}, '%'))
</if>
<if test="bookType != null">
and v1.book_type = #{bookType}
</if>
......
......@@ -383,6 +383,9 @@
<if test="numberPlate != null">
and v1.number_plate = #{numberPlate}
</if>
<if test="keywords != null and keywords != ''">
and (v1.number_plate like concat('%', #{keywords}, '%') or v1.code like concat('%', #{keywords}, '%'))
</if>
<if test="status != null">
and v1.status = #{status}
</if>
......
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