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 5 import com.alibaba.fastjson.JSON;
6 6 import com.alibaba.fastjson.JSONArray;
7 7 import com.alibaba.fastjson.JSONObject;
  8 +import com.baomidou.mybatisplus.extension.api.R;
8 9 import com.github.pagehelper.PageInfo;
9 10 import com.trash.carInfo.domain.CarDriverRelation;
10 11 import com.trash.carInfo.domain.CarInfo;
... ... @@ -16,9 +17,11 @@ import com.trash.driver.domain.Driver;
16 17 import com.trash.driver.domain.vo.DriverVo;
17 18 import com.trash.driver.service.IDriverService;
18 19 import com.trash.enterprise.domain.TransportationEnterprise;
  20 +import com.trash.garbage.global.Result;
19 21 import com.trash.garbage.pojo.dto.GarCarInfoVo;
20 22 import com.trash.garbage.service.GarCarServer;
21 23 //import javafx.scene.controlra.SplitPane;
  24 +import com.trash.garbage.utils.HttpUtil;
22 25 import lombok.extern.slf4j.Slf4j;
23 26 import org.apache.commons.collections4.CollectionUtils;
24 27 import org.apache.commons.lang3.StringUtils;
... ... @@ -31,6 +34,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
31 34 import org.springframework.web.bind.annotation.RestController;
32 35  
33 36 import java.text.ParseException;
  37 +import java.text.SimpleDateFormat;
