From 1707d15796d7dc78812f19b9c34868c8cb38a714 Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期日, 15 十月 2023 17:56:57 +0800 Subject: [PATCH] broker 卡车公司端 --- src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java | 139 ++++++++++++++++++++++++++++++++------------- 1 files changed, 98 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java b/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java index 93ad8b2..a3abb91 100644 --- a/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java +++ b/src/main/java/com/stylefeng/guns/modular/system/controller/OrderController.java @@ -1,14 +1,17 @@ package com.stylefeng.guns.modular.system.controller; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.enums.FacilityCodeEnum; import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; -import com.stylefeng.guns.modular.system.utils.TerminalInterfaceAcquisitionUtil; +import com.stylefeng.guns.modular.system.utils.PortUtil.FortyNineUtil; +import com.stylefeng.guns.modular.system.utils.PortUtil.SCACEnum; +import com.stylefeng.guns.modular.system.utils.PortUtil.TerminalInterfaceAcquisitionUtil; import com.stylefeng.guns.modular.system.utils.tips.ErrorTip; import com.stylefeng.guns.modular.system.utils.tips.SuccessTip; import com.stylefeng.guns.modular.system.warpper.TerminaleDataWarpper; @@ -25,6 +28,7 @@ import java.math.RoundingMode; import java.net.FileNameMap; import java.net.URLConnection; +import java.text.SimpleDateFormat; import java.util.*; @Controller @@ -156,6 +160,22 @@ return new SuccessTip(); } + @ApiOperation(value = "获取订单司机位置",notes="获取订单司机位置") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + @ApiImplicitParam(name = "orderId", value = "orderId", required = true, dataType = "Long"), + @ApiImplicitParam(name = "lon", value = "lon", required = true, dataType = "String"), + @ApiImplicitParam(name = "lat", value = "lat", required = true, dataType = "String"), + }) + @GetMapping(value = "/getLonLat") + @ResponseBody + public Object getLonLat(Long orderId){ + // 通过司机id获取订单 + List<Map<String,Object>> orders = orderService.getLonLat(orderId); + return new SuccessTip(orders); + } + + @Resource private TTransportationService tTransportationService; @@ -174,6 +194,8 @@ ArrayList<OrderDriverInfo> orderDriverInfos = new ArrayList<>(); ArrayList<Integer> driverIds = new ArrayList<>(); TOrder tOrder = orderService.selectById(orderId); + TPort tPort = portService.selectById(tOrder.getPort()); + // 第一个开始司机id Integer sDriverid = tOrder.getsDriverid(); if(sDriverid!=null){ @@ -193,11 +215,42 @@ driverIds.add(driverIdOne); } TGoods tGoods = goodsService.selectOne(new EntityWrapper<TGoods>().eq("order_id", tOrder.getId())); - List<TTransportation> tTransportations = tTransportationService.selectList(new EntityWrapper<TTransportation>().eq("order_id", orderId).in("driver_id", driverIds)); + List<TTransportation> tTransportations = tTransportationService.selectList(new EntityWrapper<TTransportation>().eq("order_id", orderId).in("driver_id", driverIds).orderBy("type")); TerminaleDataWarpper terminalStatus =new TerminaleDataWarpper(); try { - terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus(tGoods.getContainerNumber(), FacilityCodeEnum.USLAX.getMsg()); + if("LBCT".equals(tPort.getName()) || "APM".equals(tPort.getName())){ + terminalStatus = TerminalInterfaceAcquisitionUtil.getTerminalStatus(tPort.getName(),tGoods.getContainerNumber(), FacilityCodeEnum.USLAX.getMsg()); + }else { + // 去查是否存了containerid + if(ToolUtil.isNotEmpty(tGoods.getShipmentId()) && !"0".equals(tGoods.getShipmentId())){ + terminalStatus = FortyNineUtil.getContainerNo(tGoods.getShipmentId(), tGoods.getContainerNumber()); + }else { + String shippingLine = tGoods.getShippingLine(); + SCACEnum scacEnum = SCACEnum.fromCode(shippingLine); + String s; + if(ToolUtil.isEmpty(tGoods.getTrackingId()) || "0".equals(tGoods.getTrackingId())){ + s = FortyNineUtil.trackingRequest(tGoods.getBillNumber(), scacEnum.getDesc()); + if(ToolUtil.isEmpty(s)){ + s = FortyNineUtil.trackingList(tGoods.getBillNumber()); + } + tGoods.setTrackingId(s); + goodsService.updateById(tGoods); + }else { + s = tGoods.getTrackingId(); + } + String shipmentId = FortyNineUtil.getShipmentId(s); + if(ToolUtil.isNotEmpty(shipmentId)){ + tGoods.setShipmentId(shipmentId); + goodsService.updateById(tGoods); + }else { + tGoods.setShipmentId("0"); + tGoods.setTrackingId("0"); + goodsService.updateById(tGoods); + } + terminalStatus = FortyNineUtil.getContainerNo(shipmentId, tGoods.getContainerNumber()); + } + } }catch (Exception e){ e.printStackTrace(); terminalStatus =new TerminaleDataWarpper(); @@ -207,13 +260,16 @@ OrderDriverInfo orderDriverInfo = new OrderDriverInfo(); orderDriverInfo.setId(tDriver.getId()); orderDriverInfo.setDriverId(tDriver.getDriverId()); - if(tDriver.getId().equals(sDriverIdOne)&&tDriver.getType()==2){ + if(tDriver.getDriverId().equals(sDriverIdOne)&&tDriver.getType()==1){ orderDriverInfo.setPickUp(tDriver.getPickDate()); } - if(tDriver.getId().equals(driverid) &&tDriver.getType()==3){ + if(tDriver.getDriverId().equals(sDriverIdOne)&&tDriver.getType()==2){ + orderDriverInfo.setPickUp(tDriver.getPickDate()); + } + if(tDriver.getDriverId().equals(driverid) &&tDriver.getType()==3){ orderDriverInfo.setEmptyDate(tDriver.getEmptyDate()); } - if(tDriver.getId().equals(driverIdOne) &&tDriver.getType()==4){ + if(tDriver.getDriverId().equals(driverIdOne) &&tDriver.getType()==4){ orderDriverInfo.setReturnDate(tDriver.getReturnDate()); } orderDriverInfo.setContactEmail(tDriver.getEmail()); @@ -237,6 +293,7 @@ transportInfo.setCTF(terminalStatus.getCtf()); transportInfo.setClosedArea(terminalStatus.getClosedArea()); transportInfo.setLFD(terminalStatus.getLfd()); + transportInfo.setAvailable(terminalStatus.getAvailability()); transportInfo.setList(orderDriverInfos); Integer examSite = tOrder.getExamSite(); @@ -266,7 +323,7 @@ TUser tUser = itUserService.selectById(userId); List<TPrice> prices = priceService.selectList(new EntityWrapper<TPrice>().eq("order_id", tOrder.getId())); ArrayList<PriceInfo> priceInfos = new ArrayList<>(); - if(tUser.getGroupId()!=null){ + if(false){ TGroup tGroup = groupService.selectById(tUser.getGroupId()); User user = service.selectById(tGroup.getSalesId()); @@ -303,8 +360,8 @@ }else { for (TPrice price : prices) { PriceInfo priceInfo = new PriceInfo(); - priceInfo.setCarrierCost(price.getPrice()); - priceInfo.setCustomerCost(price.getPrice()); + priceInfo.setCarrierCost(price.getCarPrice()); + priceInfo.setCustomerCost(price.getCarPrice()); priceInfo.setName(price.getType()); priceInfo.setSalesProfit(new BigDecimal(0)); priceInfo.setMargin(new BigDecimal(0)); @@ -434,7 +491,7 @@ TOrder tOrder = orderService.selectById(orderId); TTransportation list = companySelectDriverSingleDto.getList(); list.setOrderId(companySelectDriverSingleDto.getOrderId()); - Integer type = companySelectDriverSingleDto.getType(); + Integer type = companySelectDriverSingleDto.getList().getType(); if(type==1){ tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.getsDriverid()).eq("type",1)); tOrder.setsDriverid(list.getDriverId()); @@ -448,7 +505,7 @@ tTransportationService.delete(new EntityWrapper<TTransportation>().eq("order_id",orderId).eq("driver_id",tOrder.geteDriverIdOne()).eq("type",4)); tOrder.seteDriverIdOne(list.getDriverId()); } - tTransportationService.insert(list); + tTransportationService.insert(list); // 删除原来的司机信息 // 更改订单信息 orderService.updateById(tOrder); @@ -625,7 +682,6 @@ return new ErrorTip(500,"ERROR"); } - @ApiOperation(value = "订单详情-提货单",notes="订单详情-提货单") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @@ -678,8 +734,6 @@ } - - @ApiOperation(value = "平台给用户报价/平台给卡车公司价格",notes="平台给用户报价/平台给卡车公司价格") @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @@ -698,36 +752,39 @@ map.put("pickUpDate",tOrder.getShipmentDate()); map.put("returnDate",tOrder.getOrderOkTime()); List<TPrice> prices = priceService.selectList(new EntityWrapper<TPrice>().eq("order_id", orderId)); + prices.forEach(e->e.setPrice(e.getCarPrice())); if(type==1){ map.put("price",prices); }else{ + map.put("price",prices); // 找出订单用户 --> 获取销售--> 获取提成 --> 计算应给卡车公司金额 - Integer userId = tOrder.getUserId(); - TUser tUser = itUserService.selectById(userId); - if(tUser.getGroupId()==null){ - map.put("price",prices); - }else { - TGroup tGroup = groupService.selectById(tUser.getGroupId()); - User user = service.selectById(tGroup.getSalesId()); - List<TUserFeeSetting> tUserFeeSettings = feeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id", user.getId())); - - for (TPrice price : prices) { - for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { - if(price.getType().equals(tUserFeeSetting.getName())){ - if(tUserFeeSetting.getFee()!=null && tUserFeeSetting.getFee()!=0) { - double v = ((double) tUserFeeSetting.getFee()) / 100; - BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); - BigDecimal subtract = price.getPrice().subtract(multiply); - price.setPrice(subtract); - }else { - price.setPrice(price.getPrice()); - } - break; - } - } - } - map.put("price",prices); - } +// Integer userId = tOrder.getUserId(); +// TUser tUser = itUserService.selectById(userId); +// if(tUser.getGroupId()==null){ +// map.put("price",prices); +// }else { +// prices.for +// TGroup tGroup = groupService.selectById(tUser.getGroupId()); +// User user = service.selectById(tGroup.getSalesId()); +// List<TUserFeeSetting> tUserFeeSettings = feeSettingService.selectList(new EntityWrapper<TUserFeeSetting>().eq("user_id", user.getId())); +// +// for (TPrice price : prices) { +// for (TUserFeeSetting tUserFeeSetting : tUserFeeSettings) { +// if(price.getType().equals(tUserFeeSetting.getName())){ +// if(tUserFeeSetting.getFee()!=null && tUserFeeSetting.getFee()!=0) { +// double v = ((double) tUserFeeSetting.getFee()) / 100; +// BigDecimal multiply = price.getPrice().multiply(new BigDecimal(v)); +// BigDecimal subtract = price.getPrice().subtract(multiply); +// price.setPrice(subtract); +// }else { +// price.setPrice(price.getPrice()); +// } +// break; +// } +// } +// } +// map.put("price",prices); +// } } return new SuccessTip(map); } -- Gitblit v1.7.1