提交 1d32573e authored 作者: wejack639's avatar wejack639

feature(运单):运单详情接口和货单详情接口增加货源地信息

......@@ -43,10 +43,10 @@ public enum PerformanceProgressEnum {
TODAY_EXPECT_COMPLETE(1, "今日预计完成吨数"),
TRADE_REQUIRE_ARRIVE_STATION_TIME(2, "交易要求到站时间"),
TRANSPORT_EXPECT_ARRIVE_STATION_TIME(3, "调度备注/跟进措施"),
TRANSPORT_EXPECT_ARRIVE_STATION_TIME(3, "物流预计到站时间"),
ABNORMAL_REMARK(4, "异常备注"),
PERFORMANCE_ABNORMAL_REASON(5, "履约异常原因"),
DISPATCH_FOLLOW(6, "物流预计到站时间"),
DISPATCH_FOLLOW(6, "调度备注/跟进措施"),
;
private final Integer code;
......
......@@ -230,4 +230,21 @@ public class OrderChildVO {
@ApiModelProperty("接单保证金 平台服务费费率 弹窗和文案显示 0 不显示 1 显示")
private Integer goodsOrderDetailShow = 0;
/* 20240730 增加货源地信息 */
@ApiModelProperty(value = "货源地现场联系人")
private String sendContact;
@ApiModelProperty(value = "货源地联系人手机号")
private String sendContactPhone;
@ApiModelProperty(value = "发货-是否需要系统排队 0 否 1 是")
private Integer sendWaitSystem;
@ApiModelProperty(value = "发货-排队系统名称")
private String sendWaitSystemName;
@ApiModelProperty(value = "发货-排队系统形式 1:小程序 2:app")
private Integer sendWaitMode;
}
\ No newline at end of file
......@@ -170,4 +170,20 @@ public class OrderGoodsVO {
@ApiModelProperty("接单保证金 平台服务费费率 弹窗和文案显示 0 不显示 1 显示")
private Integer goodsOrderDetailShow = 0;
/* 20240730 增加货源地信息 */
@ApiModelProperty(value = "货源地现场联系人")
private String sendContact;
@ApiModelProperty(value = "货源地联系人手机号")
private String sendContactPhone;
@ApiModelProperty(value = "发货-是否需要系统排队 0 否 1 是")
private Integer sendWaitSystem;
@ApiModelProperty(value = "发货-排队系统名称")
private String sendWaitSystemName;
@ApiModelProperty(value = "发货-排队系统形式 1:小程序 2:app")
private Integer sendWaitMode;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.clx.performance.enums.OrderEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
......@@ -81,6 +82,7 @@ public class PerformanceProgressVO{
}
@ApiModelProperty("司机运费")
@MoneyOutConvert
private BigDecimal driverFreightPrice;
......@@ -97,6 +99,9 @@ public class PerformanceProgressVO{
@ApiModelProperty("接单车数")
private Integer orderedTruckNum;
@ApiModelProperty("接单吨数")
private BigDecimal orderedWeight;
@ApiModelProperty("到达货源地车数")
private Integer arriveSendTruckNum;
......@@ -171,6 +176,7 @@ public class PerformanceProgressVO{
@ApiModelProperty("测算运费")
@MoneyOutConvert
private BigDecimal predictionFreightPrice;
......
package com.clx.performance.constant;
import java.math.BigDecimal;
/**
* @ClassName BusinessConstants
* @Description
* @Author kavin
* @Date 2024/7/22 15:26
* @Version 1.0
*/
public class BusinessConstants {
//承运订单需要减去的吨数
public static final BigDecimal ORDER_SUB_WEIGHT = new BigDecimal("35");
}
......@@ -121,6 +121,7 @@ public class CarrierOrderChildController {
@ApiOperation(value = "履约进度表-历史线路拉运量", notes = "<br>By:l刘海泉")
@GetMapping("/getHistoryLineTransportVolume")
@UnitCovert(param = false)
public Result<List<HistoryLineTranVolumeChartVO>> getHistoryLineTransportVolume(@NotBlank(message = "订单编号不能为空") String orderNo) {
return Result.ok(orderChildService.getHistoryLineTransportVolume(orderNo));
}
......
......@@ -19,4 +19,6 @@ public interface PerformanceProgressDao extends BaseDao<PerformanceProgressMappe
void updateRecordOrder(Long seq,boolean isUp);
long getMaxSeq();
void updatePerformanceProgress(PerformanceProgress update);
}
......@@ -683,6 +683,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public List<OrderChild> listCompleteByOrderNos(List<String> orderNoList) {
return list(lQrWrapper()
.in(OrderChild :: getOrderNo,orderNoList)
.ge(OrderChild :: getStatus,OrderChildEnum.Status.LOAD.getCode())
.le(OrderChild :: getStatus,OrderChildEnum.Status.COMPLETE.getCode())
);
}
......
......@@ -47,4 +47,17 @@ public class PerformanceProgressDaoImpl extends BaseDaoImpl<PerformanceProgressM
LambdaQueryWrapper<PerformanceProgress> query = new LambdaQueryWrapper<>();
return baseMapper.selectCount(query);
}
@Override
public void updatePerformanceProgress(PerformanceProgress update) {
LambdaUpdateWrapper<PerformanceProgress> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(PerformanceProgress :: getId,update.getId());
updateWrapper.set(PerformanceProgress :: getTodayExpectComplete,update.getTodayExpectComplete());
updateWrapper.set(PerformanceProgress :: getTransportExpectArriveStationTime,update.getTransportExpectArriveStationTime());
updateWrapper.set(PerformanceProgress :: getTradeRequireArriveStationTime,update.getTradeRequireArriveStationTime());
updateWrapper.set(PerformanceProgress :: getAbnormalRemark,update.getAbnormalRemark());
updateWrapper.set(PerformanceProgress :: getPerformanceAbnormalReason,update.getPerformanceAbnormalReason());
updateWrapper.set(PerformanceProgress :: getDispatchFollow,update.getDispatchFollow());
baseMapper.update(null,updateWrapper);
}
}
......@@ -11,5 +11,8 @@ public interface AddressService {
Optional<SystemAddressVO> getSystemAddress(Integer addressId);
String generateAddressDetail(String ... args);
}
......@@ -8,6 +8,7 @@ import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@Service
......@@ -29,4 +30,18 @@ public class AddressServiceImpl implements AddressService {
.filter(Result::succeed)
.map(Result::getData);
}
@Override
public String generateAddressDetail(String ... args) {
StringBuilder sb = new StringBuilder();
String detail = args[args.length-1];
for (String arg : args) {
if(StringUtils.isNotBlank(arg) && !detail.contains(arg)){
sb.append(arg);
}
}
sb.append(detail);
return sb.toString();
}
}
......@@ -131,7 +131,7 @@ public class OrderGoodsDtsListener {
//货单状态发生变化(从已挂单变成挂单中)
(
(Objects.equals(before.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.CREATED.getCode()) &&
Objects.equals(before.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.PAYING.getCode()))
Objects.equals(after.getOrderGoodsStatus(),OrderGoodsStatusEnum.Status.PAYING.getCode()))
|| //挂单中之后的状态的挂单运费发生变化
(after.getOrderGoodsStatus() >= OrderGoodsStatusEnum.Status.PAYING.getCode() &&
!Objects.equals(before.getPendingOrderFreight(),after.getPendingOrderFreight()))
......
......@@ -96,7 +96,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@Param("receiveAddressId") Integer receiveAddressId);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "indexOrderGoodsListSearch")
IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(@Param("page")Page<OrderGoodsAPPVO> page, @Param("param")AppGoodsOrderSearchParam param);
IPage<OrderGoodsAPPVO> indexOrderGoodsListSearch(@Param("page")Page<OrderGoodsAPPVO> page, @Param("param") AppGoodsOrderSearchParam param);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "queryProcessFleetOpenTruckList")
......
......@@ -101,6 +101,11 @@ public class PerformanceProgress implements HasKey<Integer> {
@ApiModelProperty("接单车数")
private Integer orderedTruckNum;
@TableField("ordered_weight")
@ApiModelProperty("接单吨数")
private BigDecimal orderedWeight;
@TableField("arrive_send_truck_num")
@ApiModelProperty("到达货源地车数")
private Integer arriveSendTruckNum;
......@@ -117,14 +122,6 @@ public class PerformanceProgress implements HasKey<Integer> {
@ApiModelProperty("在途车数")
private Integer onTheWayTruckNum;
@TableField("ordered_rate")
@ApiModelProperty("接单率")
private BigDecimal orderedRate;
@TableField("task_complete_ratio")
@ApiModelProperty("任务完成率")
private BigDecimal taskCompleteRatio;
@TableField("sum_load_weight")
@ApiModelProperty("矿发吨数")
private BigDecimal sumLoadWeight;
......
......@@ -9,6 +9,7 @@ import com.clx.order.enums.ResultEnum;
import com.clx.order.enums.*;
import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderDetailVO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.pc.carrier.InvoicingCompanyVO;
......@@ -32,7 +33,10 @@ import com.clx.performance.enums.*;
import com.clx.performance.enums.settle.SettlementWayEnum;
import com.clx.performance.extranal.order.InvoicingCompanyService;
import com.clx.performance.extranal.order.QuotationService;
import com.clx.performance.extranal.user.*;
import com.clx.performance.extranal.user.AddressService;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OrderService;
import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.feign.FeignPaymentService;
import com.clx.performance.model.*;
import com.clx.performance.model.breakcontract.BreakContractDriverRecord;
......@@ -60,8 +64,6 @@ import com.clx.performance.utils.zjxl.ZjxlGpsService;
import com.clx.performance.vo.app.*;
import com.clx.performance.vo.app.owner.OwnerOrderChildVO;
import com.clx.performance.vo.pc.*;
import com.clx.performance.vo.pc.breakcontract.carrier.PageCarrierBreakContractSettlementDriverVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierPagePlatformServiceFeeConfigVO;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.clx.user.feign.DocumentFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
......@@ -88,8 +90,8 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.AmqpTemplate;
......@@ -1724,6 +1726,18 @@ public class OrderChildServiceImpl implements OrderChildService {
}
//查询进行中的运单车辆是否开启了中交兴路
result.setNotOpenZJXLMsg(isOpenZJXL(orderChild.getStatus(),orderChild.getTruckNo()));
// 设置货源地信息
Result<FeignOrderDetailVO> orderDetailFeignResult = orderFeign.getOrderDetail(orderChild.getOrderNo());
if (orderDetailFeignResult != null && orderDetailFeignResult.getData() != null) {
FeignOrderDetailVO orderDetailFeign = orderDetailFeignResult.getData();
//货源地信息
result.setSendContact(orderDetailFeign.getSendContact());
result.setSendContactPhone(orderDetailFeign.getSendContactPhone());
result.setSendWaitSystem(orderDetailFeign.getSendWaitSystem());
result.setSendWaitSystemName(orderDetailFeign.getSendWaitSystemName());
result.setSendWaitMode(orderDetailFeign.getSendWaitMode());
}
return result;
}
......
......@@ -11,6 +11,7 @@ import com.clx.order.enums.VehicleUsageEnum;
import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.OrderCancelReasonParam;
import com.clx.order.param.feign.RollbackOrderWeightParam;
import com.clx.order.vo.feign.FeignOrderDetailVO;
import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.pc.owner.OwnerQuotationDetailVO;
import com.clx.performance.component.GoodsOrderTruckRecordComponent;
......@@ -177,7 +178,16 @@ public class OrderGoodsServiceImpl implements OrderGoodsService, InitializingBea
InvoicingCompanyEnum.TaxType.TAX_EXCLUDED.getCode())) {
orderGoodsVO.setGoodsOrderDetailShow(1);
}
Result<FeignOrderDetailVO> orderDetailFeignResult = orderFeign.getOrderDetail(orderNo);
if (orderDetailFeignResult != null && orderDetailFeignResult.getData() != null) {
FeignOrderDetailVO orderDetailFeign = orderDetailFeignResult.getData();
//货源地信息
orderGoodsVO.setSendContact(orderDetailFeign.getSendContact());
orderGoodsVO.setSendContactPhone(orderDetailFeign.getSendContactPhone());
orderGoodsVO.setSendWaitSystem(orderDetailFeign.getSendWaitSystem());
orderGoodsVO.setSendWaitSystemName(orderDetailFeign.getSendWaitSystemName());
orderGoodsVO.setSendWaitMode(orderDetailFeign.getSendWaitMode());
}
return orderGoodsVO;
}
......
......@@ -6,6 +6,8 @@ import com.clx.performance.service.PerformanceProgressLogService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author kavin
* Date 2024-07-12
......@@ -20,7 +22,7 @@ public class PerformanceProgressLogServiceImpl implements PerformanceProgressLo
PerformanceProgressLog log = new PerformanceProgressLog();
log.setOrderNo(orderNo);
log.setOperateType(logType.getCode());
log.setOperateContent(logType.getName() + ":" + content);
log.setOperateContent(logType.getName() + ":" + (Objects.isNull(content)?"-":content));
log.setCreateBy(userNo);
log.setCreateName(userName);
return log;
......
......@@ -7,6 +7,7 @@ import com.clx.open.sdk.callback.message.OrderInfoMessage;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.order.vo.feign.SystemAddressVO;
import com.clx.performance.constant.BusinessConstants;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.dao.PerformanceProgressDao;
......@@ -32,6 +33,7 @@ import com.clx.performance.utils.gd.GdService;
import com.clx.performance.vo.pc.PerformanceProgressDetailVO;
import com.clx.performance.vo.pc.PerformanceProgressOperationLogVO;
import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.google.common.base.Joiner;
import com.msl.common.base.Optional;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils;
......@@ -123,6 +125,25 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
List<PerformanceProgressVO> records = performanceProgressStruct.convertList(page.getRecords());
records.forEach(item->{
if(StringUtils.isNotBlank(item.getSeniorLogisticsManagerName())){
item.setSeniorLogisticsManagerName(Joiner.on(",")
.join(JSON.parseArray(item.getSeniorLogisticsManagerName())));
}
if(Objects.nonNull(item.getPendingWeight()) && Objects.nonNull(item.getOrderedWeight())){
item.setOrderedRate(calcOrderedRate(item.getOrderedWeight(),item.getPendingWeight()));
}
if(Objects.nonNull(item.getTaskWeight()) && Objects.nonNull(item.getSumUnloadWeight())){
//任务完成率 = 到站量 / 任务量+35
BigDecimal taskCompleteRatio = item.getSumUnloadWeight()
.divide(item.getTaskWeight().add(BusinessConstants.ORDER_SUB_WEIGHT),
3, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
item.setTaskCompleteRatio(taskCompleteRatio);
}
}
);
returnPage.setPages(page.getPages());
returnPage.setTotal(page.getTotal());
returnPage.setRecords(records);
......@@ -193,37 +214,48 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
public void updatePerformanceProgress(UpdatePerformanceProgressParam param, Long userNo, String userName) {
PerformanceProgress item = performanceProgressDao.getEntityByKey(param.getId()).
orElseThrow(ResultEnum.DATA_NOT_FIND);
PerformanceProgress update = new PerformanceProgress();
update.setId(param.getId());
List<PerformanceProgressLog> logs = new ArrayList<>();
boolean change = false;
BigDecimal todayExpectComplete = Objects.nonNull(item.getTodayExpectComplete())
?item.getTodayExpectComplete():BigDecimal.ZERO;
if(Objects.nonNull(param.getTodayExpectComplete())
&& todayExpectComplete.compareTo(param.getTodayExpectComplete()) != 0){
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.TODAY_EXPECT_COMPLETE,
param.getTodayExpectComplete(),userNo,userName);
update.setTodayExpectComplete(param.getTodayExpectComplete());
logs.add(log);
change = true;
if(Objects.nonNull(param.getTodayExpectComplete())){
if(param.getTodayExpectComplete().compareTo(todayExpectComplete) != 0){
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.TODAY_EXPECT_COMPLETE,
param.getTodayExpectComplete(),userNo,userName);
logs.add(log);
change = true;
}
}else{
//今日预计完成吨数从有变成无
if(todayExpectComplete.compareTo(BigDecimal.ZERO) != 0){
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.TODAY_EXPECT_COMPLETE,
"-",userNo,userName);
logs.add(log);
change = true;
}
}
if(!StringUtils.equals(item.getTradeRequireArriveStationTime(),param.getTradeRequireArriveStationTime())){
String tradeRequireArriveStationTime = StringUtils.isBlank(param.getTradeRequireArriveStationTime())
?null:param.getTradeRequireArriveStationTime();
if(!StringUtils.equals(item.getTradeRequireArriveStationTime(),tradeRequireArriveStationTime)){
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.TRADE_REQUIRE_ARRIVE_STATION_TIME,
param.getTradeRequireArriveStationTime(),userNo,userName);
update.setTradeRequireArriveStationTime(param.getTradeRequireArriveStationTime());
logs.add(log);
change = true;
}
if(!StringUtils.equals(item.getTransportExpectArriveStationTime(),param.getTransportExpectArriveStationTime())){
String transportExpectArriveStationTime = StringUtils.isBlank(param.getTransportExpectArriveStationTime())
?null:param.getTransportExpectArriveStationTime();
if(!StringUtils.equals(item.getTransportExpectArriveStationTime(),transportExpectArriveStationTime)){
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.TRADE_REQUIRE_ARRIVE_STATION_TIME,
PerformanceProgressEnum.LogType.TRANSPORT_EXPECT_ARRIVE_STATION_TIME,
param.getTransportExpectArriveStationTime(),userNo,userName);
update.setTransportExpectArriveStationTime(param.getTransportExpectArriveStationTime());
logs.add(log);
change = true;
}
......@@ -232,7 +264,6 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.ABNORMAL_REMARK,
param.getAbnormalRemark(),userNo,userName);
update.setAbnormalRemark(param.getAbnormalRemark());
logs.add(log);
change = true;
}
......@@ -240,7 +271,6 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.PERFORMANCE_ABNORMAL_REASON,
param.getPerformanceAbnormalReason(),userNo,userName);
update.setPerformanceAbnormalReason(param.getPerformanceAbnormalReason());
logs.add(log);
change = true;
}
......@@ -248,17 +278,18 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
PerformanceProgressLog log = performanceProgressLogService.generateLog(item.getOrderNo(),
PerformanceProgressEnum.LogType.DISPATCH_FOLLOW,
param.getDispatchFollow(),userNo,userName);
update.setDispatchFollow(param.getDispatchFollow());
logs.add(log);
change = true;
}
PerformanceProgress update = performanceProgressStruct.convertParam(param);
performanceProgressDao.updatePerformanceProgress(update);
if(change){
performanceProgressDao.updateEntityByKey(update);
performanceProgressLogDao.saveBatchList(logs);
}
}
@Override
public PerformanceProgressDetailVO getPerformanceProgressDetail(Integer id) {
PerformanceProgress item = performanceProgressDao.getEntityByKey(id).orElseThrow(ResultEnum.DATA_NOT_FIND);
......@@ -279,7 +310,7 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
performanceProgressDao.deleteByField(PerformanceProgress::getOrderNo,data.getOrderNo());
}
Optional<PerformanceProgress> optional = performanceProgressDao.getOneByField(PerformanceProgress::getOrderNo,
Optional<PerformanceProgress> performanceProgressOptional = performanceProgressDao.getOneByField(PerformanceProgress::getOrderNo,
data.getOrderNo());
PerformanceProgress item = new PerformanceProgress();
......@@ -290,23 +321,17 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
item.setGoodsNameId(data.getGoodsNameId());
item.setGoodsName(data.getGoodsName());
item.setSendOverStandard(data.getOverWeight());
item.setTaskWeight(data.getTransportWeight().subtract(new BigDecimal(35)));
item.setTaskWeight(data.getTransportWeight().subtract(BusinessConstants.ORDER_SUB_WEIGHT));
item.setPendingWeight(data.getTransportWeight().subtract(data.getResidueWeight()));
item.setTransportTimeSlot(DateUtils.formatDateTime(data.getTransportBeginTime()).get() + "至" +
DateUtils.formatDateTime(data.getTransportEndTime()).get());
if(Objects.equals(data.getOrderStatus(),OrderEnum.Status.COMPLETED.getCode()) ||
Objects.equals(data.getOrderStatus(),OrderEnum.Status.SUCCESS.getCode())
){
//TODO 计算测算运费
}
if(optional.isPresent()){
item.setId(optional.get().getId());
if(performanceProgressOptional.isPresent()){
item.setId(performanceProgressOptional.get().getId());
if(Objects.nonNull(data.getSendSystemAddressId()) &&
!Objects.equals(optional.get().getSendSystemAddressId(),data.getSendSystemAddressId())){
!Objects.equals(performanceProgressOptional.get().getSendSystemAddressId(),data.getSendSystemAddressId())){
item.setSendSystemAddressId(data.getSendSystemAddressId());
item.setSendSystemAddressShorter(getSystemAddressShorter(data.getSendSystemAddressId()));
}
......@@ -319,7 +344,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
Optional<FeignAddressVO> sendAndReceiveAddress = addressService.getSendAndReceiveAddress(
data.getSendAddressId(), data.getReveiveAddressId());
if (!sendAndReceiveAddress.isPresent()) {
if (Objects.isNull(sendAndReceiveAddress.get().getSendAddress()) ||
Objects.isNull(sendAndReceiveAddress.get().getReceiveAddress())) {
log.warn("通过发货地址Id:{},收货地址Id:{} 查询对应的地址信息结果:{}",
data.getSendAddressId(),data.getReveiveAddressId(),sendAndReceiveAddress);
throw new ServiceSystemException(ResultEnum.DATA_ERROR,"履约进度表订单对应的收发货地址信息为空");
......@@ -348,8 +374,8 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
}
item.setSendAddressId(data.getSendAddressId());
item.setSendAddressShorter(data.getSendAddressShorter());
item.setSendAddress(sendAddress.getProvince()+sendAddress.getCity()+sendAddress.getCounty()
+ sendAddress.getAddress());
item.setSendAddress(addressService.generateAddressDetail(sendAddress.getProvince(),
sendAddress.getCity(),sendAddress.getCounty(),sendAddress.getAddress()));
performanceProgressDao.saveEntity(item);
}
}
......@@ -414,11 +440,10 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
int loadTruckNum = 0; //装车车数
int unloadTruckNum = 0; //卸车车数
int onTheWayTruckNum ; // 在途车数
BigDecimal orderedRate; //接单率
BigDecimal taskCompleteRatio ; //任务完成率
BigDecimal sumLoadWeight = BigDecimal.ZERO; //矿发吨数
BigDecimal sumUnloadWeight = BigDecimal.ZERO; //到站吨数
BigDecimal sumOnTheWayWeight ; //在途吨数
BigDecimal sumOnTheWayWeight = BigDecimal.ZERO; //在途吨数
BigDecimal orderedWeight = BigDecimal.ZERO; //接单吨数
......@@ -436,22 +461,21 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
if(child.getStatus() >= OrderChildEnum.Status.UNLOAD.getCode()){
unloadTruckNum = unloadTruckNum + 1;
sumUnloadWeight = sumUnloadWeight.add(child.getWeight());
}
if(Objects.equals(child.getStatus(), OrderChildEnum.Status.LOAD.getCode()) ||
Objects.equals(child.getStatus(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode()) ||
Objects.equals(child.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())
){
sumOnTheWayWeight = sumOnTheWayWeight.add(child.getLoadNet());
}
}
//在途吨数 = 矿发量 - 到站量
sumOnTheWayWeight = sumLoadWeight.subtract(sumUnloadWeight);
//在途车辆数 = 装车车数 - 卸车车数
onTheWayTruckNum = loadTruckNum - unloadTruckNum;
//接单率 = 接单吨数 / 挂单吨数
orderedRate = orderedWeight .divide(optional.get().getPendingWeight(),3, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100));
//任务完成率 = 到站量 / 任务量
taskCompleteRatio = sumUnloadWeight.divide(orderInfo.getTransportWeight(),3, RoundingMode.HALF_UP)
.multiply(new BigDecimal(100));
PerformanceProgress update = new PerformanceProgress();
......@@ -461,11 +485,17 @@ public class PerformanceProgressServiceImpl implements PerformanceProgressServi
update.setLoadTruckNum(loadTruckNum);
update.setUnloadTruckNum(unloadTruckNum);
update.setOnTheWayTruckNum(onTheWayTruckNum);
update.setOrderedRate(orderedRate);
update.setTaskCompleteRatio(taskCompleteRatio);
update.setOrderedWeight(orderedWeight);
update.setSumLoadWeight(sumLoadWeight);
update.setSumUnloadWeight(sumUnloadWeight);
update.setSumOnTheWayWeight(sumOnTheWayWeight);
performanceProgressDao.updateEntityByKey(update);
}
// 计算接单率
public BigDecimal calcOrderedRate(BigDecimal orderedWeight,BigDecimal pendingWeight){
//接单率 = 接单吨数 / 挂单吨数
return orderedWeight.divide(pendingWeight,3, RoundingMode.HALF_UP).multiply(new BigDecimal("100"));
}
}
package com.clx.performance.struct;
import com.clx.performance.model.PerformanceProgress;
import com.clx.performance.param.pc.carrier.UpdatePerformanceProgressParam;
import com.clx.performance.vo.pc.PerformanceProgressDetailVO;
import com.clx.performance.vo.pc.PerformanceProgressVO;
import com.msl.common.utils.DateStructUtil;
......@@ -15,4 +16,5 @@ public interface PerformanceProgressStruct {
PerformanceProgressDetailVO convert(PerformanceProgress item);
PerformanceProgress convertParam(UpdatePerformanceProgressParam param);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论