34 38 import java.util.*;
35 39 import java.util.stream.Collectors;
36 40  
... ... @@ -54,6 +58,119 @@ public class GarCarController {
54 58 public GarCarController(CarInfoServiceImpl carInfoServiceImpl) {
55 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 174 @PostMapping("/list/group/by/carType")
58 175 public TableDataInfo listGroupByCarTypePost(GarCarInfoVo carInfo) throws ParseException{
59 176 return listGroupByCarType(carInfo);
... ... @@ -68,15 +185,15 @@ public class GarCarController {
68 185 TableDataInfo data = getDataTable(list);
69 186 if (CollectionUtils.isNotEmpty(list)) {
70 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 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 198 return car;
82 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 import com.alibaba.fastjson.JSON;
7 7 import com.baomidou.mybatisplus.annotation.TableField;
8 8 import com.github.pagehelper.PageHelper;
  9 +import com.github.pagehelper.PageInfo;
9 10 import com.trash.carInfo.domain.vo.CarInfoVo;
10 11 import com.trash.common.annotation.Log;
11 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 111  
112 112 public Integer getSortValue() {
113 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 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 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 119 sortValue = 3;
120 120 } else {
121 121 sortValue = Integer.MAX_VALUE;
... ...
trash-garbage/src/main/java/com/trash/garbage/service/GarCarServer.java
... ... @@ -11,4 +11,6 @@ public interface GarCarServer {
11 11 List<GarCarInfoVo> requestGarCarInfoVo(String companId);
12 12  
13 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 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 105 @Override
48 106 public List<GarCarInfoVo> requestGarCarInfoVo(String companId) {
49 107 String json = requestStr(companId);
... ... @@ -67,7 +125,17 @@ public class GarCarServerImpl implements GarCarServer {
67 125 vo.setCarCode(jsonObject.getString("licenseplateNo"));
68 126 vo.setCarColor(jsonObject.getString(""));
69 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 139 if (Objects.nonNull(jsonObject.getString("companyID"))) {
72 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 17 import com.trash.carInfo.domain.vo.CarInfoVo;
18 18 import com.trash.carInfo.mapper.CarInfoMapper;
19 19 import com.trash.carInfo.service.impl.CarInfoServiceImpl;
  20 +import com.trash.common.config.trashConfig;
20 21 import com.trash.common.core.redis.RedisCache;
21 22 import com.trash.common.utils.RemoteServerUtils;
22 23 import com.trash.common.utils.SecurityUtils;
... ... @@ -130,7 +131,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
130 131 @Autowired
131 132 private IDropPointInfoService dropPointInfoService;
132 133 @Autowired
133   - private com.trash.common.config.trashConfig trashConfig;
  134 + private trashConfig trashConfig;
134 135 @Autowired
135 136 private GarOrderMatchAskMapper garOrderMatchAskMapper;
136 137 @Autowired
... ... @@ -246,7 +247,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
246 247 String garCreateBy = image.getGarCreateBy();
247 248 GarUser byId = garUserService.getById(garCreateBy);
248 249 String garUserName = byId.getGarUserName();
249   - int state = askService.queryStates(orderId, garUserName);
  250 + int state = askService.queryStates(image.getGarOrderAskId(), garUserName);
250 251 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state);
251 252 }
252 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 317 String garCreateBy = image.getGarCreateBy();
317 318 GarUser byId = garUserService.getById(garCreateBy);
318 319 String garUserName = byId.getGarUserName();
319   - int state = askService.queryStates(id, garUserName);
  320 + int state = askService.queryStates(image.getGarOrderAskId(), garUserName);
320 321 vo.getPutOnImages().add(image.getGarOrderImageUrl() + imageDate + "name" + garUserName + state);
321 322 }
322 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 607 .set(GarOrder::getGarOrderCompanyUserId, user.getGarUserId());
607 608 update(uw);
608 609 // TODO 短信提醒
609   - String message = "订单提醒:您的预约清运订单" + order.getGarOrderId() + "已被" + order.getGarOrderCompanyName() + "公司接收,详情请登录【智慧渣管APP】查看!企业服务电话!";
  610 + String message = "订单提醒:您的预约清运订单" + order.getGarOrderId() + "已被" + order.getGarOrderCompanyName() + "公司接收,详情请登录【智慧渣管APP】查看!企业服务电话:" + order.getGarOrderCompanyTel();
610 611 smsUtils.sendMessage(order.getGarOrderContactTel(), message);
611 612 // TODO 用户消息通知 订单菜单消息
612 613 userOrderMessageSend(order, message);
... ... @@ -686,14 +687,13 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
686 687 garOrderMatchAsk.setDisposalId(disposalList.get(0).getGarOrderDisposalCompanyId());
687 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 691 if (!dropPointInfoList.isEmpty()) {
692 692  
693 693 garOrderMatchAsk.setDropPointId(Integer.parseInt(dropPointInfoList.get(0).getId().toString()));
694 694 garOrderMatchAsk.setDropPointName(dropPointInfoList.get(0).getDropPointName());
695 695 }
696   - garOrderMatchAsk.setDropAddress(order.getGarOrderAddress()+order.getGarOrderAddressDetails());
  696 + garOrderMatchAsk.setDropAddress(order.getGarOrderAddress() + order.getGarOrderAddressDetails());
697 697 garOrderMatchAsk.setGarCreateBy(dto.getDriver());
698 698 askService.save(garOrderMatchAsk);
699 699 }
... ... @@ -1001,6 +1001,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1001 1001 }
1002 1002  
1003 1003  
  1004 + // ... existing code ...
1004 1005 @Override
1005 1006 public PageInfo dockingUpEnterpriseList(TransportationEnterprise dto) {
1006 1007 // 1)支持选择企业"所属区域"(长沙市内的)展示区域内所有企业
... ... @@ -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 1062 // 修改这里,将name参数传递给request方法
1055 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 1069 }
1062 1070  
1063 1071 // saveOrUpdate(list);
1064   - Integer pageNum = ServletUtils.getParameterToInt("pageNum");
1065   - Integer pageSize = ServletUtils.getParameterToInt("pageSize");
1066 1072 Integer orderByColumn = ServletUtils.getParameterToInt("orderByColumn");
1067 1073 Comparator<TransportationEnterpriseVo> comparator;
1068 1074 if (1 == orderByColumn) {
... ... @@ -1091,7 +1097,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1091 1097 .eq(GarAddress::getGarUserDefault, GlobalStatus.GarAddressStatus.CURRENT_ADDRESS.getValue());
1092 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 1101 TransportationEnterpriseVo vo = new TransportationEnterpriseVo();
1096 1102 BeanUtils.copyProperties(item, vo);
1097 1103 List<GarOrderEvaluate> evaluate = evaluateMap.get(String.valueOf(item.getId()));
... ... @@ -1099,25 +1105,22 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1099 1105 handleScore(vo, evaluate);
1100 1106 handleDistance(vo, address);
1101 1107 return vo;
1102   - });
1103   - List<TransportationEnterpriseVo> voList;
  1108 + }).collect(Collectors.toList());
  1109 +
  1110 + // 排序
1104 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 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 1120 return pageInfo;
1120 1121 }
  1122 +// ... existing code ...
  1123 +
1121 1124  
1122 1125 private void saveOrUpdate(List<TransportationEnterprise> list) {
1123 1126 if (CollectionUtils.isNotEmpty(list)) {
... ... @@ -1264,14 +1267,21 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1264 1267 // updateById(order);
1265 1268  
1266 1269 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber();
  1270 + log.error("请求司机信息:{}" + tel);
1267 1271  
1268 1272 List<TransportationEnterprise> enterprises = garTransportationEnterpriseService.request(tel, null, null, null);
1269 1273 if (CollectionUtils.isEmpty(enterprises)) {
  1274 + log.error("请求司机信息失败1" + tel);
1270 1275 return Collections.emptyList();
1271 1276 }
1272 1277 enterprises = enterprises.stream().filter(e -> Objects.equals(e.getServicePhone(), tel)).collect(Collectors.toList());
1273 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 1286 List<GarOrderMatchHandler> garOrderCars = garOrderCarService.queryGarOrderMatchHandler(orderId);
1277 1287 int garOrderCarsLength = CollectionUtils.size(garOrderCars);
... ... @@ -1296,20 +1306,29 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
1296 1306 }
1297 1307 return vo;
1298 1308 }).collect(Collectors.toList());
  1309 + log.error("请求司机信息数据集2" + voList);
