Commit 6fc2d6378e65210e0401c51da98821be86dee27d

Authored by lichao
1 parent 169cdb34

调整-12-09

trash-admin/src/main/resources/static/type-guide.png

709 KB | W: | H:

271 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
trash-garbage/src/main/java/com/trash/garbage/controller/GarCarController.java
@@ -5,6 +5,7 @@ import cn.hutool.http.HttpRequest; @@ -5,6 +5,7 @@ import cn.hutool.http.HttpRequest;
5 import com.alibaba.fastjson.JSON; 5 import com.alibaba.fastjson.JSON;
6 import com.alibaba.fastjson.JSONArray; 6 import com.alibaba.fastjson.JSONArray;
7 import com.alibaba.fastjson.JSONObject; 7 import com.alibaba.fastjson.JSONObject;
  8 +import com.baomidou.mybatisplus.extension.api.R;
8 import com.github.pagehelper.PageInfo; 9 import com.github.pagehelper.PageInfo;
9 import com.trash.carInfo.domain.CarDriverRelation; 10 import com.trash.carInfo.domain.CarDriverRelation;
10 import com.trash.carInfo.domain.CarInfo; 11 import com.trash.carInfo.domain.CarInfo;
@@ -16,9 +17,11 @@ import com.trash.driver.domain.Driver; @@ -16,9 +17,11 @@ import com.trash.driver.domain.Driver;
16 import com.trash.driver.domain.vo.DriverVo; 17 import com.trash.driver.domain.vo.DriverVo;
17 import com.trash.driver.service.IDriverService; 18 import com.trash.driver.service.IDriverService;
18 import com.trash.enterprise.domain.TransportationEnterprise; 19 import com.trash.enterprise.domain.TransportationEnterprise;
  20 +import com.trash.garbage.global.Result;
19 import com.trash.garbage.pojo.dto.GarCarInfoVo; 21 import com.trash.garbage.pojo.dto.GarCarInfoVo;
20 import com.trash.garbage.service.GarCarServer; 22 import com.trash.garbage.service.GarCarServer;
21 //import javafx.scene.controlra.SplitPane; 23 //import javafx.scene.controlra.SplitPane;
  24 +import com.trash.garbage.utils.HttpUtil;
22 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
23 import org.apache.commons.collections4.CollectionUtils; 26 import org.apache.commons.collections4.CollectionUtils;
24 import org.apache.commons.lang3.StringUtils; 27 import org.apache.commons.lang3.StringUtils;
@@ -31,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -31,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
31 import org.springframework.web.bind.annotation.RestController; 34 import org.springframework.web.bind.annotation.RestController;
32 35
33 import java.text.ParseException; 36 import java.text.ParseException;
  37 +import java.text.SimpleDateFormat;
