提交 682ad5bf authored 作者: 李瑞鑫's avatar 李瑞鑫

Merge branch 'v12.2_upgradeFunction_20240424'

...@@ -11,6 +11,7 @@ import com.clx.performance.vo.app.collect.AppCollectTruckVO; ...@@ -11,6 +11,7 @@ import com.clx.performance.vo.app.collect.AppCollectTruckVO;
import com.clx.performance.vo.feign.FreightEstimateVO; import com.clx.performance.vo.feign.FreightEstimateVO;
import com.clx.performance.vo.feign.OrderGoodsFeignVO; import com.clx.performance.vo.feign.OrderGoodsFeignVO;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountArrearsVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO; import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
...@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -115,4 +117,9 @@ public interface PerformanceFeign { ...@@ -115,4 +117,9 @@ public interface PerformanceFeign {
@GetMapping(value = {"clx-performance/feign/owner/loanAccount"}) @GetMapping(value = {"clx-performance/feign/owner/loanAccount"})
Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo); Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo);
@GetMapping(value = {"clx-performance/feign/owner/accountArrearsInfo"})
Result<OwnerAccountArrearsVO> accountArrearsInfo(@RequestParam(value = "userNo") Long userNo,
@RequestParam(value = "prepaidArrearsOrder") BigDecimal prepaidArrearsOrder,
@RequestParam(value = "marginArrearsOrder") BigDecimal marginArrearsOrder);
} }
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildCheckParam extends PositionParam {
@ApiModelProperty(value = "货单编号", example = "100000000")
@NotBlank(message = "货单编号不能为空")
private String orderGoodsNo;
@ApiModelProperty(value = "车辆id", example = "1")
@NotNull(message = "车辆id空")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "1")
@NotNull(message = "车牌号不能为空")
private String truckNo;
@ApiModelProperty(value = "司机用户编号", example = "1")
@NotNull(message = "司机用户编号空")
private Long driverUserNo;
@ApiModelProperty("纬度")
private BigDecimal latitude;
@ApiModelProperty("经度")
private BigDecimal longitude;
@ApiModelProperty("可卸车时间段开始")
private String unloadBeginTime;
@ApiModelProperty("可卸车时间段结束")
private String unloadEndTime;
@ApiModelProperty("可装车时间段开始")
private String loadBeginTime;
@ApiModelProperty("可装车时间段结束")
private String loadEndTime;
}
...@@ -205,5 +205,16 @@ public class OrderChildVO { ...@@ -205,5 +205,16 @@ public class OrderChildVO {
@MoneyOutConvert @MoneyOutConvert
private BigDecimal lossAmount; private BigDecimal lossAmount;
@ApiModelProperty("可卸车时间段开始")
private String unloadBeginTime;
@ApiModelProperty("可卸车时间段结束")
private String unloadEndTime;
@ApiModelProperty("可装车时间段开始")
private String loadBeginTime;
@ApiModelProperty("可装车时间段结束")
private String loadEndTime;
} }
\ No newline at end of file
...@@ -132,4 +132,16 @@ public class OrderGoodsVO { ...@@ -132,4 +132,16 @@ public class OrderGoodsVO {
@ApiModelProperty("用车方式 1:平台车辆配货 2:自有车辆配货") @ApiModelProperty("用车方式 1:平台车辆配货 2:自有车辆配货")
private Integer vehicleUsage; private Integer vehicleUsage;
@ApiModelProperty("可卸车时间段开始")
private String unloadBeginTime;
@ApiModelProperty("可卸车时间段结束")
private String unloadEndTime;
@ApiModelProperty("可装车时间段开始")
private String loadBeginTime;
@ApiModelProperty("可装车时间段结束")
private String loadEndTime;
} }
\ No newline at end of file
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
@Data
@Builder
public class OwnerAccountArrearsVO {
@ApiModelProperty("当前预付账户未支付订单金额 等于0,不欠费,负数欠多少")
private BigDecimal prepaidArrearsOrderSumMoney;
@ApiModelProperty("当前保证金账户未支付订单金额 等于0,不欠费,负数欠多少")
private BigDecimal marginArrearsOrderSumMoney;
@ApiModelProperty("货主用户编码")
private Long userNo;
}
...@@ -32,6 +32,13 @@ public class AppDriverOrderChildController { ...@@ -32,6 +32,13 @@ public class AppDriverOrderChildController {
private final OrderChildService orderChildService; private final OrderChildService orderChildService;
@ApiOperation(value = "接单判断", notes = "<br>By:胡宇帆")
@PostMapping("/getOrderChildCheck")
public Result<Integer> getOrderChildCheck(@RequestBody @Validated OrderChildCheckParam param) {
return Result.ok(orderChildService.getOrderChildCheck(param));
}
@ApiOperation(value = "接单", notes = "<br>By:艾庆国") @ApiOperation(value = "接单", notes = "<br>By:艾庆国")
@PostMapping("/saveOrderChild") @PostMapping("/saveOrderChild")
public Result<SaveOrderChildVO> saveOrderChild(@RequestBody @Validated OrderChildSaveParam param) { public Result<SaveOrderChildVO> saveOrderChild(@RequestBody @Validated OrderChildSaveParam param) {
......
...@@ -5,6 +5,7 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam; ...@@ -5,6 +5,7 @@ import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.service.OwnerAccountService; import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.OwnerAccountAllVO;
import com.clx.performance.vo.pc.OwnerAccountArrearsVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO; import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j; ...@@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/feign/owner") @RequestMapping("/feign/owner")
...@@ -50,4 +53,14 @@ public class OwnerAccountFeignController { ...@@ -50,4 +53,14 @@ public class OwnerAccountFeignController {
public Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo) { public Result<OwnerLoanAccountVO> loanAccount(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.loanAccount(userNo)); return Result.ok(ownerAccountService.loanAccount(userNo));
} }
@ApiOperation(value = "查询用户预付运费和保证金账户", notes = "<br>By:胡宇帆")
@GetMapping("/accountArrearsInfo")
public Result<OwnerAccountArrearsVO> accountArrearsInfo(@RequestParam(value = "userNo") Long userNo,
@RequestParam(value = "prepaidArrearsOrder") BigDecimal prepaidArrearsOrder,
@RequestParam(value = "marginArrearsOrder") BigDecimal marginArrearsOrder
) {
return Result.ok(ownerAccountService.accountArrearsInfo(userNo, prepaidArrearsOrder, marginArrearsOrder));
}
} }
...@@ -38,5 +38,91 @@ public class TruckLocationDTO { ...@@ -38,5 +38,91 @@ public class TruckLocationDTO {
} }
public String getTruckNo() {
return truckNo;
}
public void setTruckNo(String truckNo) {
this.truckNo = truckNo;
}
public BigDecimal getAngle() {
return angle;
}
public void setAngle(BigDecimal angle) {
this.angle = angle;
}
public BigDecimal getSpeed() {
return speed;
}
public void setSpeed(BigDecimal speed) {
this.speed = speed;
}
public BigDecimal[] getLocation() {
return location;
}
public void setLocation(BigDecimal[] location) {
this.location = location;
}
public String getGpsTime() {
return gpsTime;
}
public void setGpsTime(String gpsTime) {
this.gpsTime = gpsTime;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getModifiedTime() {
return modifiedTime;
}
public void setModifiedTime(String modifiedTime) {
this.modifiedTime = modifiedTime;
}
} }
...@@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
...@@ -62,6 +63,11 @@ public class OrderChildSyncTransportInvoiceExceptionJob { ...@@ -62,6 +63,11 @@ public class OrderChildSyncTransportInvoiceExceptionJob {
for (OrderChildSyncTransportInvoiceRecord record : recordList) { for (OrderChildSyncTransportInvoiceRecord record : recordList) {
log.info("orderChildSyncTransportInvoiceExceptionJob执行:{}", JSONUtil.parse(record)); log.info("orderChildSyncTransportInvoiceExceptionJob执行:{}", JSONUtil.parse(record));
if (record.getCreateTime().plusMinutes(10).isBefore(LocalDateTime.now())) {
log.info("当前记录运单号:{},生成不足10分钟,先不执行", record.getChildNo());
continue;
}
String data = transportFeignService.getRiskStatus(ThirdOrderChildRiskStatusParam.builder().childNo(record.getChildNo()).build()).getData(); String data = transportFeignService.getRiskStatus(ThirdOrderChildRiskStatusParam.builder().childNo(record.getChildNo()).build()).getData();
String decrypt = ThirdComponent.decrypt(data); String decrypt = ThirdComponent.decrypt(data);
Result result = JSONUtil.toBean(decrypt, Result.class); Result result = JSONUtil.toBean(decrypt, Result.class);
......
...@@ -94,4 +94,6 @@ public interface OrderChildService { ...@@ -94,4 +94,6 @@ public interface OrderChildService {
IPage<OwnerOrderChildVO> pageOwnerOrderChildList(PageOwnerOrderChildListParam param); IPage<OwnerOrderChildVO> pageOwnerOrderChildList(PageOwnerOrderChildListParam param);
OrderChildVO getOwnerOrderChildInfo(String childNo); OrderChildVO getOwnerOrderChildInfo(String childNo);
Integer getOrderChildCheck(OrderChildCheckParam param);
} }
...@@ -13,14 +13,12 @@ import com.clx.performance.param.pc.*; ...@@ -13,14 +13,12 @@ import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.owner.CreteAccountParam; import com.clx.performance.param.pc.owner.CreteAccountParam;
import com.clx.performance.param.pc.owner.FrozenAccountParam; import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.param.pc.owner.ThawAccountParam; import com.clx.performance.param.pc.owner.ThawAccountParam;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam; import com.clx.user.param.pc.owner.UpdateOwnerBindCardFeignParam;
import com.clx.user.vo.pc.owner.OwnerBindCardVO; import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -104,4 +102,6 @@ public interface OwnerAccountService { ...@@ -104,4 +102,6 @@ public interface OwnerAccountService {
void resetPassword(ResetPasswordParam param); void resetPassword(ResetPasswordParam param);
OwnerLoanAccountVO loanAccount(Long userNo); OwnerLoanAccountVO loanAccount(Long userNo);
OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder);
} }
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.enums.OrderEnum; import com.clx.order.enums.OrderEnum;
...@@ -7,6 +8,7 @@ import com.clx.order.enums.VehicleUsageEnum; ...@@ -7,6 +8,7 @@ import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO; import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.component.OrderChildLoanComponent; import com.clx.performance.component.OrderChildLoanComponent;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
...@@ -17,6 +19,7 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao; ...@@ -17,6 +19,7 @@ import com.clx.performance.dao.settle.SettlementOwnerDetailDao;
import com.clx.performance.dto.OrderChildExpectDTO; import com.clx.performance.dto.OrderChildExpectDTO;
import com.clx.performance.dto.gd.GdRouteDTO; import com.clx.performance.dto.gd.GdRouteDTO;
import com.clx.performance.dto.payment.WalletResidueCardDTO; import com.clx.performance.dto.payment.WalletResidueCardDTO;
import com.clx.performance.dto.zjxl.TruckLocationDTO;
import com.clx.performance.dto.zjxl.TruckTraceDTO; import com.clx.performance.dto.zjxl.TruckTraceDTO;
import com.clx.performance.enums.*; import com.clx.performance.enums.*;
import com.clx.performance.extranal.user.*; import com.clx.performance.extranal.user.*;
...@@ -70,6 +73,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -70,6 +73,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -1354,9 +1358,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1354,9 +1358,10 @@ public class OrderChildServiceImpl implements OrderChildService {
public OrderChildVO getOrderChildInfo(String childNo) { public OrderChildVO getOrderChildInfo(String childNo) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow( OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(
PerformanceResultEnum.ORDER_CHILD_NO_FOUND); PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderChild.getOrderNo());
if (!Objects.equals(orderChild.getDriverUserNo(), userNo) && if (!Objects.equals(orderChild.getDriverUserNo(), userNo) &&
!Objects.equals(orderChild.getTruckOwnUserNo(), userNo)) { !Objects.equals(orderChild.getTruckOwnUserNo(), userNo)) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
...@@ -1397,7 +1402,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1397,7 +1402,10 @@ public class OrderChildServiceImpl implements OrderChildService {
//亏吨扣款 //亏吨扣款
result.setLossAmount(calcLossAmount(result.getLossWeight(),orderChild.getLossPrice())); result.setLossAmount(calcLossAmount(result.getLossWeight(),orderChild.getLossPrice()));
result.setUnloadBeginTime(orderInfoFeign.getUnloadBeginTime());
result.setUnloadEndTime(orderInfoFeign.getUnloadEndTime());
result.setLoadBeginTime(orderInfoFeign.getLoadBeginTime());
result.setLoadEndTime(orderInfoFeign.getLoadEndTime());
//查询结算信息 //查询结算信息
Optional<SettlementOwnerDetail> optional = settlementOwnerDetailDao.getByChildNo(childNo); Optional<SettlementOwnerDetail> optional = settlementOwnerDetailDao.getByChildNo(childNo);
...@@ -1462,6 +1470,70 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1462,6 +1470,70 @@ public class OrderChildServiceImpl implements OrderChildService {
return result; return result;
} }
@Override
public Integer getOrderChildCheck(OrderChildCheckParam param) {
try {
return check(param);
} catch (Exception e) {
log.info("接单判断弹窗错误,错误信息:{}", e.getMessage());
return 0;
}
}
private int check(OrderChildCheckParam param) {
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).get();
BigDecimal sendLatitude = orderGoods.getSendLatitude();
BigDecimal sendLongitude = orderGoods.getSendLongitude();
BigDecimal longitude = param.getLongitude();
BigDecimal latitude = param.getLatitude();
TruckLocationDTO truckLocationDTO = null;
try {
truckLocationDTO = zjxlGpsService.getTruckLastLocation(param.getTruckNo());
} catch (Exception e) {
log.info("中交兴路获取失败:{}", e.getMessage());
}
//如果中交兴路获取到位置信息,则使用中交,否则用APP传的位置信息
if (truckLocationDTO != null) {
BigDecimal[] location = truckLocationDTO.getLocation();
longitude = location[0];
latitude = location[1];
log.info("当前中交兴路获取司机车牌:{},相关位置信息:{}", param.getTruckNo(), JSONUtil.parse(truckLocationDTO));
} else {
log.info("中交兴路获取失败,通过高德获取,相关参数:{}", JSONUtil.parse(param));
}
List<GdRouteDTO> route = gdService.getRoute(longitude, latitude, sendLongitude, sendLatitude);
if (CollectionUtils.isNotEmpty(route)) {
GdRouteDTO gdRouteDTO = route.get(0);
Integer duration = gdRouteDTO.getDuration();
//预计到达时间
LocalDateTime localDateTime = LocalDateTime.now().plusSeconds(duration);
LocalDate localDate = localDateTime.toLocalDate();
String begin = localDate + " " + param.getLoadBeginTime();
String end = localDate + " " + param.getLoadEndTime();
log.info("预计到达时间:{},可以装货时间:{},可以卸货时间:{}", localDateTime, begin, end);
//可以装货时间
LocalDateTime beginLocalDateTime = DateUtils.parseDateTime(begin).get();
LocalDateTime endLocalDateTime = DateUtils.parseDateTime(end).get();
if (localDateTime.isAfter(beginLocalDateTime) && localDateTime.isBefore(endLocalDateTime)) {
log.info("不用弹");
return 0;
} else {
log.info("需要弹");
return 1;
}
}
return 0;
}
//计算亏吨吨数 //计算亏吨吨数
private BigDecimal calcLossWeight(OrderChild orderChild){ private BigDecimal calcLossWeight(OrderChild orderChild){
if (Objects.nonNull(orderChild.getUnloadNet())){ if (Objects.nonNull(orderChild.getUnloadNet())){
......
...@@ -137,6 +137,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -137,6 +137,10 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo); FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
orderGoodsVO.setReveiveAddressAll(orderInfoFeign.getReveiveAddressAll()); orderGoodsVO.setReveiveAddressAll(orderInfoFeign.getReveiveAddressAll());
orderGoodsVO.setSendAddressAll(orderInfoFeign.getSendAddressAll()); orderGoodsVO.setSendAddressAll(orderInfoFeign.getSendAddressAll());
orderGoodsVO.setUnloadBeginTime(orderInfoFeign.getUnloadBeginTime());
orderGoodsVO.setUnloadEndTime(orderInfoFeign.getUnloadEndTime());
orderGoodsVO.setLoadBeginTime(orderInfoFeign.getLoadBeginTime());
orderGoodsVO.setLoadEndTime(orderInfoFeign.getLoadEndTime());
orderGoodsVO.setResidueTransportWeight(BigDecimal.ZERO.compareTo(orderGoodsVO.getResidueTransportWeight()) > 0 ? BigDecimal.ZERO : orderGoodsVO.getResidueTransportWeight()); orderGoodsVO.setResidueTransportWeight(BigDecimal.ZERO.compareTo(orderGoodsVO.getResidueTransportWeight()) > 0 ? BigDecimal.ZERO : orderGoodsVO.getResidueTransportWeight());
return orderGoodsVO; return orderGoodsVO;
} }
...@@ -271,17 +275,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -271,17 +275,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
List<OrderGoods> orderGoodsList = null; List<OrderGoods> orderGoodsList = null;
BigDecimal orderGoodsResidueWeight = BigDecimal.ZERO; BigDecimal orderGoodsResidueWeight = BigDecimal.ZERO;
String residueWeight = orderInfoFeign.getResidueWeight(); String residueWeight = orderInfoFeign.getResidueWeight();
BigDecimal ans = new BigDecimal(residueWeight);
switch (optionType) { switch (optionType) {
case "1": case "1":
return new BigDecimal(residueWeight); return ans;
case "2": case "2":
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNoAndStatus(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNoAndStatus(orderNo);
if (CollectionUtil.isNotEmpty(orderGoodsList)) { if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add); orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
} }
return orderGoodsResidueWeight.add(new BigDecimal(residueWeight)); ans = orderGoodsResidueWeight.add(new BigDecimal(residueWeight));
if (ans.compareTo(new BigDecimal("35")) <= 0) {
return BigDecimal.ZERO;
} else {
return ans.subtract(new BigDecimal("35"));
}
case "3": case "3":
List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); List<OrderChild> orderChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
BigDecimal childResidueWeight = BigDecimal.ZERO; BigDecimal childResidueWeight = BigDecimal.ZERO;
...@@ -293,12 +301,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea ...@@ -293,12 +301,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
if (CollectionUtil.isNotEmpty(orderGoodsList)) { if (CollectionUtil.isNotEmpty(orderGoodsList)) {
orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add); orderGoodsResidueWeight = orderGoodsList.stream().map(OrderGoods::getResidueTransportWeight).reduce(BigDecimal.ZERO, BigDecimal::add);
} }
return new BigDecimal(residueWeight).add(orderGoodsResidueWeight).add(childResidueWeight); ans = ans.add(orderGoodsResidueWeight).add(childResidueWeight);
if (ans.compareTo(new BigDecimal("35")) <= 0) {
return BigDecimal.ZERO;
} else {
return ans.subtract(new BigDecimal("35"));
}
default:throw new RuntimeException("参数错误"); default:throw new RuntimeException("参数错误");
} }
} }
......
...@@ -43,10 +43,7 @@ import com.clx.performance.utils.excel.ExcelData; ...@@ -43,10 +43,7 @@ import com.clx.performance.utils.excel.ExcelData;
import com.clx.performance.utils.excel.ExcelField; import com.clx.performance.utils.excel.ExcelField;
import com.clx.performance.utils.excel.ExcelSheet; import com.clx.performance.utils.excel.ExcelSheet;
import com.clx.performance.utils.excel.ExcelUtil; import com.clx.performance.utils.excel.ExcelUtil;
import com.clx.performance.vo.pc.OwnerAccountAllVO; import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.pc.OwnerAccountRunningWaterRecordVO;
import com.clx.performance.vo.pc.OwnerAccountVO;
import com.clx.performance.vo.pc.OwnerLoanAccountVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformAccountConfigVO; import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformAccountConfigVO;
import com.clx.user.enums.owner.FreezeSettingEnum; import com.clx.user.enums.owner.FreezeSettingEnum;
import com.clx.user.feign.OwnerFeign; import com.clx.user.feign.OwnerFeign;
...@@ -1257,4 +1254,34 @@ public class OwnerAccountServiceImpl implements OwnerAccountService { ...@@ -1257,4 +1254,34 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
return ownerLoanAccountStruct.convert(ownerLoanAccount); return ownerLoanAccountStruct.convert(ownerLoanAccount);
} }
@Override
public OwnerAccountArrearsVO accountArrearsInfo(Long userNo, BigDecimal prepaidArrearsOrder, BigDecimal marginArrearsOrder) {
List<OwnerAccount> accountList = ownerAccountDao.listByField(OwnerAccount::getOwnerUserNo, userNo);
OwnerAccountArrearsVO build = OwnerAccountArrearsVO.builder().build();
//查询保证金和预付运费欠多少金额
for (OwnerAccount ownerAccount : accountList) {
if (ownerAccount.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.MARGIN_ACCOUNT.getCode())) {
BigDecimal subtract = ownerAccount.getUsableBalance().subtract(marginArrearsOrder);
if (subtract.compareTo(BigDecimal.ZERO) >= 0) {
subtract = BigDecimal.ZERO;
}
build.setMarginArrearsOrderSumMoney(subtract);
log.info("当前用户:{},marginArrearsOrder:{}, 可用余额:{},欠款金额:{}", userNo, marginArrearsOrder, ownerAccount.getUsableBalance(), subtract);
}
if (ownerAccount.getAccountType().equals(OwnerAccountEnum.AccountTypeStatus.PREPAID_FREIGHT_ACCOUNT.getCode())) {
BigDecimal subtract = ownerAccount.getUsableBalance().subtract(prepaidArrearsOrder);
if (subtract.compareTo(BigDecimal.ZERO) >= 0) {
subtract = BigDecimal.ZERO;
}
build.setPrepaidArrearsOrderSumMoney(subtract);
log.info("当前用户:{},prepaidArrearsOrder:{}, 可用余额:{},欠款金额:{}", userNo, prepaidArrearsOrder, ownerAccount.getUsableBalance(), subtract);
}
}
return build;
}
} }
package com.clx.performance.utils.zjxl; package com.clx.performance.utils.zjxl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.clx.performance.constant.GPSConstants; import com.clx.performance.constant.GPSConstants;
import com.clx.performance.dto.zjxl.*; import com.clx.performance.dto.zjxl.*;
...@@ -96,7 +97,7 @@ public class ZjxlGpsService { ...@@ -96,7 +97,7 @@ public class ZjxlGpsService {
if (lastLocation == null){return null;} if (lastLocation == null){return null;}
TruckLocationDTO location = new TruckLocationDTO(lastLocation.getDrc(), lastLocation.getSpd(), lastLocation.getLon(), lastLocation.getLat(), lastLocation.getUtc(), TruckLocationDTO location = new TruckLocationDTO(lastLocation.getDrc(), lastLocation.getSpd(), lastLocation.getLon(), lastLocation.getLat(), lastLocation.getUtc(),
lastLocation.getProvince(), lastLocation.getCity(), lastLocation.getCountry(), lastLocation.getAdr()); lastLocation.getProvince(), lastLocation.getCity(), lastLocation.getCountry(), lastLocation.getAdr());
log.info("获取车辆位置成功, truckNo:{}", truckNo); log.info("获取车辆位置成功, truckNo:{}, location:{}", truckNo, JSONUtil.parse(location));
return location; return location;
} }
...@@ -168,7 +169,6 @@ public class ZjxlGpsService { ...@@ -168,7 +169,6 @@ public class ZjxlGpsService {
* 统一post请求 * 统一post请求
*/ */
public ZjxlResultDTO postHttps(String api, String token, Map<String, String> map){ public ZjxlResultDTO postHttps(String api, String token, Map<String, String> map){
if ("dev".equals(active) if ("dev".equals(active)
|| "test".equals(active) || "test".equals(active)
|| "release".equals(active)) { || "release".equals(active)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论