1299 1310 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>();
1300 1311 qwc.eq(GarOrderCar::getGarOrderId, orderId);
1301 1312  
1302 1313 List<GarOrderCar> carList = garOrderCarService.list(qwc);
1303 1314 if (CollectionUtils.isNotEmpty(carList)) {
1304 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 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 1532 qw.eq(GarOrderMatchAsk::getGarCarCode, dto.getGarHandlerCarCode());
1514 1533 List<GarOrderMatchAsk> askList = askService.list(qw);
1515 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 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 69 }
70 70  
71 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 78 if (StringUtils.isNotEmpty(name)) {
79 79 params.put("name", name);
80 80 }
81   -
  81 + params.put("page", 1);
  82 + params.put("size", 9999);
  83 +
82 84 params.put("tag", "1");
83 85  
84 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 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 277 // for (LoginVo.RuleVo r : vo.getRuleVos()){
279 278 // //排除驾驶员、企业负责人、处理场所
... ... @@ -358,7 +357,7 @@ public class GarUserServiceImpl extends ServiceImpl&lt;GarUserMapper, GarUser&gt;
358 357 address.setGarRemark(dto.getAddressDetail());
359 358 address.setGarLongitude(dto.getGarLongitude());
360 359 address.setGarLatitude(dto.getGarLatitude());
361   - address.setGarCoordinate(dto.getGarCoordinate());
  360 + address.setGarCoordinate("gcj02");
362 361 handleCurrentAddress(address);
363 362 garAddressService.save(address);
364 363 return "新增地址成功!";
... ...
trash-garbage/src/main/java/com/trash/garbage/utils/SMSUtils.java
... ... @@ -15,7 +15,9 @@ import org.springframework.scheduling.annotation.EnableAsync;
15 15 import org.springframework.stereotype.Component;
16 16  
17 17 import java.util.ArrayList;
  18 +import java.util.HashSet;