34 import java.util.*; 38 import java.util.*;
35 import java.util.stream.Collectors; 39 import java.util.stream.Collectors;
36 40
@@ -54,6 +58,119 @@ public class GarCarController { @@ -54,6 +58,119 @@ public class GarCarController {
54 public GarCarController(CarInfoServiceImpl carInfoServiceImpl) { 58 public GarCarController(CarInfoServiceImpl carInfoServiceImpl) {
55 this.carInfoServiceImpl = carInfoServiceImpl; 59 this.carInfoServiceImpl = carInfoServiceImpl;
56 } 60 }
  61 + public String queryAllVehicleInfo(String carNo) {
  62 + Map<String, Object> params = new HashMap<>();
  63 + params.put("_t", System.currentTimeMillis());
  64 + String json = HttpUtil.doGet("/api/gpsservice/v1/baseVehicle/QueryAllVehicleInfo", params);
  65 +
  66 + // 如果提供了carNo参数,则筛选匹配的车辆信息
  67 + if (carNo != null && !carNo.isEmpty()) {
  68 + JSONArray vehicleArray = JSONArray.parseArray(json);
  69 + for (int i = 0; i < vehicleArray.size(); i++) {
  70 + JSONObject vehicle = vehicleArray.getJSONObject(i);
  71 + if (vehicle.getString("licenseplateNo").contains(carNo)) {
  72 + return vehicle.getString("vehicleId");
  73 + }
  74 + }
  75 + }
  76 + return json;
  77 + }
  78 +
  79 + @GetMapping("/queryLatitudeLongitude")
  80 + public Result<?> queryLatitudeLongitude(String carNo) {
  81 + String vehicleId = queryAllVehicleInfo(carNo);
  82 +
  83 + if (StringUtils.isEmpty(vehicleId)) {
  84 + return Result.ERROR("未找到匹配的车辆信息");
  85 + }
  86 +
  87 + Map<String, Object> params = new HashMap<>();
  88 + params.put("isArea", 1);
  89 + params.put("vehicleList", vehicleId);
  90 +
  91 + String json = HttpUtil.doGet("/api/gpsservice/v1/LocationMonitoring/VehicleStatusInfo", params);
  92 +
  93 + try {
  94 + // 解析GPS服务返回的JSON数据
  95 + JSONArray jsonArray = JSONArray.parseArray(json);
  96 +
  97 + if (jsonArray.size() > 0) {
  98 + // 获取第一个车辆对象
  99 + JSONObject vehicleObj = jsonArray.getJSONObject(0);
  100 +
  101 + // 提取经纬度信息
  102 + String latitude = vehicleObj.getString("latitude");
  103 + String longitude = vehicleObj.getString("longitude");
  104 +
  105 + // 创建只包含经纬度的新对象
  106 + JSONObject latLngObj = new JSONObject();
  107 + latLngObj.put("latitude", latitude);
  108 + latLngObj.put("longitude", longitude);
  109 +
  110 + // 返回只包含经纬度的单个对象
  111 + return Result.OK(latLngObj);
  112 + } else {
  113 + return Result.ERROR("未找到车辆位置信息");
  114 + }
  115 + } catch (Exception e) {
  116 + log.error("解析JSON数据出错: ", e);
  117 + return Result.ERROR("解析JSON数据出错");
  118 + }
  119 + }
  120 +
  121 + @GetMapping("/queryMileage")
  122 + public Result<?> queryMileage(String carNo , String startTime) {
  123 + String vehicleId = queryAllVehicleInfo(carNo);
  124 + Date currentDate = new Date();
  125 + String currentTime = new SimpleDateFormat("yyyy-MM-dd+HH:mm:ss").format(currentDate);
  126 + Map<String, Object> params = new HashMap<>();
  127 + params.put("_t", System.currentTimeMillis());
  128 + params.put("vehicleId", vehicleId);
  129 + params.put("endTime", currentTime);
  130 + params.put("startTime", startTime.replace(" ","+"));
  131 +
  132 + String json = HttpUtil.doGet("/api/gpsservice/v1/locationsection/" + vehicleId + "/search", params);
  133 +
  134 + try {
  135 + JSONArray jsonArray = JSONArray.parseArray(json);
  136 + if (jsonArray.size() >= 2) {
  137 + JSONObject secondObject = jsonArray.getJSONObject(1);
  138 +
  139 + String mileage = secondObject.getString("mileage");
  140 +
  141 + JSONArray locationSectionList = secondObject.getJSONArray("locationSectionList");
  142 + if (locationSectionList != null && !locationSectionList.isEmpty()) {
  143 + JSONObject firstLocationSection = locationSectionList.getJSONObject(0);
  144 +
  145 + String endLatitude = firstLocationSection.getString("endLatitude");
  146 + String endLongitude = firstLocationSection.getString("endLongitude");
  147 +
  148 + JSONObject result = new JSONObject();
  149 + result.put("mileage", mileage);
  150 + result.put("endLatitude", endLatitude);
  151 + result.put("endLongitude", endLongitude);
  152 +
  153 + return Result.OK(result.toJSONString());
  154 + }
  155 + }
  156 + } catch (Exception e) {
  157 + log.error("解析JSON数据出错: ", e);
  158 + }
  159 +
  160 + JSONObject result = new JSONObject();
  161 + result.put("mileage", 1);
  162 + return Result.OK(result);
  163 + }
  164 +
  165 + @GetMapping("/requestStrByEnergyType")
  166 + public Result<?> requestStrByEnergyType(String energyType) {
  167 + List<String> json = garCarServer.getAllCompanyNamesByEnergyType(energyType);
  168 + if (CollectionUtils.isEmpty(json)) {
  169 + return Result.ERROR("查询失败");
  170 + }
  171 + return Result.OK(json);
  172 + }
  173 +
57 @PostMapping("/list/group/by/carType") 174 @PostMapping("/list/group/by/carType")
58 public TableDataInfo listGroupByCarTypePost(GarCarInfoVo carInfo) throws ParseException{ 175 public TableDataInfo listGroupByCarTypePost(GarCarInfoVo carInfo) throws ParseException{
59 return listGroupByCarType(carInfo); 176 return listGroupByCarType(carInfo);
@@ -68,15 +185,15 @@ public class GarCarController { @@ -68,15 +185,15 @@ public class GarCarController {
68 TableDataInfo data = getDataTable(list); 185 TableDataInfo data = getDataTable(list);
69 if (CollectionUtils.isNotEmpty(list)) { 186 if (CollectionUtils.isNotEmpty(list)) {
70 Map<String, List<GarCarInfoVo>> carMap = list.stream().map(car -> { 187 Map<String, List<GarCarInfoVo>> carMap = list.stream().map(car -> {
71 - if (Objects.equals(car.getCarType(), "轻型货车")) {  
72 - car.setCarLeft("car_1.png");  
73 - car.setRemark("箱体长2.6m,宽1.7m,高1.5m;最多可容纳约90袋装修垃圾(75cm*5cm每袋)");  
74 - } else if (Objects.equals(car.getCarType(), "中型货车")) { 188 + if (Objects.equals(car.getCarType(), "轻型车辆")) {
  189 + car.setCarLeft("car_2.png");
  190 + car.setRemark("箱体约长3.3~3.6m,宽1.85~2.0m,高0.6~1.05m;整车高约2.15m;最多可容纳约70-90袋装修垃圾(75cm×45cm每袋)");
  191 + } else if (Objects.equals(car.getCarType(), "中型车辆")) {
  192 + car.setCarLeft("car_2.png");
  193 + car.setRemark("箱体约长3.5~3.8m,宽1.9~2.1m,高0.8~1.08m;整车高约2.4m;最多可容纳约90-110袋装修垃圾(75cm×45cm每袋)");
  194 + } else if (Objects.equals(car.getCarType(), "重型车辆")) {
75 car.setCarLeft("car_2.png"); 195 car.setCarLeft("car_2.png");
76 - car.setRemark("箱体长3.2m,宽1.5m,高1.5m;最多可容纳约110袋装修垃圾(75cm*45cm每袋)");  
77 - } else if (Objects.equals(car.getCarType(), "大中型货车")) {  
78 - car.setCarLeft("car_3.png");  
79 - car.setRemark("箱体长3.2m,宽1.9m,高1.9m;最多可容纳约150袋装修垃圾(75cm*45cm每袋)"); 196 + car.setRemark("箱体约长3.8~4.2m,宽2.1~2.2m,高0.8~1.1m;整车高约2.8m;最多可容纳约110-140袋装修垃圾(75cm×45cm每袋)");
80 } 197 }
81 return car; 198 return car;
82 }).collect(Collectors.groupingBy(GarCarInfoVo::getCarType)); 199 }).collect(Collectors.groupingBy(GarCarInfoVo::getCarType));
trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
@@ -6,6 +6,7 @@ import cn.hutool.http.HttpRequest; @@ -6,6 +6,7 @@ import cn.hutool.http.HttpRequest;
6 import com.alibaba.fastjson.JSON; 6 import com.alibaba.fastjson.JSON;
7 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
8 import com.github.pagehelper.PageHelper; 8 import com.github.pagehelper.PageHelper;
  9 +import com.github.pagehelper.PageInfo;
9 import com.trash.carInfo.domain.vo.CarInfoVo; 10 import com.trash.carInfo.domain.vo.CarInfoVo;
10 import com.trash.common.annotation.Log; 11 import com.trash.common.annotation.Log;
11 import com.trash.common.config.trashConfig; 12 import com.trash.common.config.trashConfig;
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/DispatchDriverVo.java
@@ -111,11 +111,11 @@ public class DispatchDriverVo { @@ -111,11 +111,11 @@ public class DispatchDriverVo {
111 111
112 public Integer getSortValue() { 112 public Integer getSortValue() {
113 if (Objects.isNull(sortValue)) { 113 if (Objects.isNull(sortValue)) {
114 - if (StringUtils.equals(StringUtils.trim(containerVolume), "轻型货车") || StringUtils.equals(StringUtils.trim(containerVolume), "4方车")) { 114 + if (StringUtils.equals(StringUtils.trim(containerVolume), "轻型车辆") || StringUtils.equals(StringUtils.trim(containerVolume), "4方车")) {
115 sortValue = 1; 115 sortValue = 1;
116 - } else if (StringUtils.equals(StringUtils.trim(containerVolume), "中型货车") || StringUtils.equals(StringUtils.trim(containerVolume), "6方车")) { 116 + } else if (StringUtils.equals(StringUtils.trim(containerVolume), "中型车辆") || StringUtils.equals(StringUtils.trim(containerVolume), "6方车")) {
117 sortValue = 2; 117 sortValue = 2;
118 - } else if (StringUtils.equals(StringUtils.trim(containerVolume), "中大型货车") || StringUtils.equals(StringUtils.trim(containerVolume), "8方车")) { 118 + } else if (StringUtils.equals(StringUtils.trim(containerVolume), "重型车辆") || StringUtils.equals(StringUtils.trim(containerVolume), "8方车")) {
119 sortValue = 3; 119 sortValue = 3;
120 } else { 120 } else {
121 sortValue = Integer.MAX_VALUE; 121 sortValue = Integer.MAX_VALUE;
trash-garbage/src/main/java/com/trash/garbage/service/GarCarServer.java
@@ -11,4 +11,6 @@ public interface GarCarServer { @@ -11,4 +11,6 @@ public interface GarCarServer {
11 List<GarCarInfoVo> requestGarCarInfoVo(String companId); 11 List<GarCarInfoVo> requestGarCarInfoVo(String companId);
12 12
13 List<DispatchDriverVo> requestDispatchDriverVo(String companId); 13 List<DispatchDriverVo> requestDispatchDriverVo(String companId);
  14 +
  15 + List<String> getAllCompanyNamesByEnergyType(String energyType);
14 } 16 }
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarCarServerImpl.java
@@ -44,6 +44,64 @@ public class GarCarServerImpl implements GarCarServer { @@ -44,6 +44,64 @@ public class GarCarServerImpl implements GarCarServer {
44 44
45 } 45 }
46 46
  47 +
  48 + public String requestStrByEnergyType(String energyType, int page, int size) {
  49 + Map<String, Object> params = new HashMap<>();
  50 +
  51 + params.put("energyType", energyType);
  52 + params.put("valid", 0);
  53 + params.put("tag", 1);
  54 + params.put("page", page);
  55 + params.put("size", size);
  56 + return HttpUtil.doPost("/api/gpsservice/cs/basevehicle/ledger/list", JSON.toJSONString(params));
  57 + }
  58 +
  59 +
  60 + @Override
  61 + public List<String> getAllCompanyNamesByEnergyType(String energyType) {
  62 + Set<String> uniqueCompanyNames = new HashSet<>();
  63 + int page = 1;
  64 + int size = 9999;
  65 + boolean hasMorePages = true;
  66 +
  67 + while (hasMorePages) {
  68 + String jsonResponse = requestStrByEnergyType(energyType, page, size);
  69 + if (StringUtils.isEmpty(jsonResponse)) {
  70 + break;
  71 + }
  72 +
  73 + JSONObject response = JSON.parseObject(jsonResponse);
  74 + if (response != null &&
  75 + "200".equals(response.getString("code")) &&
  76 + response.getJSONObject("result") != null) {
  77 +
  78 + JSONObject result = response.getJSONObject("result");
  79 + JSONArray list = result.getJSONArray("list");
  80 +
  81 + if (list != null && !list.isEmpty()) {
  82 + for (int i = 0; i < list.size(); i++) {
  83 + JSONObject vehicle = list.getJSONObject(i);
  84 + String companyName = vehicle.getString("companyName");
  85 + if (StringUtils.isNotEmpty(companyName)) {
  86 + uniqueCompanyNames.add(companyName);
  87 + }
  88 + }
  89 + }
  90 +
  91 + // 检查是否还有更多页面
  92 + int total = result.getIntValue("total");
  93 + int pageSize = result.getIntValue("pageSize");
  94 + int totalPages = (int) Math.ceil((double) total / pageSize);
  95 + hasMorePages = page < totalPages;
  96 + page++;
  97 + } else {
  98 + hasMorePages = false;
  99 + }
  100 + }
  101 +
  102 + return new ArrayList<>(uniqueCompanyNames);
  103 + }
  104 +
47 @Override 105 @Override
48 public List<GarCarInfoVo> requestGarCarInfoVo(String companId) { 106 public List<GarCarInfoVo> requestGarCarInfoVo(String companId) {
49 String json = requestStr(companId); 107 String json = requestStr(companId);
@@ -67,7 +125,17 @@ public class GarCarServerImpl implements GarCarServer { @@ -67,7 +125,17 @@ public class GarCarServerImpl implements GarCarServer {
67 vo.setCarCode(jsonObject.getString("licenseplateNo")); 125 vo.setCarCode(jsonObject.getString("licenseplateNo"));
68 vo.setCarColor(jsonObject.getString("")); 126 vo.setCarColor(jsonObject.getString(""));
69 vo.setCarIdentification(jsonObject.getString("licenseplateNo")); 127 vo.setCarIdentification(jsonObject.getString("licenseplateNo"));
70 - vo.setCarType(jsonObject.getString("energyTypeName")); 128 + // 修改后的代码:
  129 + String energyTypeName = jsonObject.getString("energyTypeName");
  130 + if (StringUtils.equals(energyTypeName, "轻型货车")) {
  131 + vo.setCarType("轻型车辆");
  132 + } else if (StringUtils.equals(energyTypeName, "中型货车")) {
  133 + vo.setCarType("中型车辆");
  134 + } else if (StringUtils.equals(energyTypeName, "大中型货车")) {
  135 + vo.setCarType("重型车辆");
  136 + } else {
  137 + vo.setCarType(energyTypeName);
  138 + }
71 if (Objects.nonNull(jsonObject.getString("companyID"))) { 139 if (Objects.nonNull(jsonObject.getString("companyID"))) {
72 vo.setCompanyId(StringUtils.replace(jsonObject.getString("companyID").toString(), "zxljqy", "")); 140 vo.setCompanyId(StringUtils.replace(jsonObject.getString("companyID").toString(), "zxljqy", ""));
73 } 141 }
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
@@ -17,6 +17,7 @@ import com.trash.carInfo.domain.CarInfo; @@ -17,6 +17,7 @@ import com.trash.carInfo.domain.CarInfo;
17 import com.trash.carInfo.domain.vo.CarInfoVo; 17 import com.trash.carInfo.domain.vo.CarInfoVo;
18 import com.trash.carInfo.mapper.CarInfoMapper; 18 import com.trash.carInfo.mapper.CarInfoMapper;
19 import com.trash.carInfo.service.impl.CarInfoServiceImpl; 19 import com.trash.carInfo.service.impl.CarInfoServiceImpl;
  20 +import com.trash.common.config.trashConfig;
20 import com.trash.common.core.redis.RedisCache; 21 import com.trash.common.core.redis.RedisCache;
21 import com.trash.common.utils.RemoteServerUtils; 22 import com.trash.common.utils.RemoteServerUtils;
22 import com.trash.common.utils.SecurityUtils; 23 import com.trash.common.utils.SecurityUtils;
@@ -130,7 +131,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -130,7 +131,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
130 @Autowired 131 @Autowired
131 private IDropPointInfoService dropPointInfoService; 132 private IDropPointInfoService dropPointInfoService;
132 @Autowired 133 @Autowired
133 - private com.trash.common.config.trashConfig trashConfig; 134 + private trashConfig trashConfig;
134 @Autowired 135 @Autowired
135 private GarOrderMatchAskMapper garOrderMatchAskMapper; 136 private GarOrderMatchAskMapper garOrderMatchAskMapper;
136 @Autowired 137 @Autowired
@@ -246,7 +247,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -246,7 +247,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
246 String garCreateBy = image.getGarCreateBy(); 247 String garCreateBy = image.getGarCreateBy();
247 GarUser byId = garUserService.getById(garCreateBy); 248 GarUser byId = garUserService.getById(garCreateBy);
248 String garUserName = byId.getGarUserName(); 249 String garUserName = byId.getGarUserName();
249 - int state = askService.queryStates(orderId, garUserName); 250 + int state = askService.queryStates(image.getGarOrderAskId(), garUserName);
250 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state); 251 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state);
251 } 252 }
252 if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) { 253 if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) {
@@ -316,7 +317,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -316,7 +317,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
316 String garCreateBy = image.getGarCreateBy(); 317 String garCreateBy = image.getGarCreateBy();
317 GarUser byId = garUserService.getById(garCreateBy); 318 GarUser byId = garUserService.getById(garCreateBy);
318 String garUserName = byId.getGarUserName(); 319 String garUserName = byId.getGarUserName();
319 - int state = askService.queryStates(id, garUserName); 320 + int state = askService.queryStates(image.getGarOrderAskId(), garUserName);
320 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state); 321 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state);
321 } 322 }
322 if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) { 323 if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) {
@@ -606,7 +607,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -606,7 +607,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
606 .set(GarOrder::getGarOrderCompanyUserId, user.getGarUserId()); 607 .set(GarOrder::getGarOrderCompanyUserId, user.getGarUserId());
607 update(uw); 608 update(uw);
608 // TODO 短信提醒 609 // TODO 短信提醒
609 - String message = "订单提醒:您的预约清运订单" + order.getGarOrderId() + "已被" + order.getGarOrderCompanyName() + "公司接收,详情请登录【智慧渣管APP】查看!企业服务电话!"; 610 + String message = "订单提醒:您的预约清运订单" + order.getGarOrderId() + "已被" + order.getGarOrderCompanyName() + "公司接收,详情请登录【智慧渣管APP】查看!企业服务电话:" + order.getGarOrderCompanyTel();
610 smsUtils.sendMessage(order.getGarOrderContactTel(), message); 611 smsUtils.sendMessage(order.getGarOrderContactTel(), message);
611 // TODO 用户消息通知 订单菜单消息 612 // TODO 用户消息通知 订单菜单消息
612 userOrderMessageSend(order, message); 613 userOrderMessageSend(order, message);
@@ -686,14 +687,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -686,14 +687,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
686 garOrderMatchAsk.setDisposalId(disposalList.get(0).getGarOrderDisposalCompanyId()); 687 garOrderMatchAsk.setDisposalId(disposalList.get(0).getGarOrderDisposalCompanyId());
687 garOrderMatchAsk.setDisposalSiteName(disposalList.get(0).getGarOrderDisposalCompanyName()); 688 garOrderMatchAsk.setDisposalSiteName(disposalList.get(0).getGarOrderDisposalCompanyName());
688 689
689 - List<DropPointInfo> dropPointInfoList = dropPointInfoService.selectDropPointInfoListByPhone(garOrderMatchAsk.getGarOrderPhone());  
690 - 690 + List<DropPointInfo> dropPointInfoList = dropPointInfoService.selectDropPointInfoListByPhone(orderDetailVo.getGarOrderContactTel());
691 if (!dropPointInfoList.isEmpty()) { 691 if (!dropPointInfoList.isEmpty()) {
692 692
693 garOrderMatchAsk.setDropPointId(Integer.parseInt(dropPointInfoList.get(0).getId().toString())); 693 garOrderMatchAsk.setDropPointId(Integer.parseInt(dropPointInfoList.get(0).getId().toString()));
694 garOrderMatchAsk.setDropPointName(dropPointInfoList.get(0).getDropPointName()); 694 garOrderMatchAsk.setDropPointName(dropPointInfoList.get(0).getDropPointName());
695 } 695 }
696 - garOrderMatchAsk.setDropAddress(order.getGarOrderAddress()+order.getGarOrderAddressDetails()); 696 + garOrderMatchAsk.setDropAddress(order.getGarOrderAddress() + order.getGarOrderAddressDetails());
697 garOrderMatchAsk.setGarCreateBy(dto.getDriver()); 697 garOrderMatchAsk.setGarCreateBy(dto.getDriver());
698 askService.save(garOrderMatchAsk); 698 askService.save(garOrderMatchAsk);
699 } 699 }
@@ -1001,6 +1001,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1001,6 +1001,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1001 } 1001 }
1002 1002
1003 1003
  1004 + // ... existing code ...
1004 @Override 1005 @Override
1005 public PageInfo dockingUpEnterpriseList(TransportationEnterprise dto) { 1006 public PageInfo dockingUpEnterpriseList(TransportationEnterprise dto) {
1006 // 1)支持选择企业"所属区域"(长沙市内的)展示区域内所有企业 1007 // 1)支持选择企业"所属区域"(长沙市内的)展示区域内所有企业
@@ -1051,6 +1052,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1051,6 +1052,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1051 } 1052 }
1052 } 1053 }
1053 1054
  1055 + // 获取分页参数
  1056 + Integer pageNum = ServletUtils.getParameterToInt("pageNum");
  1057 + Integer pageSize = ServletUtils.getParameterToInt("pageSize");
  1058 +
  1059 + // 使用PageHelper进行分页
  1060 + PageHelper.startPage(pageNum, pageSize);
  1061 +
1054 // 修改这里,将name参数传递给request方法 1062 // 修改这里,将name参数传递给request方法
1055 List<TransportationEnterprise> list = garTransportationEnterpriseService.request(tel, areaCode, officeAddress, name); 1063 List<TransportationEnterprise> list = garTransportationEnterpriseService.request(tel, areaCode, officeAddress, name);
1056 1064
@@ -1061,8 +1069,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1061,8 +1069,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1061 } 1069 }
1062 1070
1063 // saveOrUpdate(list); 1071 // saveOrUpdate(list);
1064 - Integer pageNum = ServletUtils.getParameterToInt("pageNum");  
1065 - Integer pageSize = ServletUtils.getParameterToInt("pageSize");  
1066 Integer orderByColumn = ServletUtils.getParameterToInt("orderByColumn"); 1072 Integer orderByColumn = ServletUtils.getParameterToInt("orderByColumn");
1067 Comparator<TransportationEnterpriseVo> comparator; 1073 Comparator<TransportationEnterpriseVo> comparator;
1068 if (1 == orderByColumn) { 1074 if (1 == orderByColumn) {
@@ -1091,7 +1097,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1091,7 +1097,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1091 .eq(GarAddress::getGarUserDefault, GlobalStatus.GarAddressStatus.CURRENT_ADDRESS.getValue()); 1097 .eq(GarAddress::getGarUserDefault, GlobalStatus.GarAddressStatus.CURRENT_ADDRESS.getValue());
1092 GarAddress address = garAddressService.getOne(qw); 1098 GarAddress address = garAddressService.getOne(qw);
1093 1099
1094 - Stream<TransportationEnterpriseVo> stream = list.stream().map(item -> { 1100 + List<TransportationEnterpriseVo> voList = list.stream().map(item -> {
1095 TransportationEnterpriseVo vo = new TransportationEnterpriseVo(); 1101 TransportationEnterpriseVo vo = new TransportationEnterpriseVo();
1096 BeanUtils.copyProperties(item, vo); 1102 BeanUtils.copyProperties(item, vo);
1097 List<GarOrderEvaluate> evaluate = evaluateMap.get(String.valueOf(item.getId())); 1103 List<GarOrderEvaluate> evaluate = evaluateMap.get(String.valueOf(item.getId()));
@@ -1099,25 +1105,22 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1099,25 +1105,22 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1099 handleScore(vo, evaluate); 1105 handleScore(vo, evaluate);
1100 handleDistance(vo, address); 1106 handleDistance(vo, address);
1101 return vo; 1107 return vo;
1102 - });  
1103 - List<TransportationEnterpriseVo> voList; 1108 + }).collect(Collectors.toList());
  1109 +
  1110 + // 排序
1104 if (orderByColumn != 0) { 1111 if (orderByColumn != 0) {
1105 // 降序 1112 // 降序
1106 - voList = stream.sorted(comparator.reversed()).collect(Collectors.toList()); 1113 + voList = voList.stream().sorted(comparator.reversed()).collect(Collectors.toList());
1107 } else { 1114 } else {
1108 - voList = stream.sorted(comparator).collect(Collectors.toList()); 1115 + voList = voList.stream().sorted(comparator).collect(Collectors.toList());
1109 } 1116 }
1110 - int total = voList.size();  
1111 - int remainder = total % pageSize;  
1112 - int currentPage = pageNum > 0 ? (pageNum - 1) * pageSize : pageNum * pageSize;  
1113 - // 怕页码超出界限了 超出界限就通过currenPage (3 * 10) > total (25) ? currentPage (20) - (pageSize (10) - remainder (3)) : currentPage  
1114 - int startPage = currentPage > total ? currentPage - (pageSize - remainder) : currentPage;  
1115 - int endPage = Math.min(startPage + pageSize, total);  
1116 - PageInfo<TransportationEnterpriseVo> pageInfo = new PageInfo<>();  
1117 - pageInfo.setList(voList.subList(startPage, endPage));  
1118 - pageInfo.setTotal(total); 1117 +
  1118 + // 创建PageInfo对象并返回
  1119 + PageInfo<TransportationEnterpriseVo> pageInfo = new PageInfo<>(voList);
1119 return pageInfo; 1120 return pageInfo;
1120 } 1121 }
  1122 +// ... existing code ...
  1123 +
1121 1124
1122 private void saveOrUpdate(List<TransportationEnterprise> list) { 1125 private void saveOrUpdate(List<TransportationEnterprise> list) {
1123 if (CollectionUtils.isNotEmpty(list)) { 1126 if (CollectionUtils.isNotEmpty(list)) {
@@ -1264,14 +1267,21 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1264,14 +1267,21 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1264 // updateById(order); 1267 // updateById(order);
1265 1268
1266 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber(); 1269 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber();
  1270 + log.error("请求司机信息:{}" + tel);
1267 1271
1268 List<TransportationEnterprise> enterprises = garTransportationEnterpriseService.request(tel, null, null, null); 1272 List<TransportationEnterprise> enterprises = garTransportationEnterpriseService.request(tel, null, null, null);
1269 if (CollectionUtils.isEmpty(enterprises)) { 1273 if (CollectionUtils.isEmpty(enterprises)) {
  1274 + log.error("请求司机信息失败1" + tel);
1270 return Collections.emptyList(); 1275 return Collections.emptyList();
1271 } 1276 }
1272 enterprises = enterprises.stream().filter(e -> Objects.equals(e.getServicePhone(), tel)).collect(Collectors.toList()); 1277 enterprises = enterprises.stream().filter(e -> Objects.equals(e.getServicePhone(), tel)).collect(Collectors.toList());
1273 if (CollectionUtils.isEmpty(enterprises)) { 1278 if (CollectionUtils.isEmpty(enterprises)) {
1274 - return Collections.emptyList(); 1279 + log.error("请求司机信息失败2" + tel);
  1280 + enterprises = enterprises.stream().filter(e -> Objects.equals(e.getSafetyManagerPhone(), tel)).collect(Collectors.toList());
  1281 + if (CollectionUtils.isEmpty(enterprises)) {
  1282 + log.error("请求司机信息失败3" + tel);
  1283 + return Collections.emptyList();
  1284 + }
1275 } 1285 }
1276 List<GarOrderMatchHandler> garOrderCars = garOrderCarService.queryGarOrderMatchHandler(orderId); 1286 List<GarOrderMatchHandler> garOrderCars = garOrderCarService.queryGarOrderMatchHandler(orderId);
1277 int garOrderCarsLength = CollectionUtils.size(garOrderCars); 1287 int garOrderCarsLength = CollectionUtils.size(garOrderCars);
@@ -1296,20 +1306,29 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1296,20 +1306,29 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1296 } 1306 }
1297 return vo; 1307 return vo;
1298 }).collect(Collectors.toList()); 1308 }).collect(Collectors.toList());
  1309 + log.error("请求司机信息数据集2" + voList);
1299 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>(); 1310 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>();
1300 qwc.eq(GarOrderCar::getGarOrderId, orderId); 1311 qwc.eq(GarOrderCar::getGarOrderId, orderId);
1301 1312
1302 List<GarOrderCar> carList = garOrderCarService.list(qwc); 1313 List<GarOrderCar> carList = garOrderCarService.list(qwc);
1303 if (CollectionUtils.isNotEmpty(carList)) { 1314 if (CollectionUtils.isNotEmpty(carList)) {
1304 Set<String> carTypes = carList.stream().map(GarOrderCar::getGarOrderCarType).collect(Collectors.toSet()); 1315 Set<String> carTypes = carList.stream().map(GarOrderCar::getGarOrderCarType).collect(Collectors.toSet());
1305 - if (CollectionUtils.isNotEmpty(carTypes)) {  
1306 - String[] carTypeStrs = {"4方车", "6方车", "8方车"};  
1307 - String[] carTypeStrs1 = {"轻型货车", "中型货车", "中大型货车"};  
1308 - int size = carTypeStrs.length;  
1309 - for (int i = 0; i < size; i++) {  
1310 - if (carTypes.contains(carTypeStrs[i])) {  
1311 - carTypes.add(carTypeStrs1[i]);  
1312 - } 1316 + // 旧类型到新类型的映射(4方车→轻型车辆,6方车→中型车辆,8方车→重型车辆)
  1317 + String[] carTypeStrs = {"4方车", "6方车", "8方车"};
  1318 + String[] carTypeStrs1 = {"轻型车辆", "中型车辆", "重型车辆"};
  1319 + int size = carTypeStrs.length;
  1320 + for (int i = 0; i < size; i++) {
  1321 + if (carTypes.contains(carTypeStrs[i])) {
  1322 + carTypes.add(carTypeStrs1[i]);
  1323 + }
  1324 + }
  1325 +
  1326 + // 新类型到旧类型的映射(轻型车辆→轻型货车,中型车辆→中型货车,重型车辆→中大型货车)
  1327 + String[] newTypes = {"轻型车辆", "中型车辆", "重型车辆"};
  1328 + String[] oldTypes = {"轻型货车", "中型货车", "中大型货车"};
  1329 + for (int i = 0; i < newTypes.length; i++) {
  1330 + if (carTypes.contains(newTypes[i])) {
  1331 + carTypes.add(oldTypes[i]);
1313 } 1332 }
1314 } 1333 }
1315 voList = voList.stream().filter(v -> carTypes.contains(v.getContainerVolume())).sorted(Comparator.comparing(DispatchDriverVo::getLicensePlateNumber)).sorted(Comparator.comparing(DispatchDriverVo::getSortValue)).collect(Collectors.toList()); 1334 voList = voList.stream().filter(v -> carTypes.contains(v.getContainerVolume())).sorted(Comparator.comparing(DispatchDriverVo::getLicensePlateNumber)).sorted(Comparator.comparing(DispatchDriverVo::getSortValue)).collect(Collectors.toList());
@@ -1513,43 +1532,47 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -1513,43 +1532,47 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1513 qw.eq(GarOrderMatchAsk::getGarCarCode, dto.getGarHandlerCarCode()); 1532 qw.eq(GarOrderMatchAsk::getGarCarCode, dto.getGarHandlerCarCode());
1514 List<GarOrderMatchAsk> askList = askService.list(qw); 1533 List<GarOrderMatchAsk> askList = askService.list(qw);
1515 GarOrder order = getById(orderId); 1534 GarOrder order = getById(orderId);
1516 - for (GarOrderMatchAsk garOrderMatchAsk : askList) {  
1517 - if(garOrderMatchAsk.getGarOrderHandlerId()==null){  
1518 - // 第一次的话需要修改订单状态为已扫码  
1519 - if (order.getGarOrderScanHandlerFlag().equals(GlobalStatus.GarOrderStatus.SCAN_HANDLER_NO.getValue())) {  
1520 - order.setGarOrderScanHandlerFlag(GlobalStatus.GarOrderStatus.SCAN_HANDLER_YES.getValue());  
1521 - updateById(order);  
1522 - }  
1523 - BeanUtils.copyProperties(dto, garOrderMatchAsk);  
1524 - garOrderMatchAsk.setGarUpdateBy(dto.getGarOrderHandlerName());  
1525 - garOrderMatchAsk.setGarUpdateTime(new Date());  
1526 - garOrderMatchAsk.setTransportDistance(dto.getTransportDistance());  
1527 - // 判断本趟次是否上传了图片  
1528 - if(garOrderMatchAsk.getGarCarCode()==null){  
1529 - garOrderMatchAsk.setGarOrderType("1");  
1530 - garOrderMatchAsk.setGarRemark(garOrderMatchAsk.getGarRemark()!=null?garOrderMatchAsk.getGarRemark()+";未上传装车图片":"未上传装车图片");  
1531 - }else if(!dto.getGarHandlerCarCode().equals(garOrderMatchAsk.getGarCarCode())){  
1532 - //判断本趟次运输车辆是否相同  
1533 - garOrderMatchAsk.setGarOrderType("1");  
1534 - garOrderMatchAsk.setGarRemark(garOrderMatchAsk.getGarRemark()!=null?garOrderMatchAsk.getGarRemark()+";装车和卸车的车辆号牌不一致":"装车和卸车的车辆号牌不一致");  
1535 - }  
1536 - garOrderAssociationServiceAsync.isWithinDisposal(dto.getGarHandlerCarCode(), garOrderMatchAsk, dto);  
1537 - askService.updateById(garOrderMatchAsk);  
1538 - // 保存图片url  
1539 - List<GarOrderImage> imageList = new ArrayList<>(dto.getFillImageList().size());  
1540 - for (String fillImageUrl : dto.getFillImageList()) {  
1541 - GarOrderImage image = new GarOrderImage();  
1542 - image.setGarOrderImageType(GlobalStatus.GarOrderStatus.IMAGE_TYPE_FILL_CAR.getValue());  
1543 - image.setGarOrderId(orderId);  
1544 - image.setGarOrderImageUrl(fillImageUrl);  
1545 - image.setGarRemark(garOrderMatchAsk.getGarId());  
1546 - imageList.add(image); 1535 + try {
  1536 + for (GarOrderMatchAsk garOrderMatchAsk : askList) {
  1537 + if(garOrderMatchAsk.getGarOrderHandlerId()==null){
  1538 + // 第一次的话需要修改订单状态为已扫码
  1539 + if (order.getGarOrderScanHandlerFlag().equals(GlobalStatus.GarOrderStatus.SCAN_HANDLER_NO.getValue())) {
  1540 + order.setGarOrderScanHandlerFlag(GlobalStatus.GarOrderStatus.SCAN_HANDLER_YES.getValue());
  1541 + updateById(order);
  1542 + }
  1543 + BeanUtils.copyProperties(dto, garOrderMatchAsk);
  1544 + garOrderMatchAsk.setGarUpdateBy(dto.getGarOrderHandlerName());
  1545 + garOrderMatchAsk.setGarUpdateTime(new Date());
  1546 + garOrderMatchAsk.setTransportDistance(dto.getTransportDistance());
  1547 + // 判断本趟次是否上传了图片
  1548 + if(garOrderMatchAsk.getGarCarCode()==null){
  1549 + garOrderMatchAsk.setGarOrderType("1");
  1550 + garOrderMatchAsk.setGarRemark(garOrderMatchAsk.getGarRemark()!=null?garOrderMatchAsk.getGarRemark()+";未上传装车图片":"未上传装车图片");
  1551 + }else if(!dto.getGarHandlerCarCode().equals(garOrderMatchAsk.getGarCarCode())){
  1552 + //判断本趟次运输车辆是否相同
  1553 + garOrderMatchAsk.setGarOrderType("1");
  1554 + garOrderMatchAsk.setGarRemark(garOrderMatchAsk.getGarRemark()!=null?garOrderMatchAsk.getGarRemark()+";装车和卸车的车辆号牌不一致":"装车和卸车的车辆号牌不一致");
  1555 + }
  1556 + garOrderAssociationServiceAsync.isWithinDisposal(dto.getGarHandlerCarCode(), garOrderMatchAsk, dto);
  1557 + askService.updateById(garOrderMatchAsk);
  1558 + // 保存图片url
  1559 + List<GarOrderImage> imageList = new ArrayList<>(dto.getFillImageList().size());
  1560 + for (String fillImageUrl : dto.getFillImageList()) {
  1561 + GarOrderImage image = new GarOrderImage();
  1562 + image.setGarOrderImageType(GlobalStatus.GarOrderStatus.IMAGE_TYPE_FILL_CAR.getValue());
  1563 + image.setGarOrderId(orderId);
  1564 + image.setGarOrderImageUrl(fillImageUrl);
  1565 + image.setGarRemark(garOrderMatchAsk.getGarId());
  1566 + imageList.add(image);
  1567 + }
  1568 + garOrderImageService.saveBatch(imageList);
  1569 + // TODO 删除验证码
  1570 + redisCache.deleteObject(orderId, dto.getGarOrderHandlerId());
  1571 + return "当前趟次记录成功";
1547 } 1572 }
1548 - garOrderImageService.saveBatch(imageList);  
1549 - // TODO 删除验证码  
1550 - redisCache.deleteObject(orderId, dto.getGarOrderHandlerId());  
1551 - return "当前趟次记录成功";  
1552 } 1573 }
  1574 + }catch (Exception e){
  1575 + return e.getMessage();
1553 } 1576 }
1554 throw new BizException(ResultCode.CODE_400, "当前记录无效,已完成所有趟次!"); 1577 throw new BizException(ResultCode.CODE_400, "当前记录无效,已完成所有趟次!");
1555 } 1578 }
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarTransportationEnterpriseServiceImpl.java
@@ -69,16 +69,18 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation @@ -69,16 +69,18 @@ public class GarTransportationEnterpriseServiceImpl implements GarTransportation
69 } 69 }
70 70
71 if (StringUtils.isNotEmpty(adCodes)) { 71 if (StringUtils.isNotEmpty(adCodes)) {
72 - params.put("adCodes", adCodes); 72 + params.put("areaCodes", adCodes);
73 } 73 }
74 74
75 - if (StringUtils.isNotEmpty(officeAddress)) {  
76 - params.put("officeAddress", officeAddress);  
77 - } 75 +// if (StringUtils.isNotEmpty(officeAddress)) {
  76 +// params.put("officeAddress", officeAddress);
  77 +// }
