Commit 4fccb519780f88e9d36b0df1394aa283183450ee
1 parent
10c0daf3
feat: 用户修改车辆信息
Showing
26 changed files
with
363 additions
and
129 deletions
trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
| ... | ... | @@ -18,7 +18,6 @@ import com.trash.garbage.custom.BizException; |
| 18 | 18 | import com.trash.garbage.global.Result; |
| 19 | 19 | import com.trash.garbage.global.ResultCode; |
| 20 | 20 | import com.trash.garbage.pojo.domain.GarOrder; |
| 21 | -import com.trash.garbage.pojo.domain.GarOrderMatchAsk; | |
| 22 | 21 | import com.trash.garbage.pojo.dto.*; |
| 23 | 22 | import com.trash.garbage.pojo.vo.GarOrderMatchAskVo; |
| 24 | 23 | import com.trash.garbage.pojo.vo.OrderDetailTransportVo; |
| ... | ... | @@ -78,6 +77,10 @@ public class GarbageOrderController { |
| 78 | 77 | return Result.OK(garOrderService.queryOrderDetail(id)); |
| 79 | 78 | } |
| 80 | 79 | |
| 80 | + @GetMapping("/handler/qrCode/{orderId}") | |
| 81 | + public Result<String> createHandlerQrCode(@PathVariable("orderId") String orderId) { | |
| 82 | + return Result.OK(garOrderService.createHandlerQrCode(orderId)); | |
| 83 | + } | |
| 81 | 84 | |
| 82 | 85 | @GetMapping("/detail/transport/{id}") |
| 83 | 86 | public Result<OrderDetailTransportVo> queryOrderTransportDetail(@PathVariable("id") String id) { | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/global/GlobalStatus.java
| ... | ... | @@ -91,8 +91,8 @@ public class GlobalStatus { |
| 91 | 91 | ALL_ORDER(2, "全部订单"), |
| 92 | 92 | SUCCESS_ORDER(3, "已完成"), |
| 93 | 93 | FAIL_ORDER(9, "订单处理失败"), |
| 94 | - MATCH_NO(0,"未分配"), | |
| 95 | - MATCH_YES(1,"已分配"), | |
| 94 | + SCAN_HANDLER_NO(0,"未扫码处理"), | |
| 95 | + SCAN_HANDLER_YES(1,"已扫码处理"), | |
| 96 | 96 | DISPATCH_HANDLE_NEW(0,"未接受"), |
| 97 | 97 | DISPATCH_HANDLE_ACTIVE(1,"已接受"), |
| 98 | 98 | DISPATCH_HANDLE_SUCCESS(3,"已完成"), | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/mapper/GarOrderMapper.java
| ... | ... | @@ -26,7 +26,7 @@ public interface GarOrderMapper extends BaseMapper<GarOrder> { |
| 26 | 26 | |
| 27 | 27 | List<GarOrderDisposalVo> queryDisposalOrderListByTelWithType(@Param("garUserTel") String garUserTel, @Param("type") Integer type, @Param("cancelFlag") Integer value); |
| 28 | 28 | |
| 29 | - ScanDriverDetailVo queryDriverDetailByTelWithOrderId(@Param("garUserTel") String tel,@Param("orderId") String orderId); | |
| 29 | + ScanDriverDetailVo queryDriverDetailByTelWithOrderId(@Param("orderId") String orderId,@Param("userId") String userId); | |
| 30 | 30 | |
| 31 | 31 | OrderDetailTransportVo queryOrderTransportDetail(@Param("orderId") String id); |
| 32 | 32 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/mapper/mapper/GarOrderMatchDisposalMapper.java
| ... | ... | @@ -15,7 +15,7 @@ import java.util.List; |
| 15 | 15 | */ |
| 16 | 16 | public interface GarOrderMatchDisposalMapper extends BaseMapper<GarOrderMatchDisposal> { |
| 17 | 17 | |
| 18 | - List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(@Param("orderId") String orderId,@Param("companyId") Long id); | |
| 18 | + List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(@Param("orderId") String orderId); | |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrder.java
| ... | ... | @@ -56,6 +56,8 @@ public class GarOrder implements Serializable { |
| 56 | 56 | * 垃圾类型 |
| 57 | 57 | */ |
| 58 | 58 | private String garOrderTrashType; |
| 59 | + private String garOrderCompanyUserId; | |
| 60 | + | |
| 59 | 61 | |
| 60 | 62 | /** |
| 61 | 63 | * 订单人电话 |
| ... | ... | @@ -132,7 +134,7 @@ public class GarOrder implements Serializable { |
| 132 | 134 | /** |
| 133 | 135 | * 分配标识 |
| 134 | 136 | */ |
| 135 | - private Integer garOrderMatchFlag; | |
| 137 | + private Integer garOrderScanHandlerFlag; | |
| 136 | 138 | |
| 137 | 139 | /** |
| 138 | 140 | * 经度 |
| ... | ... | @@ -177,12 +179,12 @@ public class GarOrder implements Serializable { |
| 177 | 179 | } |
| 178 | 180 | |
| 179 | 181 | |
| 180 | - public Integer getGarOrderMatchFlag() { | |
| 181 | - return garOrderMatchFlag; | |
| 182 | + public Integer getGarOrderScanHandlerFlag() { | |
| 183 | + return garOrderScanHandlerFlag; | |
| 182 | 184 | } |
| 183 | 185 | |
| 184 | - public void setGarOrderMatchFlag(Integer garOrderMatchFlag) { | |
| 185 | - this.garOrderMatchFlag = garOrderMatchFlag; | |
| 186 | + public void setGarOrderScanHandlerFlag(Integer garOrderScanHandlerFlag) { | |
| 187 | + this.garOrderScanHandlerFlag = garOrderScanHandlerFlag; | |
| 186 | 188 | } |
| 187 | 189 | |
| 188 | 190 | public String getGarOrderId() { |
| ... | ... | @@ -423,4 +425,19 @@ public class GarOrder implements Serializable { |
| 423 | 425 | this.garRealCarCount = garRealCarCount; |
| 424 | 426 | } |
| 425 | 427 | |
| 428 | + public String getGarOrderCompanyUserId() { | |
| 429 | + return garOrderCompanyUserId; | |
| 430 | + } | |
| 431 | + | |
| 432 | + public void setGarOrderCompanyUserId(String garOrderCompanyUserId) { | |
| 433 | + this.garOrderCompanyUserId = garOrderCompanyUserId; | |
| 434 | + } | |
| 435 | + | |
| 436 | + public Boolean getGarInCarStore() { | |
| 437 | + return garInCarStore; | |
| 438 | + } | |
| 439 | + | |
| 440 | + public void setGarInCarStore(Boolean garInCarStore) { | |
| 441 | + this.garInCarStore = garInCarStore; | |
| 442 | + } | |
| 426 | 443 | } |
| 427 | 444 | \ No newline at end of file | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrderCar.java
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrderMatchAsk.java
| ... | ... | @@ -43,7 +43,7 @@ public class GarOrderMatchAsk implements Serializable { |
| 43 | 43 | * |
| 44 | 44 | */ |
| 45 | 45 | private String garOrderHandlerCompanyId; |
| 46 | - | |
| 46 | + private String garOrderContainerVolume; | |
| 47 | 47 | /** |
| 48 | 48 | * |
| 49 | 49 | */ |
| ... | ... | @@ -189,4 +189,12 @@ public class GarOrderMatchAsk implements Serializable { |
| 189 | 189 | public void setGarOrderHandlerId(String garOrderHandlerId) { |
| 190 | 190 | this.garOrderHandlerId = garOrderHandlerId; |
| 191 | 191 | } |
| 192 | + | |
| 193 | + public String getGarOrderContainerVolume() { | |
| 194 | + return garOrderContainerVolume; | |
| 195 | + } | |
| 196 | + | |
| 197 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 198 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 199 | + } | |
| 192 | 200 | } |
| 193 | 201 | \ No newline at end of file | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrderMatchHandler.java
| ... | ... | @@ -32,6 +32,7 @@ public class GarOrderMatchHandler implements Serializable { |
| 32 | 32 | * 处理人手机号 |
| 33 | 33 | */ |
| 34 | 34 | private String garOrderHandlerTel; |
| 35 | + private String garOrderContainerVolume; | |
| 35 | 36 | /** |
| 36 | 37 | * 处理人id |
| 37 | 38 | */ |
| ... | ... | @@ -117,6 +118,14 @@ public class GarOrderMatchHandler implements Serializable { |
| 117 | 118 | @TableField(exist = false) |
| 118 | 119 | private static final long serialVersionUID = 1L; |
| 119 | 120 | |
| 121 | + public String getGarOrderContainerVolume() { | |
| 122 | + return garOrderContainerVolume; | |
| 123 | + } | |
| 124 | + | |
| 125 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 126 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 127 | + } | |
| 128 | + | |
| 120 | 129 | public Integer getGarOrderStatus() { |
| 121 | 130 | return garOrderStatus; |
| 122 | 131 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/AskTransportDto.java
| ... | ... | @@ -22,6 +22,7 @@ public class AskTransportDto { |
| 22 | 22 | @NotBlank(message = "车牌号不能为空") |
| 23 | 23 | private String garHandlerCarCode; |
| 24 | 24 | private String garOrderHandlerName; |
| 25 | + private String garOrderContainerVolume; | |
| 25 | 26 | @NotBlank(message = "company不能为空") |
| 26 | 27 | private String garOrderHandlerCompanyId; |
| 27 | 28 | @NotBlank(message = "company不能为空") |
| ... | ... | @@ -112,4 +113,12 @@ public class AskTransportDto { |
| 112 | 113 | public void setGarOrderCompanyTel(String garOrderCompanyTel) { |
| 113 | 114 | this.garOrderCompanyTel = garOrderCompanyTel; |
| 114 | 115 | } |
| 116 | + | |
| 117 | + public String getGarOrderContainerVolume() { | |
| 118 | + return garOrderContainerVolume; | |
| 119 | + } | |
| 120 | + | |
| 121 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 122 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 123 | + } | |
| 115 | 124 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/DispatchDto.java
| ... | ... | @@ -15,11 +15,20 @@ public class DispatchDto { |
| 15 | 15 | @ToString |
| 16 | 16 | @EqualsAndHashCode |
| 17 | 17 | public static class DispatchDetail{ |
| 18 | + private String garOrderContainerVolume; | |
| 18 | 19 | private String carCode; |
| 19 | 20 | private String tel; |
| 20 | 21 | private String name; |
| 21 | 22 | private String id; |
| 22 | 23 | |
| 24 | + public String getGarOrderContainerVolume() { | |
| 25 | + return garOrderContainerVolume; | |
| 26 | + } | |
| 27 | + | |
| 28 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 29 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 30 | + } | |
| 31 | + | |
| 23 | 32 | public String getId() { |
| 24 | 33 | return id; |
| 25 | 34 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/OrderDto.java
| 1 | 1 | package com.trash.garbage.pojo.dto; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | +import lombok.EqualsAndHashCode; | |
| 5 | +import lombok.ToString; | |
| 4 | 6 | |
| 5 | 7 | import javax.validation.constraints.NotBlank; |
| 6 | 8 | import javax.validation.constraints.NotEmpty; |
| ... | ... | @@ -88,7 +90,8 @@ public class OrderDto { |
| 88 | 90 | |
| 89 | 91 | private List<CarInfo> garCarInfoList; |
| 90 | 92 | |
| 91 | - @Data | |
| 93 | + @ToString | |
| 94 | + @EqualsAndHashCode | |
| 92 | 95 | public static class CarInfo { |
| 93 | 96 | /** |
| 94 | 97 | * 车辆数量 |
| ... | ... | @@ -115,6 +118,7 @@ public class OrderDto { |
| 115 | 118 | public void setGarOrderCarType(String garOrderCarType) { |
| 116 | 119 | this.garOrderCarType = garOrderCarType; |
| 117 | 120 | } |
| 121 | + | |
| 118 | 122 | } |
| 119 | 123 | |
| 120 | 124 | public List<CarInfo> getGarCarInfoList() { | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/OrderUpdateDto.java
| 1 | 1 | package com.trash.garbage.pojo.dto; |
| 2 | 2 | |
| 3 | 3 | import lombok.Data; |
| 4 | +import lombok.EqualsAndHashCode; | |
| 5 | +import lombok.ToString; | |
| 4 | 6 | |
| 5 | 7 | import java.util.List; |
| 6 | 8 | |
| 7 | 9 | /** |
| 8 | 10 | * @author 20412 |
| 9 | 11 | */ |
| 10 | -@Data | |
| 12 | +@EqualsAndHashCode | |
| 13 | +@ToString | |
| 11 | 14 | public class OrderUpdateDto { |
| 12 | 15 | |
| 13 | 16 | /** |
| ... | ... | @@ -19,8 +22,6 @@ public class OrderUpdateDto { |
| 19 | 22 | |
| 20 | 23 | private String garReason; |
| 21 | 24 | |
| 22 | - private String validCode; | |
| 23 | - | |
| 24 | 25 | /** |
| 25 | 26 | * 订单id |
| 26 | 27 | */ |
| ... | ... | @@ -31,7 +32,69 @@ public class OrderUpdateDto { |
| 31 | 32 | */ |
| 32 | 33 | private Integer handleType; |
| 33 | 34 | |
| 34 | - /** | |
| 35 | + private Boolean updated; | |
| 36 | + | |
| 37 | + private Integer garRealCarCount; | |
| 38 | + | |
| 39 | + private String garOrderCompanyTel; | |
| 40 | + private List<OrderDto.CarInfo> garCarInfoList; | |
| 41 | + @ToString | |
| 42 | + @EqualsAndHashCode | |
| 43 | + public static class CarInfo { | |
| 44 | + /** | |
| 45 | + * 车辆数量 | |
| 46 | + */ | |
| 47 | + private Integer garOrderCarNumber; | |
| 48 | + | |
| 49 | + /** | |
| 50 | + * 车子类型 | |
| 51 | + */ | |
| 52 | + private String garOrderCarType; | |
| 53 | + | |
| 54 | + public Integer getGarOrderCarNumber() { | |
| 55 | + return garOrderCarNumber; | |
| 56 | + } | |
| 57 | + | |
| 58 | + public void setGarOrderCarNumber(Integer garOrderCarNumber) { | |
| 59 | + this.garOrderCarNumber = garOrderCarNumber; | |
| 60 | + } | |
| 61 | + | |
| 62 | + public String getGarOrderCarType() { | |
| 63 | + return garOrderCarType; | |
| 64 | + } | |
| 65 | + | |
| 66 | + public void setGarOrderCarType(String garOrderCarType) { | |
| 67 | + this.garOrderCarType = garOrderCarType; | |
| 68 | + } | |
| 69 | + | |
| 70 | + } | |
| 71 | + | |
| 72 | + | |
| 73 | + public String getGarOrderCompanyTel() { | |
| 74 | + return garOrderCompanyTel; | |
| 75 | + } | |
| 76 | + | |
| 77 | + public void setGarOrderCompanyTel(String garOrderCompanyTel) { | |
| 78 | + this.garOrderCompanyTel = garOrderCompanyTel; | |
| 79 | + } | |
| 80 | + | |
| 81 | + public Boolean getUpdated() { | |
| 82 | + return updated; | |
| 83 | + } | |
| 84 | + | |
| 85 | + public void setUpdated(Boolean updated) { | |
| 86 | + this.updated = updated; | |
| 87 | + } | |
| 88 | + | |
| 89 | + public Integer getGarRealCarCount() { | |
| 90 | + return garRealCarCount; | |
| 91 | + } | |
| 92 | + | |
| 93 | + public void setGarRealCarCount(Integer garRealCarCount) { | |
| 94 | + this.garRealCarCount = garRealCarCount; | |
| 95 | + } | |
| 96 | + | |
| 97 | + /** | |
| 35 | 98 | * 照片url |
| 36 | 99 | */ |
| 37 | 100 | private List<String> imageUrls; |
| ... | ... | @@ -85,11 +148,11 @@ public class OrderUpdateDto { |
| 85 | 148 | this.garOrderHandleTel = garOrderHandleTel; |
| 86 | 149 | } |
| 87 | 150 | |
| 88 | - public String getValidCode() { | |
| 89 | - return validCode; | |
| 151 | + public List<OrderDto.CarInfo> getGarCarInfoList() { | |
| 152 | + return garCarInfoList; | |
| 90 | 153 | } |
| 91 | 154 | |
| 92 | - public void setValidCode(String validCode) { | |
| 93 | - this.validCode = validCode; | |
| 155 | + public void setGarCarInfoList(List<OrderDto.CarInfo> garCarInfoList) { | |
| 156 | + this.garCarInfoList = garCarInfoList; | |
| 94 | 157 | } |
| 95 | 158 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/DispatchDriverVo.java
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/GarOrderDisposalVo.java
| ... | ... | @@ -15,6 +15,7 @@ import java.util.Date; |
| 15 | 15 | @ToString |
| 16 | 16 | public class GarOrderDisposalVo extends GarOrder { |
| 17 | 17 | private Integer garOrderDisposalStatus; |
| 18 | + private Integer garNowCarCount; | |
| 18 | 19 | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 19 | 20 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
| 20 | 21 | private Date garCreateTime; |
| ... | ... | @@ -36,4 +37,12 @@ public class GarOrderDisposalVo extends GarOrder { |
| 36 | 37 | public void setGarOrderDisposalStatus(Integer garOrderDisposalStatus) { |
| 37 | 38 | this.garOrderDisposalStatus = garOrderDisposalStatus; |
| 38 | 39 | } |
| 40 | + | |
| 41 | + public Integer getGarNowCarCount() { | |
| 42 | + return garNowCarCount; | |
| 43 | + } | |
| 44 | + | |
| 45 | + public void setGarNowCarCount(Integer garNowCarCount) { | |
| 46 | + this.garNowCarCount = garNowCarCount; | |
| 47 | + } | |
| 39 | 48 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/OrderDetailTransportVo.java
| ... | ... | @@ -65,6 +65,15 @@ public class OrderDetailTransportVo { |
| 65 | 65 | private String fillImage; |
| 66 | 66 | private String garAskId; |
| 67 | 67 | private String garHandlerCarCode; |
| 68 | + private String garOrderContainerVolume; | |
| 69 | + | |
| 70 | + public String getGarOrderContainerVolume() { | |
| 71 | + return garOrderContainerVolume; | |
| 72 | + } | |
| 73 | + | |
| 74 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 75 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 76 | + } | |
| 68 | 77 | |
| 69 | 78 | public String getFillImage() { |
| 70 | 79 | return fillImage; | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/OrderDetailVo.java
| ... | ... | @@ -22,9 +22,9 @@ public class OrderDetailVo { |
| 22 | 22 | |
| 23 | 23 | private Integer garCancelFlag; |
| 24 | 24 | |
| 25 | - private String validCode; | |
| 26 | 25 | private String garReason; |
| 27 | 26 | private String garOrderHandlerId; |
| 27 | + private Integer garOrderScanHandlerFlag; | |
| 28 | 28 | |
| 29 | 29 | private Integer garEvaluateFlag; |
| 30 | 30 | |
| ... | ... | @@ -150,14 +150,6 @@ public class OrderDetailVo { |
| 150 | 150 | this.garHandlerEvaluateFlag = GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue(); |
| 151 | 151 | } |
| 152 | 152 | |
| 153 | - public String getValidCode() { | |
| 154 | - return validCode; | |
| 155 | - } | |
| 156 | - | |
| 157 | - public void setValidCode(String validCode) { | |
| 158 | - this.validCode = validCode; | |
| 159 | - } | |
| 160 | - | |
| 161 | 153 | public String getGarHandlerCarCode() { |
| 162 | 154 | return garHandlerCarCode; |
| 163 | 155 | } |
| ... | ... | @@ -402,4 +394,11 @@ public class OrderDetailVo { |
| 402 | 394 | this.garCoordinate = garCoordinate; |
| 403 | 395 | } |
| 404 | 396 | |
| 397 | + public Integer getGarOrderScanHandlerFlag() { | |
| 398 | + return garOrderScanHandlerFlag; | |
| 399 | + } | |
| 400 | + | |
| 401 | + public void setGarOrderScanHandlerFlag(Integer garOrderScanHandlerFlag) { | |
| 402 | + this.garOrderScanHandlerFlag = garOrderScanHandlerFlag; | |
| 403 | + } | |
| 405 | 404 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/ScanDriverDetailVo.java
| ... | ... | @@ -14,7 +14,15 @@ public class ScanDriverDetailVo extends GarOrder { |
| 14 | 14 | private String garOrderHandlerTel; |
| 15 | 15 | private String garHandlerCarCode; |
| 16 | 16 | private String garOrderHandlerId; |
| 17 | + private String garOrderContainerVolume; | |
| 17 | 18 | |
| 19 | + public String getGarOrderContainerVolume() { | |
| 20 | + return garOrderContainerVolume; | |
| 21 | + } | |
| 22 | + | |
| 23 | + public void setGarOrderContainerVolume(String garOrderContainerVolume) { | |
| 24 | + this.garOrderContainerVolume = garOrderContainerVolume; | |
| 25 | + } | |
| 18 | 26 | |
| 19 | 27 | public String getGarOrderHandlerId() { |
| 20 | 28 | return garOrderHandlerId; | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/TransportationEnterpriseVo.java
| ... | ... | @@ -10,7 +10,6 @@ import java.text.DecimalFormat; |
| 10 | 10 | @EqualsAndHashCode |
| 11 | 11 | public class TransportationEnterpriseVo extends TransportationEnterprise { |
| 12 | 12 | private String score; |
| 13 | - | |
| 14 | 13 | private Integer cleanNumber; |
| 15 | 14 | private String distance; |
| 16 | 15 | |
| ... | ... | @@ -44,4 +43,5 @@ public class TransportationEnterpriseVo extends TransportationEnterprise { |
| 44 | 43 | DecimalFormat df = new DecimalFormat("#0.0"); |
| 45 | 44 | this.distance = df.format(distance); |
| 46 | 45 | } |
| 46 | + | |
| 47 | 47 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderMatchDisposalService.java
| ... | ... | @@ -13,5 +13,5 @@ import java.util.List; |
| 13 | 13 | */ |
| 14 | 14 | public interface GarOrderMatchDisposalService extends IService<GarOrderMatchDisposal> { |
| 15 | 15 | |
| 16 | - List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(String orderId, Long id); | |
| 16 | + List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(String orderId); | |
| 17 | 17 | } | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderService.java
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderMatchDisposalServiceImpl.java
| ... | ... | @@ -19,8 +19,8 @@ public class GarOrderMatchDisposalServiceImpl extends ServiceImpl<GarOrderMatchD |
| 19 | 19 | implements GarOrderMatchDisposalService { |
| 20 | 20 | |
| 21 | 21 | @Override |
| 22 | - public List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(String orderId, Long id) { | |
| 23 | - return baseMapper.queryDisposalListWithDispatchStatus(orderId,id); | |
| 22 | + public List<DispatchDisposalVo> queryDisposalListWithDispatchStatus(String orderId) { | |
| 23 | + return baseMapper.queryDisposalListWithDispatchStatus(orderId); | |
| 24 | 24 | } |
| 25 | 25 | } |
| 26 | 26 | ... | ... |
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
| ... | ... | @@ -88,11 +88,14 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 88 | 88 | public String saveOrder(OrderDto dto) { |
| 89 | 89 | String userId = SecurityUtils.getLoginUser().getUser().getUserId(); |
| 90 | 90 | GarOrder order = new GarOrder(); |
| 91 | - BeanUtils.copyProperties(dto, order, "garOrderCompanyId"); | |
| 91 | + // companyId | |
| 92 | + BeanUtils.copyProperties(dto, order); | |
| 92 | 93 | order.setGarOrderUserId(userId); |
| 93 | 94 | order.setGarOrderHandlerStatus(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue()); |
| 94 | 95 | order.setGarCancelFlag(GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue()); |
| 95 | - order.setGarOrderMatchFlag(GlobalStatus.GarOrderStatus.MATCH_NO.getValue()); | |
| 96 | + order.setGarOrderScanHandlerFlag(GlobalStatus.GarOrderStatus.SCAN_HANDLER_NO.getValue()); | |
| 97 | + // 预估车辆等于用户选择得车辆 | |
| 98 | + order.setGarRealCarCount(dto.getGarCarInfoList().stream().mapToInt(OrderDto.CarInfo::getGarOrderCarNumber).sum()); | |
| 96 | 99 | save(order); |
| 97 | 100 | |
| 98 | 101 | // 保存车辆信息 |
| ... | ... | @@ -133,7 +136,7 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 133 | 136 | || user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription())) { |
| 134 | 137 | return getOrderDetailVoResponsible(id, user); |
| 135 | 138 | } |
| 136 | - // 订单分发获取 处理人员 | |
| 139 | + // 订单分发获取 驾驶员 | |
| 137 | 140 | if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.DRIVER_USER.getDescription())) { |
| 138 | 141 | return getOrderDetailVoDriver(id, user); |
| 139 | 142 | } |
| ... | ... | @@ -171,9 +174,6 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 171 | 174 | qwc.eq(GarOrderCar::getGarOrderId, orderVo.getGarOrderId()); |
| 172 | 175 | List<GarOrderCar> carList = garOrderCarService.list(qwc); |
| 173 | 176 | vo.setGarCarInfoList(carList); |
| 174 | - // 验证码 | |
| 175 | - String validCode = redisCache.getCacheMapValue(user.getGarUserTel(), orderId); | |
| 176 | - vo.setValidCode(validCode); | |
| 177 | 177 | return vo; |
| 178 | 178 | } |
| 179 | 179 | |
| ... | ... | @@ -285,6 +285,7 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 285 | 285 | } |
| 286 | 286 | |
| 287 | 287 | @Override |
| 288 | + @Transactional(rollbackFor = Exception.class) | |
| 288 | 289 | public String updateOrder(OrderUpdateDto dto) { |
| 289 | 290 | String userId = SecurityUtils.getLoginUser().getUser().getUserId(); |
| 290 | 291 | GarUser user = garUserService.getById(userId); |
| ... | ... | @@ -309,37 +310,13 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 309 | 310 | } |
| 310 | 311 | |
| 311 | 312 | private String handlerDisposalSiteOrderStatus(OrderUpdateDto dto, GarUser user) { |
| 312 | - GarOrderDriverVo order = baseMapper.queryOrderByTelWithType(user.getGarUserTel(), dto.getGarOrderId(), GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue()); | |
| 313 | - // 处理场所负责人 清运中 ==》已完成 TODO 修改 只有与预估车辆相匹配以后才会完成订单 | |
| 314 | -// if (GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(order.getGarOrderHandlerStatus()) | |
| 315 | -// && GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(dto.getHandleType())) { | |
| 316 | -// LambdaUpdateWrapper<GarOrderMatchHandler> uw = new LambdaUpdateWrapper<>(); | |
| 317 | -// uw.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId()) | |
| 318 | -// .eq(GarOrderMatchHandler::getGarOrderHandlerTel, user.getGarUserTel()) | |
| 319 | -// .set(GarOrderMatchHandler::getGarOrderStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 320 | -// handlerService.update(uw); | |
| 321 | -// return "订单已完成"; | |
| 322 | -// } | |
| 323 | - // 根据传入的validCode 和订单id去生成一条清运记录 一条记录生成一个validCode | |
| 324 | - // TODO 生成记录 | |
| 325 | -// GarOrderMatchAsk ask = new GarOrderMatchAsk(); | |
| 326 | -// BeanUtils.copyProperties(order, ask, "garCreateTime", "garUpdateTime", "garCreateBy", "garUpdateBy"); | |
| 327 | -// String code = ValidateCodeUtil.generatorCode(6); | |
| 328 | -// redisCache.setCacheMapValue(dto.getGarOrderHandleTel(), dto.getGarOrderId(), code); | |
| 329 | -// matchAskService.save(ask); | |
| 330 | -// return "当前趟次记录成功"; | |
| 331 | - // TODO 记录数 | |
| 332 | - // update order count | |
| 333 | 313 | throw new BizException(ResultCode.CODE_500); |
| 334 | 314 | } |
| 335 | 315 | |
| 336 | - private boolean checkCode(String code) { | |
| 316 | + private boolean checkCode(String code, String orderId, String userId) { | |
| 337 | 317 | if (StringUtils.isNotBlank(code)) { |
| 338 | - String[] params = code.split(","); | |
| 339 | - if (params.length == 3) { | |
| 340 | - String validCode = redisCache.getCacheMapValue(params[0], params[1]); | |
| 341 | - return code.equals(validCode); | |
| 342 | - } | |
| 318 | + String validCode = redisCache.getCacheMapValue(orderId, userId); | |
| 319 | + return code.equals(validCode); | |
| 343 | 320 | } |
| 344 | 321 | return false; |
| 345 | 322 | } |
| ... | ... | @@ -356,12 +333,9 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 356 | 333 | LambdaUpdateWrapper<GarOrderMatchHandler> uw = new LambdaUpdateWrapper<>(); |
| 357 | 334 | uw.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId()) |
| 358 | 335 | .eq(GarOrderMatchHandler::getGarOrderHandlerTel, tel) |
| 359 | - .set(GarOrderMatchHandler::getGarOrderStatus, GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue()) | |
| 336 | + .set(GarOrderMatchHandler::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue()) | |
| 360 | 337 | .set(GarOrderMatchHandler::getGarOrderHandlerId, user.getGarUserId()); |
| 361 | 338 | handlerService.update(uw); |
| 362 | - // TODO 以订单id和人员手机号 hash key返回前端生成二维码 存放到redis中 | |
| 363 | - String code = tel + "," + order.getGarOrderId() + "," + ValidateCodeUtil.generatorCode(6); | |
| 364 | - redisCache.setCacheMapValue(tel, order.getGarOrderId(), code); | |
| 365 | 339 | return "已接受订单"; |
| 366 | 340 | } |
| 367 | 341 | throw new BizException(ResultCode.CODE_500); |
| ... | ... | @@ -369,12 +343,12 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 369 | 343 | |
| 370 | 344 | private String handlerOrderStatus(OrderUpdateDto dto, GarUser user) { |
| 371 | 345 | GarOrder order = getById(dto.getGarOrderId()); |
| 372 | - // 取消订单 | |
| 346 | + // 取消订单公用 | |
| 373 | 347 | if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_YES.getValue().equals(dto.getGarCancelFlag())) { |
| 374 | 348 | LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>(); |
| 375 | 349 | uw.set(GarOrder::getGarCancelFlag, dto.getGarCancelFlag()) |
| 376 | - .set(GarOrder::getGarReason, dto.getGarReason()) | |
| 377 | - .eq(GarOrder::getGarOrderId, dto.getGarOrderId()); | |
| 350 | + .eq(GarOrder::getGarOrderId, dto.getGarOrderId()) | |
| 351 | + .set(GarOrder::getGarReason, dto.getGarReason()); | |
| 378 | 352 | update(uw); |
| 379 | 353 | // TODO 短信提醒 公司 | 居民 |
| 380 | 354 | String tel = GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription().equals(user.getGarUserType()) ? |
| ... | ... | @@ -384,18 +358,44 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 384 | 358 | smsUtils.sendMessage(tel, message); |
| 385 | 359 | return "订单取消成功"; |
| 386 | 360 | } |
| 387 | - // 企业负责人 | |
| 388 | - else { | |
| 361 | + // 用户修改 | |
| 362 | + else if (GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription().equals(user.getGarUserType()) && dto.getUpdated()) { | |
| 363 | + // TODO 待优化 可能出现线程安全 需要上锁 | |
| 364 | + if (order.getGarOrderScanHandlerFlag().equals(GlobalStatus.GarOrderStatus.SCAN_HANDLER_YES.getValue())) { | |
| 365 | + throw new BizException(ResultCode.CODE_400, "当前订单无法修改,因为已有驾驶员确认"); | |
| 366 | + } | |
| 367 | + // 删除之前的车辆数 | |
| 368 | + LambdaQueryWrapper<GarOrderCar> qw = new LambdaQueryWrapper<>(); | |
| 369 | + qw.eq(GarOrderCar::getGarOrderId, dto.getGarOrderId()); | |
| 370 | + garOrderCarService.remove(qw); | |
| 371 | + // 保存车辆信息 | |
| 372 | + List<OrderDto.CarInfo> garCarInfoList = dto.getGarCarInfoList(); | |
| 373 | + List<GarOrderCar> garOrderCars = new ArrayList<>(); | |
| 374 | + for (OrderDto.CarInfo carInfo : garCarInfoList) { | |
| 375 | + for (int index = 0; index < carInfo.getGarOrderCarNumber(); index++) { | |
| 376 | + GarOrderCar car = new GarOrderCar(); | |
| 377 | + car.setGarOrderCarType(carInfo.getGarOrderCarType()); | |
| 378 | + car.setGarOrderId(dto.getGarOrderId()); | |
| 379 | + car.setGarOrderCarUserType(GlobalStatus.GarOrderStatus.REAL_CAR_TYPE.getValue()); | |
| 380 | + garOrderCars.add(car); | |
| 381 | + } | |
| 382 | + } | |
| 383 | + garOrderCarService.saveBatch(garOrderCars); | |
| 384 | + order.setGarRealCarCount(garOrderCars.size()); | |
| 385 | + updateById(order); | |
| 386 | + // TODO 发送短信用户修改订单了 | |
| 387 | + smsUtils.sendMessage(dto.getGarOrderCompanyTel(), "您的清运订单有修改,请及时查看并处理!"); | |
| 388 | + return "修改成功"; | |
| 389 | + } | |
| 390 | + // 企业负责人 清运-》完成 | |
| 391 | + else if (GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription().equals(user.getGarUserType())) { | |
| 389 | 392 | // 公司所属 待清运- 》 清运中 |
| 390 | 393 | if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue()) |
| 391 | 394 | || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) { |
| 392 | - if (StringUtils.isNotEmpty(order.getGarOrderCompanyId())) { | |
| 393 | - throw new BizException(ResultCode.CODE_500, "订单已经接受了"); | |
| 394 | - } | |
| 395 | 395 | LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>(); |
| 396 | 396 | uw.eq(GarOrder::getGarOrderId, dto.getGarOrderId()) |
| 397 | 397 | .set(GarOrder::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue()) |
| 398 | - .set(GarOrder::getGarOrderCompanyId, user.getGarUserId()); | |
| 398 | + .set(GarOrder::getGarOrderCompanyUserId, user.getGarUserId()); | |
| 399 | 399 | update(uw); |
| 400 | 400 | // TODO 短信提醒 |
| 401 | 401 | smsUtils.sendMessage(order.getGarOrderContactTel(), "运输公司已接受订单号为 " + order.getGarOrderId() + " 的订单。"); |
| ... | ... | @@ -410,11 +410,25 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 410 | 410 | .set(GarOrder::getGarHandlerEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue()) |
| 411 | 411 | .set(GarOrder::getGarEvaluateFlag, GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue()); |
| 412 | 412 | update(uw); |
| 413 | + smsUtils.sendMessage(order.getGarOrderContactTel(), "您的清运订单已完成,可前往小程序进行评价,感谢您的使用"); | |
| 414 | + smsUtils.sendMessage(order.getGarOrderCompanyTel(), "您的清运订单已完成,详情可在小程序查看。"); | |
| 415 | + // 更新disposal | |
| 416 | + LambdaUpdateWrapper<GarOrderMatchDisposal> uwd = new LambdaUpdateWrapper<>(); | |
| 417 | + uwd.eq(GarOrderMatchDisposal::getGarOrderId, dto.getGarOrderId()) | |
| 418 | + .set(GarOrderMatchDisposal::getGarOrderDisposalStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 419 | + disposalService.update(uwd); | |
| 420 | + // 更新handler | |
| 421 | + LambdaUpdateWrapper<GarOrderMatchHandler> uwh = new LambdaUpdateWrapper<>(); | |
| 422 | + uwh.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId()) | |
| 423 | + .set(GarOrderMatchHandler::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 424 | + handlerService.update(uwh); | |
| 413 | 425 | } |
| 414 | 426 | // TODO 短信提醒 |
| 415 | 427 | smsUtils.sendMessage(order.getGarOrderContactTel(), "运输公司已完成订单号为 " + order.getGarOrderId() + " 的订单。"); |
| 416 | 428 | return "订单已完成"; |
| 417 | 429 | } |
| 430 | + | |
| 431 | + throw new BizException(ResultCode.CODE_400); | |
| 418 | 432 | } |
| 419 | 433 | |
| 420 | 434 | @Override |
| ... | ... | @@ -635,7 +649,7 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 635 | 649 | List<GarOrderMatchHandler> handlerList = new ArrayList<>(dto.getDispatchList().size()); |
| 636 | 650 | // 每次下发统计选中驾驶员更新实际派车数量 |
| 637 | 651 | // 已分配 继续下发 |
| 638 | - if (order.getGarOrderMatchFlag().equals(GlobalStatus.GarOrderStatus.MATCH_YES.getValue())) { | |
| 652 | + if (order.getGarOrderScanHandlerFlag().equals(GlobalStatus.GarOrderStatus.SCAN_HANDLER_YES.getValue())) { | |
| 639 | 653 | LambdaQueryWrapper<GarOrderMatchHandler> qw = new LambdaQueryWrapper<>(); |
| 640 | 654 | qw.eq(GarOrderMatchHandler::getGarOrderId, order.getGarOrderId()); |
| 641 | 655 | Map<String, GarOrderMatchHandler> handlerMap = handlerService.list(qw).stream().collect(Collectors.toMap(item -> item.getGarOrderHandlerTel(), item -> item)); |
| ... | ... | @@ -653,11 +667,9 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 653 | 667 | } |
| 654 | 668 | } |
| 655 | 669 | handlerService.saveBatch(handlerList); |
| 656 | - order.setGarOrderMatchFlag(GlobalStatus.GarOrderStatus.MATCH_YES.getValue()); | |
| 657 | 670 | List<String> tels = handlerList.stream().map(GarOrderMatchHandler::getGarOrderHandlerTel).collect(Collectors.toList()); |
| 658 | 671 | // TODO 短信通知 |
| 659 | 672 | smsUtils.sendMessage(tels, "您有新的清运任务!请打开小程序查看当前任务。"); |
| 660 | - updateById(order); | |
| 661 | 673 | } |
| 662 | 674 | |
| 663 | 675 | private GarOrderMatchHandler getGarOrderMatchHandler(GarOrder order, DispatchDto.DispatchDetail detail) { |
| ... | ... | @@ -667,9 +679,10 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 667 | 679 | handler.setGarHandlerCarCode(detail.getCarCode()); |
| 668 | 680 | handler.setGarCancelFlag(order.getGarCancelFlag()); |
| 669 | 681 | handler.setGarOrderId(order.getGarOrderId()); |
| 670 | - handler.setGarOrderHandlerStatus(order.getGarOrderHandlerStatus()); | |
| 682 | + handler.setGarOrderHandlerStatus(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue()); | |
| 671 | 683 | handler.setGarOrderHandlerCompanyName(order.getGarOrderCompanyName()); |
| 672 | 684 | handler.setGarOrderHandlerCompanyId(order.getGarOrderCompanyId()); |
| 685 | + handler.setGarOrderContainerVolume(detail.getGarOrderContainerVolume()); | |
| 673 | 686 | // handler.setGarOrderHandlerId(detail.getId()); |
| 674 | 687 | handler.setGarOrderStatus(GlobalStatus.GarOrderStatus.DISPATCH_HANDLE_NEW.getValue()); |
| 675 | 688 | return handler; |
| ... | ... | @@ -749,45 +762,90 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 749 | 762 | // TODO |
| 750 | 763 | // String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber(); |
| 751 | 764 | // 选中的司机处理场所 |
| 752 | - List<DispatchDisposalVo> voList = disposalService.queryDisposalListWithDispatchStatus(orderId, null); | |
| 765 | + List<DispatchDisposalVo> voList = disposalService.queryDisposalListWithDispatchStatus(orderId); | |
| 753 | 766 | return voList; |
| 754 | 767 | } |
| 755 | 768 | |
| 756 | 769 | @Override |
| 757 | 770 | public ScanDriverDetailVo checkValidCode(String validCode) { |
| 758 | - // TODO check code | |
| 759 | - if (checkCode(validCode)) { | |
| 771 | + if (StringUtils.isNotBlank(validCode)) { | |
| 760 | 772 | String[] params = validCode.split(","); |
| 761 | - ScanDriverDetailVo vo = baseMapper.queryDriverDetailByTelWithOrderId(params[0], params[1]); | |
| 762 | - return vo; | |
| 773 | + String orderId = params[0]; | |
| 774 | + String userId = params[1]; | |
| 775 | + // TODO check code | |
| 776 | + if (checkCode(validCode, orderId, userId)) { | |
| 777 | + ScanDriverDetailVo vo = baseMapper.queryDriverDetailByTelWithOrderId(orderId, userId); | |
| 778 | + return vo; | |
| 779 | + } | |
| 763 | 780 | } |
| 781 | + | |
| 764 | 782 | throw new BizException(ResultCode.CODE_400, "二维码验证不通过"); |
| 765 | 783 | } |
| 766 | 784 | |
| 767 | 785 | @Override |
| 768 | 786 | public String askTransport(AskTransportDto dto) { |
| 769 | - GarOrderMatchAsk ask = new GarOrderMatchAsk(); | |
| 770 | - BeanUtils.copyProperties(dto, ask); | |
| 771 | - matchAskService.save(ask); | |
| 787 | + | |
| 772 | 788 | // TODO 判断是否运载完毕 已经到预估趟次则不在生成验证码 |
| 773 | - String tel = dto.getGarOrderHandlerTel(); | |
| 774 | 789 | String orderId = dto.getGarOrderId(); |
| 775 | - String code = tel + "," + orderId + "," + ValidateCodeUtil.generatorCode(6); | |
| 776 | -// redisCache.setCacheMapValue(tel, orderId, code);* | |
| 777 | - // 保存图片url | |
| 778 | - List<GarOrderImage> imageList = new ArrayList<>(dto.getFillImageList().size()); | |
| 779 | - for (String fillImageUrl : dto.getFillImageList()) { | |
| 780 | - GarOrderImage image = new GarOrderImage(); | |
| 781 | - image.setGarOrderImageType(GlobalStatus.GarOrderStatus.IMAGE_TYPE_FILL_CAR.getValue()); | |
| 782 | - image.setGarOrderId(orderId); | |
| 783 | - image.setGarOrderImageUrl(fillImageUrl); | |
| 784 | - image.setGarRemark(ask.getGarId()); | |
| 785 | - imageList.add(image); | |
| 790 | + | |
| 791 | + // 查询当前运载几趟 如果全部运输完毕则发送成功短信 | |
| 792 | + LambdaQueryWrapper<GarOrderMatchAsk> qw = new LambdaQueryWrapper<>(); | |
| 793 | + qw.eq(GarOrderMatchAsk::getGarOrderId, dto.getGarOrderId()); | |
| 794 | + int transportCount = askService.list(qw).size(); | |
| 795 | + GarOrder order = getById(orderId); | |
| 796 | + if (transportCount <= order.getGarRealCarCount() - 1) { | |
| 797 | + // 第一次的话需要修改订单状态为已扫码 | |
| 798 | + if (order.getGarOrderScanHandlerFlag().equals(GlobalStatus.GarOrderStatus.SCAN_HANDLER_NO.getValue())) { | |
| 799 | + order.setGarOrderScanHandlerFlag(GlobalStatus.GarOrderStatus.SCAN_HANDLER_YES.getValue()); | |
| 800 | + updateById(order); | |
| 801 | + } | |
| 802 | + GarOrderMatchAsk ask = new GarOrderMatchAsk(); | |
| 803 | + BeanUtils.copyProperties(dto, ask); | |
| 804 | + matchAskService.save(ask); | |
| 805 | + // 保存图片url | |
| 806 | + List<GarOrderImage> imageList = new ArrayList<>(dto.getFillImageList().size()); | |
| 807 | + for (String fillImageUrl : dto.getFillImageList()) { | |
| 808 | + GarOrderImage image = new GarOrderImage(); | |
| 809 | + image.setGarOrderImageType(GlobalStatus.GarOrderStatus.IMAGE_TYPE_FILL_CAR.getValue()); | |
| 810 | + image.setGarOrderId(orderId); | |
| 811 | + image.setGarOrderImageUrl(fillImageUrl); | |
| 812 | + image.setGarRemark(ask.getGarId()); | |
| 813 | + imageList.add(image); | |
| 814 | + } | |
| 815 | + garOrderImageService.saveBatch(imageList); | |
| 816 | + if (transportCount == (order.getGarRealCarCount() - 1)) { | |
| 817 | + // TODO 发送短信 通知企业和用户 修改订单状态为完成 disposal 和 handler表的状态一起修改 | |
| 818 | + smsUtils.sendMessage(order.getGarOrderContactTel(), "您的清运订单已完成,可前往小程序进行评价,感谢您的使用"); | |
| 819 | + smsUtils.sendMessage(order.getGarOrderCompanyTel(), "您的清运订单已完成,详情可在小程序查看。"); | |
| 820 | + successOrder(order, dto); | |
| 821 | + redisCache.deleteObject(orderId); | |
| 822 | + return "当前订单已完成"; | |
| 823 | + } | |
| 824 | + //TODO 短信通知 | |
| 825 | + return "当前趟次记录成功"; | |
| 786 | 826 | } |
| 787 | - garOrderImageService.saveBatch(imageList); | |
| 788 | - return "当前趟次记录成功"; | |
| 827 | + | |
| 828 | + throw new BizException(ResultCode.CODE_400, "当前记录无效,已完成所有趟次!"); | |
| 829 | + } | |
| 830 | + | |
| 831 | + private void successOrder(GarOrder order, AskTransportDto dto) { | |
| 832 | + order.setGarOrderHandlerStatus(GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 833 | + order.setGarHandlerEvaluateFlag(GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue()); | |
| 834 | + order.setGarEvaluateFlag(GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue()); | |
| 835 | + updateById(order); | |
| 836 | + // 更新disposal | |
| 837 | + LambdaUpdateWrapper<GarOrderMatchDisposal> uwd = new LambdaUpdateWrapper<>(); | |
| 838 | + uwd.eq(GarOrderMatchDisposal::getGarOrderId, dto.getGarOrderId()) | |
| 839 | + .set(GarOrderMatchDisposal::getGarOrderDisposalStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 840 | + disposalService.update(uwd); | |
| 841 | + // 更新handler | |
| 842 | + LambdaUpdateWrapper<GarOrderMatchHandler> uwh = new LambdaUpdateWrapper<>(); | |
| 843 | + uwh.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId()) | |
| 844 | + .set(GarOrderMatchHandler::getGarOrderHandlerStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue()); | |
| 845 | + handlerService.update(uwh); | |
| 789 | 846 | } |
| 790 | 847 | |
| 848 | + | |
| 791 | 849 | @Override |
| 792 | 850 | public OrderDetailTransportVo queryOrderTransportDetail(String id) { |
| 793 | 851 | // 根据当前订单id查订单数据 - 查扫码趟次数据 |
| ... | ... | @@ -825,12 +883,23 @@ public class GarOrderServiceImpl extends ServiceImpl<GarOrderMapper, GarOrder> |
| 825 | 883 | // 图片url |
| 826 | 884 | LambdaQueryWrapper<GarOrderImage> qw = new LambdaQueryWrapper<>(); |
| 827 | 885 | qw.eq(GarOrderImage::getGarOrderId, ask.getGarOrderId()) |
| 886 | + .eq(GarOrderImage::getGarRemark, askId) | |
| 828 | 887 | .eq(GarOrderImage::getGarOrderImageType, GlobalStatus.GarOrderStatus.IMAGE_TYPE_FILL_CAR.getValue()); |
| 829 | 888 | List<String> fillImageList = garOrderImageService.list(qw).stream().map(GarOrderImage::getGarOrderImageUrl).collect(Collectors.toList()); |
| 830 | 889 | vo.setFillImageList(fillImageList); |
| 831 | 890 | return vo; |
| 832 | 891 | } |
| 833 | 892 | |
| 893 | + @Override | |
| 894 | + public String createHandlerQrCode(String orderId) { | |
| 895 | + String userId = SecurityUtils.getLoginUser().getUser().getUserId(); | |
| 896 | + // 返回验证码 | |
| 897 | + // TODO 以订单id和用户id hash key返回前端生成二维码 存放到redis中 | |
| 898 | + String code = orderId + "," + userId + "," + ValidateCodeUtil.generatorCode(6); | |
| 899 | + redisCache.setCacheMapValue(orderId, userId, code); | |
| 900 | + return code; | |
| 901 | + } | |
| 902 | + | |
| 834 | 903 | private void handleCleanNumber(TransportationEnterpriseVo vo, List<GarOrder> orderList) { |
| 835 | 904 | Long cleanNumber = 0L; |
| 836 | 905 | for (GarOrder order : orderList) { | ... | ... |
trash-garbage/src/main/resources/mapper/GarOrderMapper.xml
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | <result property="garOrderTrashType" column="gar_order_trash_type" jdbcType="VARCHAR"/> |
| 14 | 14 | <result property="garOrderContactTel" column="gar_order_contact_tel" jdbcType="VARCHAR"/> |
| 15 | 15 | <result property="garOrderCompanyId" column="gar_order_company_id" jdbcType="VARCHAR"/> |
| 16 | + <result property="garOrderCompanyUserId" column="gar_order_company_user_id" jdbcType="VARCHAR"/> | |
| 16 | 17 | <result property="garOrderCompanyName" column="gar_order_company_name" jdbcType="VARCHAR"/> |
| 17 | 18 | <result property="garOrderCompanyTel" column="gar_order_company_tel" jdbcType="VARCHAR"/> |
| 18 | 19 | <result property="garOrderHandlerStatus" column="gar_order_handler_status" jdbcType="INTEGER"/> |
| ... | ... | @@ -26,7 +27,7 @@ |
| 26 | 27 | <result property="garCancelFlag" column="gar_cancel_flag" jdbcType="TINYINT"/> |
| 27 | 28 | <result property="garEvaluateFlag" column="gar_evaluate_flag" jdbcType="TINYINT"/> |
| 28 | 29 | <result property="garHandlerEvaluateFlag" column="gar_handler_evaluate_flag" jdbcType="TINYINT"/> |
| 29 | - <result property="garOrderMatchFlag" column="gar_order_match_flag" jdbcType="TINYINT"/> | |
| 30 | + <result property="garOrderScanHandlerFlag" column="gar_order_scan_handler_flag" jdbcType="TINYINT"/> | |
| 30 | 31 | <result property="garLatitude" column="gar_latitude" jdbcType="DOUBLE"/> |
| 31 | 32 | <result property="garLongitude" column="gar_longitude" jdbcType="DOUBLE"/> |
| 32 | 33 | <result property="garCoordinate" column="gar_coordinate" jdbcType="DOUBLE"/> |
| ... | ... | @@ -49,6 +50,7 @@ |
| 49 | 50 | <collection property="transportDetails" |
| 50 | 51 | ofType="com.trash.garbage.pojo.vo.OrderDetailTransportVo$TransportDetail"> |
| 51 | 52 | <result property="garHandlerCarCode" column="gar_handler_car_code"/> |
| 53 | + <result property="garOrderContainerVolume" column="gar_order_container_volume"/> | |
| 52 | 54 | <result property="fillImage" column="fill_image"/> |
| 53 | 55 | <result property="garAskId" column="gar_ask_id"/> |
| 54 | 56 | </collection> |
| ... | ... | @@ -62,7 +64,7 @@ |
| 62 | 64 | gar_order_company_name,gar_order_company_tel,gar_order_handler_status, |
| 63 | 65 | gar_order_agreement_time,gar_create_time,gar_update_time, |
| 64 | 66 | gar_create_by,gar_update_by,gar_remark,gar_reason,gar_cancel_flag, |
| 65 | - gar_evaluate_flag,gar_handler_evaluate_flag,gar_order_match_flag,gar_coordinate,gar_longitude,gar_latitude,gar_real_car_count | |
| 67 | + gar_evaluate_flag,gar_handler_evaluate_flag,gar_order_scan_handler_flag,gar_coordinate,gar_longitude,gar_latitude,gar_real_car_count | |
| 66 | 68 | </sql> |
| 67 | 69 | <select id="queryCleanNumberByEnterpriseIds" resultType="com.trash.garbage.pojo.domain.GarOrder"> |
| 68 | 70 | select gar_order_company_id, count(gar_order_company_id) as count |
| ... | ... | @@ -84,17 +86,16 @@ |
| 84 | 86 | `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_coordinate, |
| 85 | 87 | `order`.gar_order_address,`order`.gar_order_address_details,`order`.gar_order_contact_name,`order`.gar_longitude, |
| 86 | 88 | `order`.gar_order_trash_type,`order`.gar_order_contact_tel,`order`.gar_order_company_id,`order`.gar_latitude, |
| 87 | - `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_match_flag, | |
| 88 | - `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag,`order`.gar_order_handler_status | |
| 89 | - gar_order_status, | |
| 90 | - `handler`.gar_order_status | |
| 91 | - gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason,`order`.gar_real_car_count | |
| 89 | + `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_scan_handler_flag, | |
| 90 | + `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag, | |
| 91 | +-- `order`.gar_order_handler_status gar_order_status, | |
| 92 | + `handler`.gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason,`order`.gar_real_car_count | |
| 92 | 93 | FROM gar_order `order` |
| 93 | 94 | INNER JOIN gar_order_match_handler `handler` ON `order`.gar_order_id = `handler`.gar_order_id |
| 94 | 95 | <where> |
| 95 | 96 | `handler`.gar_order_handler_tel = #{garUserTel} |
| 96 | 97 | <if test="type != null"> |
| 97 | - AND `handler`.gar_order_status = #{type} | |
| 98 | + AND `handler`.gar_order_handler_status = #{type} | |
| 98 | 99 | </if> |
| 99 | 100 | <if test="cancelFlag != null"> |
| 100 | 101 | AND `handler`.gar_cancel_flag = #{cancelFlag} |
| ... | ... | @@ -106,11 +107,9 @@ |
| 106 | 107 | `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_latitude, |
| 107 | 108 | `order`.gar_order_address,`order`.gar_order_address_details,`order`.gar_order_contact_name,`order`.gar_longitude, |
| 108 | 109 | `order`.gar_order_trash_type,`order`.gar_order_contact_tel,`order`.gar_order_company_id,`order`.gar_coordinate, |
| 109 | - `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_match_flag,`order`.gar_real_car_count, | |
| 110 | - `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag,`order`.gar_order_handler_status | |
| 111 | - gar_order_status, | |
| 112 | - `handler`.gar_order_status | |
| 113 | - gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason,`handler`.gar_handler_car_code | |
| 110 | + `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_scan_handler_flag,`order`.gar_real_car_count, | |
| 111 | + `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag, | |
| 112 | + `handler`.gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason,`handler`.gar_handler_car_code | |
| 114 | 113 | FROM gar_order `order` |
| 115 | 114 | INNER JOIN gar_order_match_handler `handler` ON `order`.gar_order_id = `handler`.gar_order_id AND |
| 116 | 115 | `order`.gar_order_id = #{orderId} |
| ... | ... | @@ -133,13 +132,22 @@ |
| 133 | 132 | `order`.gar_order_trash_type, |
| 134 | 133 | `order`.gar_order_contact_tel, |
| 135 | 134 | `order`.gar_order_company_id, |
| 135 | + `order`.gar_order_company_user_id, | |
| 136 | 136 | `order`.gar_latitude, |
| 137 | 137 | `order`.gar_order_company_name, |
| 138 | 138 | `order`.gar_order_company_tel, |
| 139 | 139 | `order`.gar_order_agreement_time, |
| 140 | 140 | `disposal`.gar_create_time, |
| 141 | 141 | `disposal`.gar_order_disposal_status, |
| 142 | - `order`.gar_real_car_count | |
| 142 | + `order`.gar_real_car_count, | |
| 143 | + ( | |
| 144 | + CASE | |
| 145 | + `order`.gar_order_id | |
| 146 | + WHEN `order`.gar_order_id THEN | |
| 147 | + ( SELECT count(*) FROM gar_order_match_ask ask INNER JOIN gar_order ON `gar_order`.gar_order_id = | |
| 148 | + `ask`.gar_order_id WHERE `order`.gar_order_id = `gar_order`.gar_order_id ) | |
| 149 | + END | |
| 150 | + ) AS gar_now_car_count | |
| 143 | 151 | FROM |
| 144 | 152 | gar_order `order` |
| 145 | 153 | INNER JOIN gar_order_match_disposal `disposal` ON `order`.gar_order_id = `disposal`.gar_order_id |
| ... | ... | @@ -152,7 +160,7 @@ |
| 152 | 160 | </select> |
| 153 | 161 | <select id="queryDriverDetailByTelWithOrderId" resultType="com.trash.garbage.pojo.vo.ScanDriverDetailVo"> |
| 154 | 162 | SELECT |
| 155 | - `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_latitude, | |
| 163 | + `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_latitude,`order`.gar_order_company_user_id, | |
| 156 | 164 | `order`.gar_order_address,`order`.gar_order_address_details,`order`.gar_order_contact_name,`order`.gar_longitude, |
| 157 | 165 | `order`.gar_order_trash_type,`order`.gar_order_contact_tel,`order`.gar_order_company_id,`order`.gar_coordinate, |
| 158 | 166 | `order`.gar_order_company_name,`order`.gar_order_company_tel,`handler`.gar_create_time, |
| ... | ... | @@ -160,12 +168,13 @@ |
| 160 | 168 | gar_order_status,`handler`.gar_handler_car_code,`handler`.gar_order_handler_name, |
| 161 | 169 | `handler`.gar_handler_car_code, |
| 162 | 170 | `handler`.gar_order_handler_tel, |
| 163 | - `handler`.gar_order_handler_id | |
| 171 | + `handler`.gar_order_handler_id, | |
| 172 | + `handler`.gar_order_container_volume | |
| 164 | 173 | FROM gar_order `order` |
| 165 | 174 | INNER JOIN gar_order_match_handler `handler` ON `order`.gar_order_id = `handler`.gar_order_id AND |
| 166 | 175 | `order`.gar_order_id = #{orderId} |
| 167 | 176 | <where> |
| 168 | - `handler`.gar_order_handler_tel = #{garUserTel} | |
| 177 | + `handler`.gar_order_handler_id = #{userId} | |
| 169 | 178 | </where> |
| 170 | 179 | </select> |
| 171 | 180 | <select id="queryOrderTransportDetail" resultMap="TransportDetailVo"> |
| ... | ... | @@ -179,6 +188,7 @@ |
| 179 | 188 | `order`.gar_order_trash_type, |
| 180 | 189 | `order`.gar_order_contact_tel, |
| 181 | 190 | `order`.gar_order_company_id, |
| 191 | + `order`.gar_order_company_user_id, | |
| 182 | 192 | `order`.gar_latitude, |
| 183 | 193 | `order`.gar_order_company_name, |
| 184 | 194 | `order`.gar_order_company_tel, | ... | ... |
trash-garbage/src/main/resources/mapper/GarOrderMatchAskMapper.xml
| ... | ... | @@ -9,6 +9,7 @@ |
| 9 | 9 | <result property="garOrderId" column="gar_order_id" jdbcType="VARCHAR"/> |
| 10 | 10 | <result property="garOrderHandlerTel" column="gar_order_handler_tel" jdbcType="VARCHAR"/> |
| 11 | 11 | <result property="garOrderHandlerName" column="gar_order_handler_name" jdbcType="VARCHAR"/> |
| 12 | + <result property="garOrderContainerVolume" column="gar_order_container_volume" jdbcType="VARCHAR"/> | |
| 12 | 13 | <result property="garOrderHandlerCompanyId" column="gar_order_handler_company_id" jdbcType="VARCHAR"/> |
| 13 | 14 | <result property="garOrderHandlerCompanyName" column="gar_order_handler_company_name" jdbcType="VARCHAR"/> |
| 14 | 15 | <result property="garCreateTime" column="gar_create_time" jdbcType="TIMESTAMP"/> |
| ... | ... | @@ -19,7 +20,7 @@ |
| 19 | 20 | </resultMap> |
| 20 | 21 | |
| 21 | 22 | <sql id="Base_Column_List"> |
| 22 | - gar_id,gar_order_id,gar_order_handler_tel, | |
| 23 | + gar_id,gar_order_id,gar_order_handler_tel,gar_order_container_volume, | |
| 23 | 24 | gar_order_handler_name,gar_order_handler_company_id,gar_order_handler_company_name, |
| 24 | 25 | gar_create_time,gar_update_time,gar_create_by, |
| 25 | 26 | gar_update_by,gar_remark | ... | ... |
trash-garbage/src/main/resources/mapper/GarOrderMatchDisposalMapper.xml
| ... | ... | @@ -44,13 +44,15 @@ |
| 44 | 44 | disposal.construction_unit_person_phone AS tel, |
| 45 | 45 | disposal.construction_unit_person, |
| 46 | 46 | CASE |
| 47 | - | |
| 48 | - WHEN gar.gar_order_id IS NULL THEN | |
| 47 | + WHEN `temp`.gar_order_id IS NULL THEN | |
| 49 | 48 | 0 |
| 50 | 49 | ELSE 1 |
| 51 | 50 | END AS checked |
| 52 | 51 | FROM disposal_site disposal |
| 53 | - LEFT JOIN gar_order_match_disposal gar | |
| 54 | - ON disposal.construction_unit_person_phone = gar.gar_order_disposal_tel | |
| 52 | + LEFT JOIN (SELECT gar.gar_order_id, gar.gar_order_disposal_tel | |
| 53 | + FROM gar_order_match_disposal gar | |
| 54 | + INNER JOIN gar_order `order` ON `order`.gar_order_id = gar.gar_order_id | |
| 55 | + WHERE `order`.gar_order_id = #{orderId}) `temp` | |
| 56 | + ON `temp`.gar_order_disposal_tel = disposal.construction_unit_person_phone | |
| 55 | 57 | </select> |
| 56 | 58 | </mapper> | ... | ... |
trash-garbage/src/main/resources/mapper/GarOrderMatchHandlerMapper.xml
| ... | ... | @@ -8,6 +8,7 @@ |
| 8 | 8 | <id property="garId" column="gar_id" jdbcType="VARCHAR"/> |
| 9 | 9 | <result property="garOrderId" column="gar_order_id" jdbcType="VARCHAR"/> |
| 10 | 10 | <result property="garOrderHandlerTel" column="gar_order_handler_tel" jdbcType="VARCHAR"/> |
| 11 | + <result property="garOrderContainerVolume" column="gar_order_container_volume" jdbcType="VARCHAR"/> | |
| 11 | 12 | <result property="garOrderHandlerStatus" column="gar_order_handler_status" jdbcType="TINYINT"/> |
| 12 | 13 | <result property="garCancelFlag" column="gar_cancel_flag" jdbcType="TINYINT"/> |
| 13 | 14 | <result property="garOrderHandlerName" column="gar_order_handler_name" jdbcType="VARCHAR"/> |
| ... | ... | @@ -33,7 +34,7 @@ |
| 33 | 34 | |
| 34 | 35 | <sql id="Base_Column_List"> |
| 35 | 36 | gar_id |
| 36 | - ,gar_order_id,gar_order_handler_tel, | |
| 37 | + ,gar_order_id,gar_order_handler_tel,gar_order_container_volume, | |
| 37 | 38 | gar_order_handler_status,gar_cancel_flag,gar_order_handler_name,gar_order_handler_company_id, |
| 38 | 39 | gar_order_handler_company_name,gar_create_time,gar_update_time, |
| 39 | 40 | gar_craete_by,gar_update_by,gar_reason,gar_handler_car_code | ... | ... |