Commit 6fc2d6378e65210e0401c51da98821be86dee27d
1 parent
169cdb34
调整-12-09
Showing
13 changed files
with
342 additions
and
218 deletions
trash-admin/src/main/resources/static/type-guide.png
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
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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarOrderMapper, GarOrder> |
| 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<GarUserMapper, GarUser> |
| 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<GarUserMapper, GarUser> |
| 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()); | ... | ... |