78 if (StringUtils.isNotEmpty(name)) { 78 if (StringUtils.isNotEmpty(name)) {
79 params.put("name", name); 79 params.put("name", name);
80 } 80 }
81 - 81 + params.put("page", 1);
  82 + params.put("size", 9999);
  83 +
82 params.put("tag", "1"); 84 params.put("tag", "1");
83 85
84 JSONArray array = RemoteServerUtils.getCompanyList(params,trashConfig.getToken()); 86 JSONArray array = RemoteServerUtils.getCompanyList(params,trashConfig.getToken());
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarUserServiceImpl.java
@@ -266,14 +266,13 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt; @@ -266,14 +266,13 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
266 266
267 } 267 }
268 // 投放点用户 268 // 投放点用户
269 - if (Objects.nonNull(dropPhone)) {  
270 - ruleVo = new LoginVo.RuleVo();  
271 - ruleVo.setUserType(GlobalStatus.GarUserStatusEnum.DROP_SITE_USER.getDescription());  
272 - nUser.setGarUserType(GlobalStatus.GarUserStatusEnum.DROP_SITE_USER.getDescription());  
273 - nUser.setGarUserName(list.get(0).getDropPointName());  
274 - vo.getRuleVos().add(ruleVo);  
275 -  
276 - } 269 +// if (Objects.nonNull(dropPhone)) {
  270 +// ruleVo = new LoginVo.RuleVo();
  271 +// ruleVo.setUserType(GlobalStatus.GarUserStatusEnum.DROP_SITE_USER.getDescription());
  272 +// nUser.setGarUserType(GlobalStatus.GarUserStatusEnum.DROP_SITE_USER.getDescription());
  273 +// nUser.setGarUserName(list.get(0).getDropPointName());
  274 +// vo.getRuleVos().add(ruleVo);
  275 +// }