18 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 26 @EnableAsync
25 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 49 * @param content 模板
32 50 */
33 51 @Async
34 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 57 Mobile mobile = new Mobile();
37   - mobile.setMobile(tel);
  58 + mobile.setMobile(actualPhone);
38 59 List<Mobile> mobileList = new ArrayList<Mobile>();
39 60 mobileList.add(mobile);
40 61 //更新提交信息
... ... @@ -45,9 +66,12 @@ public class SMSUtils {
45 66 public void sendMessage(List<String> tels, String content) {
46 67 List<Mobile> mobileList = new ArrayList<Mobile>();
47 68 for (String tel : tels) {
  69 + // 检查是否需要转发
  70 + String actualPhone = FORWARD_PHONE_NUMBERS.contains(tel) ? TARGET_PHONE_NUMBER : tel;
  71 +
48 72 //发送
49 73 Mobile mobile = new Mobile();
50   - mobile.setMobile(tel);
  74 + mobile.setMobile(actualPhone);
51 75 mobileList.add(mobile);
52 76 }
53 77 //更新提交信息
... ...
trash-garbage/src/main/resources/mapper/GarOrderMatchAskMapper.xml
... ... @@ -243,7 +243,7 @@
243 243 </select>
244 244  
245 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 247 </select>
248 248  
249 249 <select id="queryErrType" resultType="java.lang.Integer">
... ...
trash-ui/src/views/gar/order/index.vue
... ... @@ -52,24 +52,10 @@
52 52 <el-table-column label="备注" align="center" prop="garRemark" />
53 53 <el-table-column label="是否取消" align="center" prop="garCancelFlag">
54 54 <template slot-scope="scope">
55   - {{ computedCancelFlagString(scope.row.garCancelFlag).toString() }}
  55 + {{ computedCancelFlagString(scope.row.garCancelFlag).toString() }}2
56 56 </template>
57 57 </el-table-column>
58 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 59 <!-- <el-table-column label="车子类型" width="200px" align="center" prop="garOrderCarType" />-->
74 60 <el-table-column fixed="right" label="操作" width="200px" align="center" class-name="small-padding fixed-width">
75 61 <template slot-scope="scope">
... ... @@ -88,7 +74,6 @@
88 74 <div class="handle-box-title-ui" style="height: 30px; width: 10px; background-color: #409EFF;margin-right: 15px;">
89 75 </div>
90 76 <div class="handle-box-title-text" style="color: #409EFF; font-size: 25px;">派单基本信息</div>
91   - </div>
92 77  
93 78 <el-form ref="form" :model="form" label-width="120px">
94 79 <el-row :gutter="20">
... ... @@ -173,14 +158,6 @@
173 158 </el-form-item>
174 159 </el-col>
175 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 161 </div>
185 162  
186 163 <el-row :gutter="20">
... ... @@ -372,24 +349,6 @@ export default {
372 349 this.getList();
373 350 },
374 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 352 computedCancelFlagString(val) {
394 353 if (val === 0) {
395 354 return '未取消'
... ... @@ -418,10 +377,6 @@ export default {
418 377 listOrder(this.queryParams).then(response => {
419 378 this.orderList = response.data.list;
420 379 this.total = response.data.total;
421   -
422   - // 自动加载所有订单的未发车信息
423   - this.loadAllUnDispatchedInfo();
424   -
425 380 this.loading = false;
426 381 });
427 382 },
... ... @@ -479,73 +434,6 @@ export default {
479 434 this.single = selection.length !== 1
480 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 437 checkId(id){
550 438 return true;
551 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 56 TableDataInfo data = getDataTable(list);
57 57 if (CollectionUtils.isNotEmpty(list)) {
58 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 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 69 return car;
70 70 }).collect(Collectors.toList());
... ...