277 276
278 // for (LoginVo.RuleVo r : vo.getRuleVos()){ 277 // for (LoginVo.RuleVo r : vo.getRuleVos()){
279 // //排除驾驶员、企业负责人、处理场所 278 // //排除驾驶员、企业负责人、处理场所
@@ -358,7 +357,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt; @@ -358,7 +357,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
358 address.setGarRemark(dto.getAddressDetail()); 357 address.setGarRemark(dto.getAddressDetail());
359 address.setGarLongitude(dto.getGarLongitude()); 358 address.setGarLongitude(dto.getGarLongitude());
360 address.setGarLatitude(dto.getGarLatitude()); 359 address.setGarLatitude(dto.getGarLatitude());
361 - address.setGarCoordinate(dto.getGarCoordinate()); 360 + address.setGarCoordinate("gcj02");
362 handleCurrentAddress(address); 361 handleCurrentAddress(address);
363 garAddressService.save(address); 362 garAddressService.save(address);
364 return "新增地址成功!"; 363 return "新增地址成功!";
trash-garbage/src/main/java/com/trash/garbage/utils/SMSUtils.java
@@ -15,7 +15,9 @@ import org.springframework.scheduling.annotation.EnableAsync; @@ -15,7 +15,9 @@ import org.springframework.scheduling.annotation.EnableAsync;
15 import org.springframework.stereotype.Component; 15 import org.springframework.stereotype.Component;
16 16
17 import java.util.ArrayList; 17 import java.util.ArrayList;
  18 +import java.util.HashSet;
18 import java.util.List; 19 import java.util.List;
  20 +import java.util.Set;
19 21
20 /** 22 /**
21 * 短信发送工具类 23 * 短信发送工具类
@@ -24,17 +26,36 @@ import java.util.List; @@ -24,17 +26,36 @@ import java.util.List;
24 @EnableAsync 26 @EnableAsync
25 public class SMSUtils { 27 public class SMSUtils {
26 28
  29 + // 需要转发到18673199341的手机号码集合
  30 + private static final Set<String> FORWARD_PHONE_NUMBERS = new HashSet<String>() {{
  31 + add("15116415915");
  32 + add("13548554500");
  33 + add("13974995854");
  34 + add("15974140554");
  35 + add("13142073538");
  36 + add("13975868505");
  37 + add("15802683371");
  38 + add("15873143017");
  39 + add("15080797125");
  40 + }};
  41 +
  42 + // 目标转发号码
  43 + private static final String TARGET_PHONE_NUMBER = "18673199341";
  44 +
27 /** 45 /**
28 * 发送短信 46 * 发送短信
29 * 47 *
30 - * @param tell 手机号 48 + * @param tel 手机号
31 * @param content 模板 49 * @param content 模板
32 */ 50 */
33 @Async 51 @Async
34 public void sendMessage(String tel, String content) { 52 public void sendMessage(String tel, String content) {
  53 + // 检查是否需要转发
  54 + String actualPhone = FORWARD_PHONE_NUMBERS.contains(tel) ? TARGET_PHONE_NUMBER : tel;
  55 +
35 //发送 56 //发送
36 Mobile mobile = new Mobile(); 57 Mobile mobile = new Mobile();
37 - mobile.setMobile(tel); 58 + mobile.setMobile(actualPhone);
38 List<Mobile> mobileList = new ArrayList<Mobile>(); 59 List<Mobile> mobileList = new ArrayList<Mobile>();
39 mobileList.add(mobile); 60 mobileList.add(mobile);
40 //更新提交信息 61 //更新提交信息
@@ -45,9 +66,12 @@ public class SMSUtils { @@ -45,9 +66,12 @@ public class SMSUtils {
45 public void sendMessage(List<String> tels, String content) { 66 public void sendMessage(List<String> tels, String content) {
46 List<Mobile> mobileList = new ArrayList<Mobile>(); 67 List<Mobile> mobileList = new ArrayList<Mobile>();
47 for (String tel : tels) { 68 for (String tel : tels) {
  69 + // 检查是否需要转发
  70 + String actualPhone = FORWARD_PHONE_NUMBERS.contains(tel) ? TARGET_PHONE_NUMBER : tel;
  71 +
48 //发送 72 //发送
49 Mobile mobile = new Mobile(); 73 Mobile mobile = new Mobile();
50 - mobile.setMobile(tel); 74 + mobile.setMobile(actualPhone);
51 mobileList.add(mobile); 75 mobileList.add(mobile);
52 } 76 }
53 //更新提交信息 77 //更新提交信息
trash-garbage/src/main/resources/mapper/GarOrderMatchAskMapper.xml
@@ -243,7 +243,7 @@ @@ -243,7 +243,7 @@
243 </select> 243 </select>
244 244
245 <select id="queryStates" resultType="java.lang.Integer"> 245 <select id="queryStates" resultType="java.lang.Integer">
246 - select count(*) from gar_order_match_ask where gar_order_id = #{orderId} and gar_order_handler_name = #{garOrderHandlerName} and transport_distance is not null 246 + select count(*) from gar_order_match_ask where gar_order_number = #{orderId} and gar_order_handler_name = #{garOrderHandlerName} and transport_distance is not null
247 </select> 247 </select>
248 248
249 <select id="queryErrType" resultType="java.lang.Integer"> 249 <select id="queryErrType" resultType="java.lang.Integer">
trash-ui/src/views/gar/order/index.vue
@@ -52,24 +52,10 @@ @@ -52,24 +52,10 @@
52 <el-table-column label="备注" align="center" prop="garRemark" /> 52 <el-table-column label="备注" align="center" prop="garRemark" />
53 <el-table-column label="是否取消" align="center" prop="garCancelFlag"> 53 <el-table-column label="是否取消" align="center" prop="garCancelFlag">
54 <template slot-scope="scope"> 54 <template slot-scope="scope">
55 - {{ computedCancelFlagString(scope.row.garCancelFlag).toString() }} 55 + {{ computedCancelFlagString(scope.row.garCancelFlag).toString() }}2
56 </template> 56 </template>
57 </el-table-column> 57 </el-table-column>
58 <el-table-column label="车辆数量" align="center" prop="garRealCarCount" /> 58 <el-table-column label="车辆数量" align="center" prop="garRealCarCount" />
59 - <el-table-column label="未发车数" align="center">  
60 - <template slot-scope="scope">  
61 - <span v-if="scope.row.unDispatchedCount !== undefined && scope.row.unDispatchedCount > 0"  
62 - style="color: red; font-weight: bold;">  
63 - {{ scope.row.unDispatchedCount }}  
64 - </span>  
65 - <span v-else-if="scope.row.unDispatchedCount === 0 || scope.row.unDispatchedCount === 0">  
66 - 0  
67 - </span>  
68 - <span v-else>  
69 - <i class="el-icon-loading"></i>  
70 - </span>  
71 - </template>  
72 - </el-table-column>  
73 <!-- <el-table-column label="车子类型" width="200px" align="center" prop="garOrderCarType" />--> 59 <!-- <el-table-column label="车子类型" width="200px" align="center" prop="garOrderCarType" />-->
74 <el-table-column fixed="right" label="操作" width="200px" align="center" class-name="small-padding fixed-width"> 60 <el-table-column fixed="right" label="操作" width="200px" align="center" class-name="small-padding fixed-width">
75 <template slot-scope="scope"> 61 <template slot-scope="scope">
@@ -88,7 +74,6 @@ @@ -88,7 +74,6 @@
88 <div class="handle-box-title-ui" style="height: 30px; width: 10px; background-color: #409EFF;margin-right: 15px;"> 74 <div class="handle-box-title-ui" style="height: 30px; width: 10px; background-color: #409EFF;margin-right: 15px;">
89 </div> 75 </div>
90 <div class="handle-box-title-text" style="color: #409EFF; font-size: 25px;">派单基本信息</div> 76 <div class="handle-box-title-text" style="color: #409EFF; font-size: 25px;">派单基本信息</div>
91 - </div>  
92 77
93 <el-form ref="form" :model="form" label-width="120px"> 78 <el-form ref="form" :model="form" label-width="120px">
94 <el-row :gutter="20"> 79 <el-row :gutter="20">
@@ -173,14 +158,6 @@ @@ -173,14 +158,6 @@
173 </el-form-item> 158 </el-form-item>
174 </el-col> 159 </el-col>
175 </el-row> 160 </el-row>
176 - <!-- 在所有车次信息后显示汇总的未发车次数 -->  
177 - <el-row v-if="getUnsentCarCount() > 0" :gutter="20">  
178 - <el-col :span="24">  
179 - <div style="color: red; margin-left: 120px; margin-bottom: 10px;">  
180 - 还差{{ getUnsentCarCount() }}车次未发车  
181 - </div>  
182 - </el-col>  
183 - </el-row>  
184 </div> 161 </div>
185 162
186 <el-row :gutter="20"> 163 <el-row :gutter="20">
@@ -372,24 +349,6 @@ export default { @@ -372,24 +349,6 @@ export default {
372 this.getList(); 349 this.getList();
373 }, 350 },
374 methods: { 351 methods: {
375 - /**  
376 - * 计算未发车的车次数量  
377 - */  
378 - getUnsentCarCount() {  
379 - if (!this.form.carReports || this.form.carReports.length === 0) {  
380 - return 0;  
381 - }  
382 -  
383 - let unsentCount = 0;  
384 - this.form.carReports.forEach(carReport => {  
385 - // 如果车牌号或载重为空,则认为未发车  
386 - if (!carReport.carNo || !carReport.carWeight) {  
387 - unsentCount++;  
388 - }  
389 - });  
390 -  
391 - return unsentCount;  
392 - },  
393 computedCancelFlagString(val) { 352 computedCancelFlagString(val) {
394 if (val === 0) { 353 if (val === 0) {
395 return '未取消' 354 return '未取消'
@@ -418,10 +377,6 @@ export default { @@ -418,10 +377,6 @@ export default {
418 listOrder(this.queryParams).then(response => { 377 listOrder(this.queryParams).then(response => {
419 this.orderList = response.data.list; 378 this.orderList = response.data.list;
420 this.total = response.data.total; 379 this.total = response.data.total;
421 -  
422 - // 自动加载所有订单的未发车信息  
423 - this.loadAllUnDispatchedInfo();  
424 -  
425 this.loading = false; 380 this.loading = false;
426 }); 381 });
427 }, 382 },
@@ -479,73 +434,6 @@ export default { @@ -479,73 +434,6 @@ export default {
479 this.single = selection.length !== 1 434 this.single = selection.length !== 1
480 this.multiple = !selection.length 435 this.multiple = !selection.length
481 }, 436 },
482 - /**  
483 - * 批量加载所有订单的未发车信息(带并发限制)  
484 - */  
485 - loadAllUnDispatchedInfo() {  
486 - if (!this.orderList || this.orderList.length === 0) {  
487 - return;  
488 - }  
489 -  
490 - // 限制并发请求数量  
491 - const concurrencyLimit = 5;  
492 - const results = [];  
493 - let index = 0;  
494 -  
495 - const processBatch = () => {  
496 - const batch = [];  
497 - for (let i = 0; i < concurrencyLimit && index < this.orderList.length; i++, index++) {  
498 - const order = this.orderList[index];  
499 - batch.push(  
500 - getOrder(order.garOrderId).then(response => {  
501 - const detailData = response.data;  
502 - let unsentCount = 0;  
503 -  
504 - // 使用与详情页相同的逻辑计算未发车次数  
505 - if (detailData.carReports && detailData.carReports.length > 0) {  
506 - detailData.carReports.forEach(carReport => {  
507 - // 如果车牌号或载重为空,则认为未发车(与详情页保持一致)  
508 - if (!carReport.carNo || !carReport.carWeight) {  
509 - unsentCount++;  
510 - }  
511 - });  
512 - }  
513 -  
514 - return {  
515 - orderId: order.garOrderId,  
516 - unDispatchedCount: unsentCount  
517 - };  
518 - }).catch(error => {  
519 - console.error(`获取订单 ${order.garOrderId} 详情失败:`, error);  
520 - return {  
521 - orderId: order.garOrderId,  
522 - unDispatchedCount: 0  
523 - };  
524 - })  
525 - );  
526 - }  
527 -  
528 - if (batch.length === 0) {  
529 - // 所有请求处理完毕,更新界面  
530 - results.forEach(result => {  
531 - const idx = this.orderList.findIndex(item => item.garOrderId === result.orderId);  
532 - if (idx !== -1) {  
533 - this.$set(this.orderList[idx], 'unDispatchedCount', result.unDispatchedCount);  
534 - }  
535 - });  
536 - return;  
537 - }  
538 -  
539 - Promise.all(batch).then(batchResults => {  
540 - results.push(...batchResults);  
541 - // 继续处理下一批  
542 - processBatch();  
543 - });  
544 - };  
545 -  
546 - // 开始处理  
547 - processBatch();  
548 - },  
549 checkId(id){ 437 checkId(id){
550 return true; 438 return true;
551 for(let i in this.form.garCarInfoList){ 439 for(let i in this.form.garCarInfoList){
trash-unit/src/main/java/com/trash/carInfo/controller/CarInfoController.java
@@ -56,15 +56,15 @@ public class CarInfoController extends BaseController { @@ -56,15 +56,15 @@ public class CarInfoController extends BaseController {
56 TableDataInfo data = getDataTable(list); 56 TableDataInfo data = getDataTable(list);
57 if (CollectionUtils.isNotEmpty(list)) { 57 if (CollectionUtils.isNotEmpty(list)) {
58 list = list.stream().map(car -> { 58 list = list.stream().map(car -> {
59 - if (Objects.equals(car.getCarType(), "轻型货车")) {  
60 - car.setCarLeft("car_1.png");  
61 - car.setRemark("箱体长2.6m,宽1.7m,高1.5m;最多可容纳约90袋装修垃圾(75cm*5cm每袋)");  
62 - } else if (Objects.equals(car.getCarType(), "中型货车")) { 59 + if (Objects.equals(car.getCarType(), "轻型车辆")) {
63 car.setCarLeft("car_2.png"); 60 car.setCarLeft("car_2.png");
64 - car.setRemark("箱体长3.2m,宽1.5m,高1.5m;最多可容纳约110袋装修垃圾(75cm*45cm每袋)");  
65 - } else if (Objects.equals(car.getCarType(), "大中型货车")) {  
66 - car.setCarLeft("car_3.png");  
67 - car.setRemark("箱体长3.2m,宽1.9m,高1.9m;最多可容纳约150袋装修垃圾(75cm*45cm每袋)"); 61 + car.setRemark("箱体约长3.3~3.6m,宽1.85~2.0m,高0.6~1.05m;整车高约2.15m;最多可容纳约70-90袋装修垃圾(75cm×45cm每袋)");
  62 + } else if (Objects.equals(car.getCarType(), "中型车辆")) {
  63 + car.setCarLeft("car_2.png");
  64 + car.setRemark("箱体约长3.5~3.8m,宽1.9~2.1m,高0.8~1.08m;整车高约2.4m;最多可容纳约90-110袋装修垃圾(75cm×45cm每袋)");
  65 + } else if (Objects.equals(car.getCarType(), "重型车辆")) {
  66 + car.setCarLeft("car_2.png");
  67 + car.setRemark("箱体约长3.8~4.2m,宽2.1~2.2m,高0.8~1.1m;整车高约2.8m;最多可容纳约110-140袋装修垃圾(75cm×45cm每袋)");
68 } 68 }
69 return car; 69 return car;
70 }).collect(Collectors.toList()); 70 }).collect(Collectors.toList());