Commit d2cdb3774ecb5e4dd98693160586e16ed325fb6c

Authored by guzijian
1 parent 4d94e096

feat: 新增派单下发,处理派单逻辑重构。

trash-garbage/src/main/java/com/trash/garbage/controller/GarbageOrderController.java
@@ -76,8 +76,8 @@ public class GarbageOrderController { @@ -76,8 +76,8 @@ public class GarbageOrderController {
76 76
77 @PutMapping("/update") 77 @PutMapping("/update")
78 @Log(title = "修改订单状态", businessType = BusinessType.UPDATE) 78 @Log(title = "修改订单状态", businessType = BusinessType.UPDATE)
79 - public Result<String> uploadOrder(@RequestBody OrderUpdateDto dto) {  
80 - return Result.OK(garOrderService.uploadOrder(dto)); 79 + public Result<String> updateOrder(@RequestBody OrderUpdateDto dto) {
  80 + return Result.OK(garOrderService.updateOrder(dto));
81 } 81 }
82 82
83 @PostMapping("/evaluate") 83 @PostMapping("/evaluate")
@@ -93,16 +93,21 @@ public class GarbageOrderController { @@ -93,16 +93,21 @@ public class GarbageOrderController {
93 } 93 }
94 94
95 @PutMapping("/dispatch") 95 @PutMapping("/dispatch")
96 - public Result<?> dispatchOrders(@RequestBody DispatchDto dto){ 96 + public Result<?> dispatchOrders(@RequestBody DispatchDto dto) {
97 garOrderService.dispatchOrder(dto); 97 garOrderService.dispatchOrder(dto);
98 return Result.OK(); 98 return Result.OK();
99 } 99 }
100 100
101 @GetMapping("/queryDispatch/{orderId}") 101 @GetMapping("/queryDispatch/{orderId}")
102 - public Result<?> queryDispatch(@PathVariable("orderId") String orderId){ 102 + public Result<?> queryDispatch(@PathVariable("orderId") String orderId) {
103 return Result.OK(garOrderService.queryDispatch(orderId)); 103 return Result.OK(garOrderService.queryDispatch(orderId));
104 } 104 }
105 105
  106 + @GetMapping("/queryOrderHandlerStatus/{orderId}")
  107 + public Result<?> queryOrderHandlerStatus(@PathVariable("orderId") String orderId) {
  108 + return Result.OK(garOrderService.queryOrderHandlerStatus(orderId));
  109 + }
  110 +
106 111
107 @PostMapping("/upload/imageUrl") 112 @PostMapping("/upload/imageUrl")
108 public Result<?> uploadImageUrlByType(@RequestBody UploadDto dto) { 113 public Result<?> uploadImageUrlByType(@RequestBody UploadDto dto) {
trash-garbage/src/main/java/com/trash/garbage/mapper/GarOrderMapper.java
@@ -2,6 +2,7 @@ package com.trash.garbage.mapper; @@ -2,6 +2,7 @@ package com.trash.garbage.mapper;
2 2
3 import com.trash.garbage.pojo.domain.GarOrder; 3 import com.trash.garbage.pojo.domain.GarOrder;
4 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  5 +import com.trash.garbage.pojo.vo.GarOrderDriverVo;
5 import org.apache.ibatis.annotations.Param; 6 import org.apache.ibatis.annotations.Param;
6 7
7 import java.util.List; 8 import java.util.List;
@@ -16,7 +17,9 @@ public interface GarOrderMapper extends BaseMapper&lt;GarOrder&gt; { @@ -16,7 +17,9 @@ public interface GarOrderMapper extends BaseMapper&lt;GarOrder&gt; {
16 17
17 List<GarOrder> queryCleanNumberByEnterpriseIds(@Param("list") List<Long> enterpriseIds,@Param("status") Integer value); 18 List<GarOrder> queryCleanNumberByEnterpriseIds(@Param("list") List<Long> enterpriseIds,@Param("status") Integer value);
18 19
19 - List<GarOrder> queryOrderListByTelWithType(@Param("garUserTel") String garUserTel, @Param("type") Integer type,@Param("cancelFlag") Integer value); 20 + List<GarOrderDriverVo> queryOrderListByTelWithType(@Param("garUserTel") String garUserTel, @Param("type") Integer type, @Param("cancelFlag") Integer cancelFlag);
  21 +
  22 + GarOrderDriverVo queryOrderByTelWithType(@Param("garUserTel") String garUserTel, @Param("orderId") String orderId, @Param("cancelFlag") Integer value);
20 } 23 }
21 24
22 25
trash-garbage/src/main/java/com/trash/garbage/mapper/GarOrderMatchHandlerMapper.java
1 package com.trash.garbage.mapper; 1 package com.trash.garbage.mapper;
2 2
3 -import com.trash.garbage.pojo.domain.GarOrderMatchHandler; 3 +
4 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 4 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  5 +import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
  6 +import com.trash.garbage.pojo.vo.DispatchDriverVo;
  7 +import org.apache.ibatis.annotations.Param;
  8 +
  9 +import java.util.List;
5 10
6 /** 11 /**
7 * @author 20412 12 * @author 20412
@@ -11,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -11,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
11 */ 16 */
12 public interface GarOrderMatchHandlerMapper extends BaseMapper<GarOrderMatchHandler> { 17 public interface GarOrderMatchHandlerMapper extends BaseMapper<GarOrderMatchHandler> {
13 18
  19 + List<DispatchDriverVo> queryDriverListWithDispatchStatus(@Param("orderId") String orderId, @Param("companyId") Long id);
14 } 20 }
15 21
16 22
trash-garbage/src/main/java/com/trash/garbage/pojo/domain/GarOrderMatchHandler.java
@@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId; @@ -6,9 +6,10 @@ import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName; 6 import com.baomidou.mybatisplus.annotation.TableName;
7 import java.io.Serializable; 7 import java.io.Serializable;
8 import java.util.Date; 8 import java.util.Date;
9 -import java.util.Objects;  
10 9
11 import lombok.Data; 10 import lombok.Data;
  11 +import org.apache.commons.lang3.builder.EqualsBuilder;
  12 +import org.apache.commons.lang3.builder.HashCodeBuilder;
12 13
13 /** 14 /**
14 * 派单分发处理表 15 * 派单分发处理表
@@ -86,9 +87,21 @@ public class GarOrderMatchHandler implements Serializable { @@ -86,9 +87,21 @@ public class GarOrderMatchHandler implements Serializable {
86 /** 87 /**
87 * 88 *
88 */ 89 */
89 - private String garRemark; 90 + private String garReason;
90 91
91 private Integer garCancelFlag; 92 private Integer garCancelFlag;
  93 + /**
  94 + * 分配车号
  95 + */
  96 + private String garHandlerCarCode;
  97 +
  98 + public String getGarHandlerCarCode() {
  99 + return garHandlerCarCode;
  100 + }
  101 +
  102 + public void setGarHandlerCarCode(String garHandlerCarCode) {
  103 + this.garHandlerCarCode = garHandlerCarCode;
  104 + }
92 105
93 public Integer getGarCancelFlag() { 106 public Integer getGarCancelFlag() {
94 return garCancelFlag; 107 return garCancelFlag;
@@ -197,26 +210,29 @@ public class GarOrderMatchHandler implements Serializable { @@ -197,26 +210,29 @@ public class GarOrderMatchHandler implements Serializable {
197 this.garUpdateBy = garUpdateBy; 210 this.garUpdateBy = garUpdateBy;
198 } 211 }
199 212
200 - public String getGarRemark() {  
201 - return garRemark; 213 + public String getGarReason() {
  214 + return garReason;
202 } 215 }
203 216
204 - public void setGarRemark(String garRemark) {  
205 - this.garRemark = garRemark; 217 + public void setGarReason(String garReason) {
  218 + this.garReason = garReason;
206 } 219 }
207 220
208 221
209 @Override 222 @Override
210 public boolean equals(Object o) { 223 public boolean equals(Object o) {
211 if (this == o) return true; 224 if (this == o) return true;
  225 +
212 if (o == null || getClass() != o.getClass()) return false; 226 if (o == null || getClass() != o.getClass()) return false;
  227 +
213 GarOrderMatchHandler that = (GarOrderMatchHandler) o; 228 GarOrderMatchHandler that = (GarOrderMatchHandler) o;
214 - return Objects.equals(getGarId(), that.getGarId()) && Objects.equals(getGarOrderId(), that.getGarOrderId()) && Objects.equals(getGarOrderHandlerTel(), that.getGarOrderHandlerTel()) && Objects.equals(getGarOrderHandlerStatus(), that.getGarOrderHandlerStatus()) && Objects.equals(getGarOrderStatus(), that.getGarOrderStatus()) && Objects.equals(getGarOrderHandlerName(), that.getGarOrderHandlerName()) && Objects.equals(getGarOrderHandlerCompanyId(), that.getGarOrderHandlerCompanyId()) && Objects.equals(getGarOrderHandlerCompanyName(), that.getGarOrderHandlerCompanyName()) && Objects.equals(getGarCreateTime(), that.getGarCreateTime()) && Objects.equals(getGarUpdateTime(), that.getGarUpdateTime()) && Objects.equals(getGarCreateBy(), that.getGarCreateBy()) && Objects.equals(getGarUpdateBy(), that.getGarUpdateBy()) && Objects.equals(getGarRemark(), that.getGarRemark()) && Objects.equals(getGarCancelFlag(), that.getGarCancelFlag()); 229 +
  230 + return new EqualsBuilder().append(getGarId(), that.getGarId()).append(getGarOrderId(), that.getGarOrderId()).append(getGarOrderHandlerTel(), that.getGarOrderHandlerTel()).append(getGarOrderHandlerStatus(), that.getGarOrderHandlerStatus()).append(getGarOrderStatus(), that.getGarOrderStatus()).append(getGarOrderHandlerName(), that.getGarOrderHandlerName()).append(getGarOrderHandlerCompanyId(), that.getGarOrderHandlerCompanyId()).append(getGarOrderHandlerCompanyName(), that.getGarOrderHandlerCompanyName()).append(getGarCreateTime(), that.getGarCreateTime()).append(getGarUpdateTime(), that.getGarUpdateTime()).append(getGarCreateBy(), that.getGarCreateBy()).append(getGarUpdateBy(), that.getGarUpdateBy()).append(getGarReason(), that.getGarReason()).append(getGarCancelFlag(), that.getGarCancelFlag()).append(getGarHandlerCarCode(), that.getGarHandlerCarCode()).isEquals();
215 } 231 }
216 232
217 @Override 233 @Override
218 public int hashCode() { 234 public int hashCode() {
219 - return Objects.hash(getGarId(), getGarOrderId(), getGarOrderHandlerTel(), getGarOrderHandlerStatus(), getGarOrderStatus(), getGarOrderHandlerName(), getGarOrderHandlerCompanyId(), getGarOrderHandlerCompanyName(), getGarCreateTime(), getGarUpdateTime(), getGarCreateBy(), getGarUpdateBy(), getGarRemark(), getGarCancelFlag()); 235 + return new HashCodeBuilder(17, 37).append(getGarId()).append(getGarOrderId()).append(getGarOrderHandlerTel()).append(getGarOrderHandlerStatus()).append(getGarOrderStatus()).append(getGarOrderHandlerName()).append(getGarOrderHandlerCompanyId()).append(getGarOrderHandlerCompanyName()).append(getGarCreateTime()).append(getGarUpdateTime()).append(getGarCreateBy()).append(getGarUpdateBy()).append(getGarReason()).append(getGarCancelFlag()).append(getGarHandlerCarCode()).toHashCode();
220 } 236 }
221 237
222 @Override 238 @Override
@@ -234,8 +250,9 @@ public class GarOrderMatchHandler implements Serializable { @@ -234,8 +250,9 @@ public class GarOrderMatchHandler implements Serializable {
234 ", garUpdateTime=" + garUpdateTime + 250 ", garUpdateTime=" + garUpdateTime +
235 ", garCreateBy='" + garCreateBy + '\'' + 251 ", garCreateBy='" + garCreateBy + '\'' +
236 ", garUpdateBy='" + garUpdateBy + '\'' + 252 ", garUpdateBy='" + garUpdateBy + '\'' +
237 - ", garRemark='" + garRemark + '\'' + 253 + ", garRemark='" + garReason + '\'' +
238 ", garCancelFlag=" + garCancelFlag + 254 ", garCancelFlag=" + garCancelFlag +
  255 + ", garHandlerCarCode='" + garHandlerCarCode + '\'' +
239 '}'; 256 '}';
240 } 257 }
241 } 258 }
242 \ No newline at end of file 259 \ No newline at end of file
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/DispatchDto.java
1 package com.trash.garbage.pojo.dto; 1 package com.trash.garbage.pojo.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
  4 +import org.apache.commons.lang3.builder.EqualsBuilder;
  5 +import org.apache.commons.lang3.builder.HashCodeBuilder;
4 6
5 import java.util.List; 7 import java.util.List;
6 8
7 @Data 9 @Data
8 public class DispatchDto { 10 public class DispatchDto {
9 private String garOrderId; 11 private String garOrderId;
10 - private List<String> tel; 12 + private List<DispatchDetail> dispatchList;
11 13
  14 +
  15 + @Data
  16 + public static class DispatchDetail{
  17 + private String carCode;
  18 + private String tel;
  19 + private String name;
  20 +
  21 + public String getCarCode() {
  22 + return carCode;
  23 + }
  24 +
  25 + public void setCarCode(String carCode) {
  26 + this.carCode = carCode;
  27 + }
  28 +
  29 + public String getTel() {
  30 + return tel;
  31 + }
  32 +
  33 + public void setTel(String tel) {
  34 + this.tel = tel;
  35 + }
  36 +
  37 + public String getName() {
  38 + return name;
  39 + }
  40 +
  41 + public void setName(String name) {
  42 + this.name = name;
  43 + }
  44 +
  45 + @Override
  46 + public String toString() {
  47 + return "DispatchDetail{" +
  48 + "carCode='" + carCode + '\'' +
  49 + ", tel='" + tel + '\'' +
  50 + ", name='" + name + '\'' +
  51 + '}';
  52 + }
  53 +
  54 +
  55 + @Override
  56 + public boolean equals(Object o) {
  57 + if (this == o) return true;
  58 +
  59 + if (o == null || getClass() != o.getClass()) return false;
  60 +
  61 + DispatchDetail that = (DispatchDetail) o;
  62 +
  63 + return new EqualsBuilder().append(getCarCode(), that.getCarCode()).append(getTel(), that.getTel()).append(getName(), that.getName()).isEquals();
  64 + }
  65 +
  66 + @Override
  67 + public int hashCode() {
  68 + return new HashCodeBuilder(17, 37).append(getCarCode()).append(getTel()).append(getName()).toHashCode();
  69 + }
  70 + }
  71 +
  72 +
  73 +
  74 + public String getGarOrderId() {
  75 + return garOrderId;
  76 + }
  77 +
  78 + public void setGarOrderId(String garOrderId) {
  79 + this.garOrderId = garOrderId;
  80 + }
  81 +
  82 + public List<DispatchDetail> getDispatchList() {
  83 + return dispatchList;
  84 + }
  85 +
  86 + public void setDispatchList(List<DispatchDetail> dispatchList) {
  87 + this.dispatchList = dispatchList;
  88 + }
  89 +
  90 +
  91 + @Override
  92 + public String toString() {
  93 + return "DispatchDto{" +
  94 + "garOrderId='" + garOrderId + '\'' +
  95 + ", detailList=" + dispatchList +
  96 + '}';
  97 + }
  98 +
  99 + @Override
  100 + public boolean equals(Object o) {
  101 + if (this == o) return true;
  102 +
  103 + if (o == null || getClass() != o.getClass()) return false;
  104 +
  105 + DispatchDto that = (DispatchDto) o;
  106 +
  107 + return new EqualsBuilder().append(getGarOrderId(), that.getGarOrderId()).append(getDispatchList(), that.getDispatchList()).isEquals();
  108 + }
  109 +
  110 + @Override
  111 + public int hashCode() {
  112 + return new HashCodeBuilder(17, 37).append(getGarOrderId()).append(getDispatchList()).toHashCode();
  113 + }
12 } 114 }
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/DispatchDriverVo.java
@@ -3,49 +3,114 @@ package com.trash.garbage.pojo.vo; @@ -3,49 +3,114 @@ package com.trash.garbage.pojo.vo;
3 import lombok.EqualsAndHashCode; 3 import lombok.EqualsAndHashCode;
4 import lombok.ToString; 4 import lombok.ToString;
5 5
  6 +import java.util.List;
  7 +
6 /** 8 /**
7 * @author 20412 9 * @author 20412
8 */ 10 */
9 @ToString 11 @ToString
10 @EqualsAndHashCode 12 @EqualsAndHashCode
11 public class DispatchDriverVo { 13 public class DispatchDriverVo {
12 - private String name;  
13 - private String tel;  
14 14
15 - private Boolean checked;  
16 15
  16 + /**
  17 + * 车牌号
  18 + */
17 private String licensePlateNumber; 19 private String licensePlateNumber;
  20 + /**
  21 + * 车辆类型
  22 + */
  23 + private String containerVolume;
18 24
19 - public String getLicensePlateNumber() {  
20 - return licensePlateNumber;  
21 - } 25 + private List<Personnel> personnelInfo;
22 26
23 - public void setLicensePlateNumber(String licensePlateNumber) {  
24 - this.licensePlateNumber = licensePlateNumber; 27 + /**
  28 + * 人员信息
  29 + */
  30 + @EqualsAndHashCode
  31 + public static class Personnel {
  32 + /**
  33 + * 姓名
  34 + */
  35 + private String name;
  36 + /**
  37 + * 手机号
  38 + */
  39 + private String tel;
  40 +
  41 + /**
  42 + * 是否选择
  43 + */
  44 + private Boolean checked;
  45 +
  46 + private String garHandlerCarCode;
  47 +
  48 + @Override
  49 + public String toString() {
  50 + return "Personnel{" +
  51 + "name='" + name + '\'' +
  52 + ", tel='" + tel + '\'' +
  53 + ", checked=" + checked +
  54 + ", garHandlerCarCode='" + garHandlerCarCode + '\'' +
  55 + '}';
  56 + }
  57 +
  58 + public String getGarHandlerCarCode() {
  59 + return garHandlerCarCode;
  60 + }
  61 +
  62 + public void setGarHandlerCarCode(String garHandlerCarCode) {
  63 + this.garHandlerCarCode = garHandlerCarCode;
  64 + }
  65 +
  66 + public String getName() {
  67 + return name;
  68 + }
  69 +
  70 + public void setName(String name) {
  71 + this.name = name;
  72 + }
  73 +
  74 + public String getTel() {
  75 + return tel;
  76 + }
  77 +
  78 + public void setTel(String tel) {
  79 + this.tel = tel;
  80 + }
  81 +
  82 + public Boolean getChecked() {
  83 + return checked;
  84 + }
  85 +
  86 + public void setChecked(Boolean checked) {
  87 + this.checked = checked;
  88 + }
25 } 89 }
26 90
27 - public Boolean getChecked() {  
28 - return checked; 91 + public List<Personnel> getPersonnelInfo() {
  92 + return personnelInfo;
29 } 93 }
30 94
31 - public void setChecked(Boolean checked) {  
32 - this.checked = checked; 95 + public void setPersonnelInfo(List<Personnel> personnelInfo) {
  96 + this.personnelInfo = personnelInfo;
33 } 97 }
34 98
35 - public String getName() {  
36 - return name; 99 + public String getContainerVolume() {
  100 + return containerVolume;
37 } 101 }
38 102
39 - public void setName(String name) {  
40 - this.name = name; 103 + public void setContainerVolume(String containerVolume) {
  104 + this.containerVolume = containerVolume;
41 } 105 }
42 106
43 - public String getTel() {  
44 - return tel; 107 + public String getLicensePlateNumber() {
  108 + return licensePlateNumber;
45 } 109 }
46 110
47 - public void setTel(String tel) {  
48 - this.tel = tel; 111 + public void setLicensePlateNumber(String licensePlateNumber) {
  112 + this.licensePlateNumber = licensePlateNumber;
49 } 113 }
50 114
  115 +
51 } 116 }
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/GarOrderDriverVo.java 0 → 100644
  1 +package com.trash.garbage.pojo.vo;
  2 +
  3 +import com.trash.garbage.pojo.domain.GarOrder;
  4 +import lombok.EqualsAndHashCode;
  5 +
  6 +/**
  7 + * 用于驾驶员的状态管理
  8 + */
  9 +@EqualsAndHashCode
  10 +public class GarOrderDriverVo extends GarOrder {
  11 +
  12 + /**
  13 + * gar_order_status 代表订单的全局状态 员order 的gar_order_handler_status 变为代表分发后驾驶员自己处理派单的状态
  14 + */
  15 + private Integer garOrderStatus;
  16 +
  17 + private String garHandlerCarCode;
  18 +
  19 + private Integer garCancelFlag;
  20 +
  21 + @Override
  22 + public String toString() {
  23 + return "GarOrderDriverVo{" +
  24 + "garOrderStatus=" + garOrderStatus +
  25 + ", garHandlerCarCode='" + garHandlerCarCode + '\'' +
  26 + ", garCancelFlag=" + garCancelFlag +
  27 + '}';
  28 + }
  29 +
  30 + public String getGarHandlerCarCode() {
  31 + return garHandlerCarCode;
  32 + }
  33 +
  34 + public void setGarHandlerCarCode(String garHandlerCarCode) {
  35 + this.garHandlerCarCode = garHandlerCarCode;
  36 + }
  37 +
  38 + public Integer getGarOrderStatus() {
  39 + return garOrderStatus;
  40 + }
  41 +
  42 + public void setGarOrderStatus(Integer garOrderStatus) {
  43 + this.garOrderStatus = garOrderStatus;
  44 + }
  45 +
  46 + @Override
  47 + public Integer getGarCancelFlag() {
  48 + return garCancelFlag;
  49 + }
  50 +
  51 + @Override
  52 + public void setGarCancelFlag(Integer garCancelFlag) {
  53 + this.garCancelFlag = garCancelFlag;
  54 + }
  55 +}
trash-garbage/src/main/java/com/trash/garbage/pojo/vo/OrderDetailVo.java
@@ -123,6 +123,13 @@ public class OrderDetailVo { @@ -123,6 +123,13 @@ public class OrderDetailVo {
123 */ 123 */
124 private Boolean handleFlag; 124 private Boolean handleFlag;
125 125
  126 +
  127 + private Integer garOrderMatchFlag;
  128 +
  129 + private Integer garOrderStatus;
  130 +
  131 + private String garHandlerCarCode;
  132 +
126 public OrderDetailVo() { 133 public OrderDetailVo() {
127 this.currentImages = new ArrayList<>(); 134 this.currentImages = new ArrayList<>();
128 this.putDownImages = new ArrayList<>(); 135 this.putDownImages = new ArrayList<>();
@@ -130,6 +137,65 @@ public class OrderDetailVo { @@ -130,6 +137,65 @@ public class OrderDetailVo {
130 this.garHandlerEvaluateFlag = GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue(); 137 this.garHandlerEvaluateFlag = GlobalStatus.GarOrderStatus.EVALUATE_ORDER_NO.getValue();
131 } 138 }
132 139
  140 + @Override
  141 + public String toString() {
  142 + return "OrderDetailVo{" +
  143 + "garCancelFlag=" + garCancelFlag +
  144 + ", garReason='" + garReason + '\'' +
  145 + ", garOrderHandlerId='" + garOrderHandlerId + '\'' +
  146 + ", garEvaluateFlag=" + garEvaluateFlag +
  147 + ", garHandlerEvaluateFlag=" + garHandlerEvaluateFlag +
  148 + ", garOrderHandleName='" + garOrderHandleName + '\'' +
  149 + ", garOrderHandleTel='" + garOrderHandleTel + '\'' +
  150 + ", garOrderAddress='" + garOrderAddress + '\'' +
  151 + ", currentImages=" + currentImages +
  152 + ", putOnImages=" + putOnImages +
  153 + ", putDownImages=" + putDownImages +
  154 + ", garOrderAddressDetails='" + garOrderAddressDetails + '\'' +
  155 + ", garOrderContactName='" + garOrderContactName + '\'' +
  156 + ", garOrderTrashType='" + garOrderTrashType + '\'' +
  157 + ", garCarInfoList=" + garCarInfoList +
  158 + ", garOrderHandlerStatus=" + garOrderHandlerStatus +
  159 + ", garCreateTime=" + garCreateTime +
  160 + ", garOrderContactTel='" + garOrderContactTel + '\'' +
  161 + ", garOrderCompanyId='" + garOrderCompanyId + '\'' +
  162 + ", garOrderCompanyName='" + garOrderCompanyName + '\'' +
  163 + ", garOrderCompanyTel='" + garOrderCompanyTel + '\'' +
  164 + ", garOrderAgreementTime='" + garOrderAgreementTime + '\'' +
  165 + ", garRemark='" + garRemark + '\'' +
  166 + ", handleFlag=" + handleFlag +
  167 + ", garOrderMatchFlag=" + garOrderMatchFlag +
  168 + ", garOrderStatus=" + garOrderStatus +
  169 + ", garHandlerCarCode='" + garHandlerCarCode + '\'' +
  170 + '}';
  171 + }
  172 +
  173 +
  174 + public String getGarHandlerCarCode() {
  175 + return garHandlerCarCode;
  176 + }
  177 +
  178 + public void setGarHandlerCarCode(String garHandlerCarCode) {
  179 + this.garHandlerCarCode = garHandlerCarCode;
  180 + }
  181 +
  182 + public Integer getGarOrderStatus() {
  183 + return garOrderStatus;
  184 + }
  185 +
  186 + public void setGarOrderStatus(Integer garOrderStatus) {
  187 + this.garOrderStatus = garOrderStatus;
  188 + }
  189 +
  190 +
  191 + public Integer getGarOrderMatchFlag() {
  192 + return garOrderMatchFlag;
  193 + }
  194 +
  195 + public void setGarOrderMatchFlag(Integer garOrderMatchFlag) {
  196 + this.garOrderMatchFlag = garOrderMatchFlag;
  197 + }
  198 +
133 public List<GarOrderCar> getGarCarInfoList() { 199 public List<GarOrderCar> getGarCarInfoList() {
134 return garCarInfoList; 200 return garCarInfoList;
135 } 201 }
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderMatchHandlerService.java
@@ -2,6 +2,10 @@ package com.trash.garbage.service; @@ -2,6 +2,10 @@ package com.trash.garbage.service;
2 2
3 import com.trash.garbage.pojo.domain.GarOrderMatchHandler; 3 import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
4 import com.baomidou.mybatisplus.extension.service.IService; 4 import com.baomidou.mybatisplus.extension.service.IService;
  5 +import com.trash.garbage.pojo.vo.DispatchDriverVo;
  6 +import org.apache.ibatis.annotations.Param;
  7 +
  8 +import java.util.List;
5 9
6 /** 10 /**
7 * @author 20412 11 * @author 20412
@@ -10,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService; @@ -10,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
10 */ 14 */
11 public interface GarOrderMatchHandlerService extends IService<GarOrderMatchHandler> { 15 public interface GarOrderMatchHandlerService extends IService<GarOrderMatchHandler> {
12 16
  17 + List<DispatchDriverVo> queryDriverListWithDispatchStatus(String orderId, Long companyId);
13 } 18 }
trash-garbage/src/main/java/com/trash/garbage/service/GarOrderService.java
@@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo; @@ -5,6 +5,7 @@ import com.github.pagehelper.PageInfo;
5 import com.trash.enterprise.domain.TransportationEnterprise; 5 import com.trash.enterprise.domain.TransportationEnterprise;
6 import com.trash.garbage.pojo.domain.GarOrder; 6 import com.trash.garbage.pojo.domain.GarOrder;
7 import com.trash.garbage.pojo.domain.GarOrderEvaluate; 7 import com.trash.garbage.pojo.domain.GarOrderEvaluate;
  8 +import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
8 import com.trash.garbage.pojo.dto.*; 9 import com.trash.garbage.pojo.dto.*;
9 import com.trash.garbage.pojo.vo.DispatchDriverVo; 10 import com.trash.garbage.pojo.vo.DispatchDriverVo;
10 import com.trash.garbage.pojo.vo.OrderDetailVo; 11 import com.trash.garbage.pojo.vo.OrderDetailVo;
@@ -47,7 +48,7 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; { @@ -47,7 +48,7 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; {
47 * @param dto 48 * @param dto
48 * @return 49 * @return
49 */ 50 */
50 - String uploadOrder(OrderUpdateDto dto); 51 + String updateOrder(OrderUpdateDto dto);
51 52
52 /** 53 /**
53 * 上传图片url执行图片type 54 * 上传图片url执行图片type
@@ -71,4 +72,6 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; { @@ -71,4 +72,6 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; {
71 void dispatchOrder(DispatchDto dto); 72 void dispatchOrder(DispatchDto dto);
72 73
73 List<DispatchDriverVo> queryDispatch(String orderId); 74 List<DispatchDriverVo> queryDispatch(String orderId);
  75 +
  76 + List<GarOrderMatchHandler> queryOrderHandlerStatus(String orderId);
74 } 77 }
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderMatchHandlerServiceImpl.java
1 package com.trash.garbage.service.impl; 1 package com.trash.garbage.service.impl;
2 2
3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4 +import com.trash.garbage.mapper.GarOrderMatchHandlerMapper;
4 import com.trash.garbage.pojo.domain.GarOrderMatchHandler; 5 import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
  6 +import com.trash.garbage.pojo.vo.DispatchDriverVo;
5 import com.trash.garbage.service.GarOrderMatchHandlerService; 7 import com.trash.garbage.service.GarOrderMatchHandlerService;
6 -import com.trash.garbage.mapper.GarOrderMatchHandlerMapper;  
7 import org.springframework.stereotype.Service; 8 import org.springframework.stereotype.Service;
8 9
  10 +import java.util.List;
  11 +
9 /** 12 /**
10 -* @author 20412  
11 -* @description 针对表【gar_order_match_handler(派单分发处理表)】的数据库操作Service实现  
12 -* @createDate 2024-01-09 14:26:09  
13 -*/ 13 + * @author 20412
  14 + * @description 针对表【gar_order_match_handler(派单分发处理表)】的数据库操作Service实现
  15 + * @createDate 2024-01-09 14:26:09
  16 + */
14 @Service 17 @Service
15 public class GarOrderMatchHandlerServiceImpl extends ServiceImpl<GarOrderMatchHandlerMapper, GarOrderMatchHandler> 18 public class GarOrderMatchHandlerServiceImpl extends ServiceImpl<GarOrderMatchHandlerMapper, GarOrderMatchHandler>
16 - implements GarOrderMatchHandlerService{ 19 + implements GarOrderMatchHandlerService {
17 20
  21 + @Override
  22 + public List<DispatchDriverVo> queryDriverListWithDispatchStatus(String orderId, Long id) {
  23 + return baseMapper.queryDriverListWithDispatchStatus(orderId, id);
  24 + }
18 } 25 }
19 26
20 27
trash-garbage/src/main/java/com/trash/garbage/service/impl/GarOrderServiceImpl.java
@@ -10,6 +10,7 @@ import com.trash.garbage.global.ResultCode; @@ -10,6 +10,7 @@ import com.trash.garbage.global.ResultCode;
10 import com.trash.garbage.pojo.domain.*; 10 import com.trash.garbage.pojo.domain.*;
11 import com.trash.garbage.pojo.dto.*; 11 import com.trash.garbage.pojo.dto.*;
12 import com.trash.garbage.pojo.vo.DispatchDriverVo; 12 import com.trash.garbage.pojo.vo.DispatchDriverVo;
  13 +import com.trash.garbage.pojo.vo.GarOrderDriverVo;
13 import com.trash.garbage.pojo.vo.TransportationEnterpriseVo; 14 import com.trash.garbage.pojo.vo.TransportationEnterpriseVo;
14 import com.trash.garbage.service.*; 15 import com.trash.garbage.service.*;
15 import org.apache.commons.lang3.StringUtils; 16 import org.apache.commons.lang3.StringUtils;
@@ -111,12 +112,58 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -111,12 +112,58 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
111 112
112 @Override 113 @Override
113 public OrderDetailVo queryOrderDetail(String id) { 114 public OrderDetailVo queryOrderDetail(String id) {
114 - GarOrder order = this.getById(id); 115 +
115 GarUser user = garUserService.getById(SecurityUtils.getLoginUser().getUser().getUserId()); 116 GarUser user = garUserService.getById(SecurityUtils.getLoginUser().getUser().getUserId());
  117 + if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())
  118 + || user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription())) {
  119 + return getOrderDetailVoResponsible(id, user);
  120 + }
  121 + // TODO 订单分发获取 处理人员
  122 + if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.DRIVER_USER.getDescription())) {
  123 + return getOrderDetailVoDriver(id, user);
  124 + }
  125 + throw new BizException(ResultCode.CODE_500, "没有当前角色");
  126 + }
  127 +
  128 + private OrderDetailVo getOrderDetailVoDriver(String orderId, GarUser user) {
  129 + LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>();
  130 + qwi.eq(GarOrderImage::getGarOrderId, orderId)
  131 + .eq(GarOrderImage::getGarCreateBy, user.getGarUserId());
  132 + OrderDetailVo vo = new OrderDetailVo();
  133 + GarOrderDriverVo orderVo = baseMapper.queryOrderByTelWithType(user.getGarUserTel(), orderId, GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());
  134 + vo.setHandleFlag(true);
  135 + BeanUtils.copyBeanProp(vo, orderVo);
  136 + // 获取图片
  137 + List<GarOrderImage> imageAll = new ArrayList<>();
  138 + List<GarOrderImage> currentImageList = garOrderImageService.list(new LambdaQueryWrapper<GarOrderImage>()
  139 + .eq(GarOrderImage::getGarOrderId, orderId)
  140 + .eq(GarOrderImage::getGarOrderImageType, GlobalStatus.GarOrderStatus.IMAGE_TYPE_CURRENT.getValue()));
  141 + imageAll.addAll(garOrderImageService.list(qwi));
  142 + imageAll.addAll(currentImageList);
  143 + for (GarOrderImage image : imageAll) {
  144 + if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_CURRENT.getValue().equals(image.getGarOrderImageType())) {
  145 + vo.getCurrentImages().add(image.getGarOrderImageUrl());
  146 + }
  147 + if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_ON.getValue().equals(image.getGarOrderImageType())) {
  148 + vo.getPutOnImages().add(image.getGarOrderImageUrl());
  149 + }
  150 + if (GlobalStatus.GarOrderStatus.IMAGE_TYPE_PUT_DOWN.getValue().equals(image.getGarOrderImageType())) {
  151 + vo.getPutDownImages().add(image.getGarOrderImageUrl());
  152 + }
  153 + }
  154 + // 获取车辆信息
  155 + LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>();
  156 + qwc.eq(GarOrderCar::getGarOrderId, orderVo.getGarOrderId());
  157 + List<GarOrderCar> carList = garOrderCarService.list(qwc);
  158 + vo.setGarCarInfoList(carList);
  159 + return vo;
  160 + }
  161 +
  162 + private OrderDetailVo getOrderDetailVoResponsible(String id, GarUser user) {
  163 + GarOrder order = this.getById(id);
116 LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>(); 164 LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>();
117 qwi.eq(GarOrderImage::getGarOrderId, id); 165 qwi.eq(GarOrderImage::getGarOrderId, id);
118 OrderDetailVo vo = new OrderDetailVo(); 166 OrderDetailVo vo = new OrderDetailVo();
119 -// List<DriverVo> driverVos = null;  
120 if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())) { 167 if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())) {
121 vo.setHandleFlag(true); 168 vo.setHandleFlag(true);
122 // 防止其他人员处理订单 169 // 防止其他人员处理订单
@@ -138,23 +185,11 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -138,23 +185,11 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
138 vo.getPutDownImages().add(image.getGarOrderImageUrl()); 185 vo.getPutDownImages().add(image.getGarOrderImageUrl());
139 } 186 }
140 } 187 }
141 -  
142 // 获取车辆信息 188 // 获取车辆信息
143 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>(); 189 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>();
144 qwc.eq(GarOrderCar::getGarOrderId, order.getGarOrderId()); 190 qwc.eq(GarOrderCar::getGarOrderId, order.getGarOrderId());
145 List<GarOrderCar> carList = garOrderCarService.list(qwc); 191 List<GarOrderCar> carList = garOrderCarService.list(qwc);
146 vo.setGarCarInfoList(carList); 192 vo.setGarCarInfoList(carList);
147 - // TODO 订单分发获取 处理人员  
148 -// if (StringUtils.isNotEmpty(vo.getGarOrderHandlerId())) {  
149 -// GarUser handleUser = garUserService.getById(vo.getGarOrderHandlerId());  
150 -// DriverVo driverVo = new DriverVo();  
151 -// driverVo.setPhoneNo(handleUser.getGarUserTel());  
152 -// driverVos = driverService.selectDriverList(driverVo);  
153 -// if (CollectionUtil.isNotEmpty(driverVos)) {  
154 -// vo.setGarOrderHandleName(driverVos.get(0).getName());  
155 -// vo.setGarOrderHandleTel(driverVos.get(0).getPhoneNo());  
156 -// }  
157 -// }  
158 return vo; 193 return vo;
159 } 194 }
160 195
@@ -178,6 +213,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -178,6 +213,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
178 PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize); 213 PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize);
179 return pageInfo; 214 return pageInfo;
180 } 215 }
  216 +
181 // 全部 217 // 全部
182 if (GlobalStatus.GarOrderStatus.ALL_ORDER.getValue().equals(type)) { 218 if (GlobalStatus.GarOrderStatus.ALL_ORDER.getValue().equals(type)) {
183 qw.eq(GarOrder::getGarOrderUserId, userId); 219 qw.eq(GarOrder::getGarOrderUserId, userId);
@@ -192,14 +228,14 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -192,14 +228,14 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
192 if (GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(type) 228 if (GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(type)
193 || GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(type) 229 || GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(type)
194 || GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(type)) { 230 || GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(type)) {
195 - List<GarOrder> orderList = baseMapper.queryOrderListByTelWithType(user.getGarUserTel(), type, GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());  
196 - PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize); 231 + List<GarOrderDriverVo> orderList = baseMapper.queryOrderListByTelWithType(user.getGarUserTel(), type, GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());
  232 + PageInfo<GarOrderDriverVo> pageInfo = new PageInfo<GarOrderDriverVo>(orderList, pageSize);
197 return pageInfo; 233 return pageInfo;
198 } 234 }
199 // 全部 235 // 全部
200 if (GlobalStatus.GarOrderStatus.ALL_ORDER.getValue().equals(type)) { 236 if (GlobalStatus.GarOrderStatus.ALL_ORDER.getValue().equals(type)) {
201 - List<GarOrder> orderList = baseMapper.queryOrderListByTelWithType(user.getGarUserTel(), null, GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());  
202 - PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize); 237 + List<GarOrderDriverVo> orderList = baseMapper.queryOrderListByTelWithType(user.getGarUserTel(), null, GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());
  238 + PageInfo<GarOrderDriverVo> pageInfo = new PageInfo<GarOrderDriverVo>(orderList, pageSize);
203 return pageInfo; 239 return pageInfo;
204 } 240 }
205 } 241 }
@@ -225,10 +261,59 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -225,10 +261,59 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
225 } 261 }
226 262
227 @Override 263 @Override
228 - public String uploadOrder(OrderUpdateDto dto) {  
229 - GarOrder order = getById(dto.getGarOrderId()); 264 + public String updateOrder(OrderUpdateDto dto) {
230 String userId = SecurityUtils.getLoginUser().getUser().getUserId(); 265 String userId = SecurityUtils.getLoginUser().getUser().getUserId();
231 GarUser user = garUserService.getById(userId); 266 GarUser user = garUserService.getById(userId);
  267 + // 处理用户派单 居民用户 | 企业负责人
  268 + if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())
  269 + || user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.NORMAL_USER.getDescription())) {
  270 + return handlerOrderStatus(dto, user);
  271 + }
  272 + // 处理分发派单 驾驶员
  273 + else if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.DRIVER_USER.getDescription())) {
  274 + return handlerDispatchOrderStatus(dto, user);
  275 + }
  276 +
  277 + throw new BizException(ResultCode.CODE_500);
  278 +
  279 + }
  280 +
  281 + private String handlerDispatchOrderStatus(OrderUpdateDto dto, GarUser user) {
  282 +// GarOrder order = getById(dto.getGarOrderId());
  283 + GarOrderDriverVo order = baseMapper.queryOrderByTelWithType(user.getGarUserTel(), dto.getGarOrderId(), GlobalStatus.GarOrderStatus.CANCEL_FLAG_NO.getValue());
  284 + // 取消订单
  285 + if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_YES.getValue().equals(dto.getGarCancelFlag())) {
  286 + LambdaUpdateWrapper<GarOrderMatchHandler> uw = new LambdaUpdateWrapper<>();
  287 + uw.set(GarOrderMatchHandler::getGarCancelFlag, dto.getGarCancelFlag())
  288 + .set(GarOrderMatchHandler::getGarReason, dto.getGarReason())
  289 + .eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId());
  290 + handlerService.update(uw);
  291 + return "已取消派单";
  292 + } else {
  293 + // 公司所属 待清运- 》 清运中
  294 + if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue())
  295 + || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) {
  296 + LambdaUpdateWrapper<GarOrderMatchHandler> uw = new LambdaUpdateWrapper<>();
  297 + uw.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId())
  298 + .set(GarOrderMatchHandler::getGarOrderStatus, GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue())
  299 + .set(GarOrderMatchHandler::getGarOrderHandlerTel, user.getGarUserTel());
  300 + handlerService.update(uw);
  301 + return "已接受派单";
  302 + }
  303 + // 运输驾驶员 清运中 ==》已完成
  304 + if (GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(order.getGarOrderHandlerStatus())
  305 + && GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue().equals(dto.getHandleType())) {
  306 + LambdaUpdateWrapper<GarOrderMatchHandler> uw = new LambdaUpdateWrapper<>();
  307 + uw.eq(GarOrderMatchHandler::getGarOrderId, dto.getGarOrderId())
  308 + .set(GarOrderMatchHandler::getGarOrderStatus, GlobalStatus.GarOrderStatus.SUCCESS_ORDER.getValue());
  309 + handlerService.update(uw);
  310 + }
  311 + return "派单已完成";
  312 + }
  313 + }
  314 +
  315 + private String handlerOrderStatus(OrderUpdateDto dto, GarUser user) {
  316 + GarOrder order = getById(dto.getGarOrderId());
232 // 取消订单 317 // 取消订单
233 if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_YES.getValue().equals(dto.getGarCancelFlag())) { 318 if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_YES.getValue().equals(dto.getGarCancelFlag())) {
234 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>(); 319 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>();
@@ -239,7 +324,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -239,7 +324,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
239 return "订单取消成功"; 324 return "订单取消成功";
240 } 325 }
241 // 企业负责人 TODO 326 // 企业负责人 TODO
242 - if (GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription().equals(user.getGarUserType())) { 327 + else {
243 // 公司所属 待清运- 》 清运中 328 // 公司所属 待清运- 》 清运中
244 if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue()) 329 if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue())
245 || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) { 330 || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) {
@@ -265,9 +350,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -265,9 +350,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
265 } 350 }
266 return "派单已完成"; 351 return "派单已完成";
267 } 352 }
268 - throw new BizException(ResultCode.CODE_500);  
269 -  
270 -// return "什么都没发生";  
271 } 353 }
272 354
273 @Override 355 @Override
@@ -397,10 +479,12 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -397,10 +479,12 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
397 public void dispatchOrder(DispatchDto dto) { 479 public void dispatchOrder(DispatchDto dto) {
398 // TODO 480 // TODO
399 GarOrder order = getById(dto.getGarOrderId()); 481 GarOrder order = getById(dto.getGarOrderId());
400 - List<GarOrderMatchHandler> handlerList = new ArrayList<>(dto.getTel().size());  
401 - for (String tel : dto.getTel()) { 482 + List<GarOrderMatchHandler> handlerList = new ArrayList<>(dto.getDispatchList().size());
  483 + for (DispatchDto.DispatchDetail detail : dto.getDispatchList()) {
402 GarOrderMatchHandler handler = new GarOrderMatchHandler(); 484 GarOrderMatchHandler handler = new GarOrderMatchHandler();
403 - handler.setGarOrderHandlerTel(tel); 485 + handler.setGarOrderHandlerTel(detail.getTel());
  486 + handler.setGarOrderHandlerName(detail.getName());
  487 + handler.setGarHandlerCarCode(detail.getCarCode());
404 handler.setGarCancelFlag(order.getGarCancelFlag()); 488 handler.setGarCancelFlag(order.getGarCancelFlag());
405 handler.setGarOrderId(order.getGarOrderId()); 489 handler.setGarOrderId(order.getGarOrderId());
406 handler.setGarOrderHandlerStatus(order.getGarOrderHandlerStatus()); 490 handler.setGarOrderHandlerStatus(order.getGarOrderHandlerStatus());
@@ -415,30 +499,30 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt; @@ -415,30 +499,30 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
415 } 499 }
416 500
417 @Override 501 @Override
  502 + @Transactional(rollbackFor = Exception.class)
418 public List<DispatchDriverVo> queryDispatch(String orderId) { 503 public List<DispatchDriverVo> queryDispatch(String orderId) {
  504 + GarOrder order = getById(orderId);
  505 + order.setGarOrderMatchFlag(GlobalStatus.GarOrderStatus.MATCH_YES.getValue());
  506 + updateById(order);
419 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber(); 507 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber();
420 TransportationEnterprise enterprise = new TransportationEnterprise(); 508 TransportationEnterprise enterprise = new TransportationEnterprise();
421 enterprise.setServicePhone(tel); 509 enterprise.setServicePhone(tel);
422 List<TransportationEnterprise> enterprises = transportationEnterpriseService.selectTransportationEnterpriseList(enterprise); 510 List<TransportationEnterprise> enterprises = transportationEnterpriseService.selectTransportationEnterpriseList(enterprise);
423 - DriverVo vo = new DriverVo();  
424 - vo.setCompanyId(enterprises.get(0).getId());  
425 - List<DriverVo> driverList = iDriverService.selectDriverList(vo);  
426 // 选中的司机 511 // 选中的司机
427 LambdaQueryWrapper<GarOrderMatchHandler> qw = new LambdaQueryWrapper<>(); 512 LambdaQueryWrapper<GarOrderMatchHandler> qw = new LambdaQueryWrapper<>();
428 qw.eq(GarOrderMatchHandler::getGarOrderId, orderId); 513 qw.eq(GarOrderMatchHandler::getGarOrderId, orderId);
429 - Map<String, GarOrderMatchHandler> handlerMap = handlerService.list(qw).stream().collect(Collectors.toMap(GarOrderMatchHandler::getGarOrderHandlerTel, item -> item));  
430 -  
431 - List<DispatchDriverVo> voList = driverList.stream().map(item -> {  
432 - DispatchDriverVo dispatchVo = new DispatchDriverVo();  
433 - dispatchVo.setName(item.getName());  
434 - dispatchVo.setTel(item.getPhoneNo());  
435 -// dispatchVo.setLicensePlateNumber(item.);  
436 -// dispatchVo.setChecked();  
437 - return dispatchVo;  
438 - }).collect(Collectors.toList()); 514 + List<DispatchDriverVo> voList = handlerService.queryDriverListWithDispatchStatus(orderId, enterprises.get(0).getId());
439 return voList; 515 return voList;
440 } 516 }
441 517
  518 + @Override
  519 + public List<GarOrderMatchHandler> queryOrderHandlerStatus(String orderId) {
  520 + List<GarOrderMatchHandler> list =
  521 + handlerService.list(new LambdaQueryWrapper<GarOrderMatchHandler>()
  522 + .eq(GarOrderMatchHandler::getGarOrderId, orderId));
  523 + return list;
  524 + }
  525 +
442 private void handleCleanNumber(TransportationEnterpriseVo vo, List<GarOrder> orderList) { 526 private void handleCleanNumber(TransportationEnterpriseVo vo, List<GarOrder> orderList) {
443 Long cleanNumber = 0L; 527 Long cleanNumber = 0L;
444 for (GarOrder order : orderList) { 528 for (GarOrder order : orderList) {
trash-garbage/src/main/resources/mapper/GarOrderMapper.xml
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 gar_order_company_name,gar_order_company_tel,gar_order_handler_status, 38 gar_order_company_name,gar_order_company_tel,gar_order_handler_status,
39 gar_order_agreement_time,gar_create_time,gar_update_time, 39 gar_order_agreement_time,gar_create_time,gar_update_time,
40 gar_create_by,gar_update_by,gar_remark,gar_reason,gar_cancel_flag, 40 gar_create_by,gar_update_by,gar_remark,gar_reason,gar_cancel_flag,
41 - gar_evaluate_flag,gar_order_car_number,gar_order_car_type,gar_handler_evaluate_flag,gar_order_match_flag 41 + gar_evaluate_flag,gar_handler_evaluate_flag,gar_order_match_flag
42 </sql> 42 </sql>
43 <select id="queryCleanNumberByEnterpriseIds" resultType="com.trash.garbage.pojo.domain.GarOrder"> 43 <select id="queryCleanNumberByEnterpriseIds" resultType="com.trash.garbage.pojo.domain.GarOrder">
44 select gar_order_company_id, count(gar_order_company_id) as count 44 select gar_order_company_id, count(gar_order_company_id) as count
@@ -50,18 +50,41 @@ @@ -50,18 +50,41 @@
50 </foreach> 50 </foreach>
51 group by gar_order_company_id 51 group by gar_order_company_id
52 </select> 52 </select>
53 - <select id="queryOrderListByTelWithType" resultType="com.trash.garbage.pojo.domain.GarOrder">  
54 - select <include refid="Base_Column_List"></include> from gar_order  
55 - where gar_order_id in (  
56 - select gar_order_id from gar_order_match_handler  
57 - where gar_order_handler_tel = #{garUserTel}  
58 - <if test="type != null">  
59 - and gar_order_status = #{type}  
60 - </if>  
61 - <if test="cancelFlag != null">  
62 - and gar_cancel_flag = #{cancelFlag}  
63 - </if>  
64 - )  
65 - 53 + <select id="queryOrderListByTelWithType" resultType="com.trash.garbage.pojo.vo.GarOrderDriverVo">
  54 + SELECT
  55 + `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_order_handler_id,
  56 + `order`.gar_order_address,`order`.gar_order_address_details,`order`.gar_order_contact_name,
  57 + `order`.gar_order_trash_type,`order`.gar_order_contact_tel,`order`.gar_order_company_id,
  58 + `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_match_flag,
  59 + `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag,`order`.gar_order_handler_status gar_order_status,
  60 + `handler`.gar_order_status gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason
  61 + FROM gar_order `order`
  62 + INNER JOIN gar_order_match_handler `handler` ON `order`.gar_order_id = `handler`.gar_order_id
  63 + <where>
  64 + `handler`.gar_order_handler_tel = #{garUserTel}
  65 + <if test="type != null">
  66 + AND `handler`.gar_order_status = #{type}
  67 + </if>
  68 + <if test="cancelFlag != null">
  69 + AND `handler`.gar_cancel_flag = #{cancelFlag}
  70 + </if>
  71 + </where>
  72 + </select>
  73 + <select id="queryOrderByTelWithType" resultType="com.trash.garbage.pojo.vo.GarOrderDriverVo">
  74 + SELECT
  75 + `order`.gar_order_id ,`order`.gar_order_user_id,`order`.gar_order_handler_id,
  76 + `order`.gar_order_address,`order`.gar_order_address_details,`order`.gar_order_contact_name,
  77 + `order`.gar_order_trash_type,`order`.gar_order_contact_tel,`order`.gar_order_company_id,
  78 + `order`.gar_order_company_name,`order`.gar_order_company_tel,`order`.gar_order_match_flag,
  79 + `order`.gar_order_agreement_time,`order`.gar_remark,`order`.gar_handler_evaluate_flag,`order`.gar_order_handler_status gar_order_status,
  80 + `handler`.gar_order_status gar_order_handler_status,`handler`.gar_cancel_flag,`handler`.gar_reason,`handler`.gar_handler_car_code
  81 + FROM gar_order `order`
  82 + INNER JOIN gar_order_match_handler `handler` ON `order`.gar_order_id = `handler`.gar_order_id AND `order`.gar_order_id = #{orderId}
  83 + <where>
  84 + `handler`.gar_order_handler_tel = #{garUserTel}
  85 + <if test="cancelFlag != null">
  86 + AND `handler`.gar_cancel_flag = #{cancelFlag}
  87 + </if>
  88 + </where>
66 </select> 89 </select>
67 </mapper> 90 </mapper>
trash-garbage/src/main/resources/mapper/GarOrderMatchHandlerMapper.xml
@@ -2,28 +2,61 @@ @@ -2,28 +2,61 @@
2 <!DOCTYPE mapper 2 <!DOCTYPE mapper
3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5 -<mapper namespace="com.trash.garbage.pojo.domain.GarOrderMatchHandler"> 5 +<mapper namespace="com.trash.garbage.mapper.GarOrderMatchHandlerMapper">
6 6
7 <resultMap id="BaseResultMap" type="com.trash.garbage.pojo.domain.GarOrderMatchHandler"> 7 <resultMap id="BaseResultMap" type="com.trash.garbage.pojo.domain.GarOrderMatchHandler">
8 - <id property="garId" column="gar_id" jdbcType="VARCHAR"/>  
9 - <result property="garOrderId" column="gar_order_id" jdbcType="VARCHAR"/>  
10 - <result property="garOrderHandlerTel" column="gar_order_handler_tel" jdbcType="VARCHAR"/>  
11 - <result property="garOrderHandlerStatus" column="gar_order_handler_status" jdbcType="TINYINT"/>  
12 - <result property="garCancelFlag" column="gar_cancel_flag" jdbcType="TINYINT"/>  
13 - <result property="garOrderHandlerName" column="gar_order_handler_name" jdbcType="VARCHAR"/>  
14 - <result property="garOrderHandlerCompanyId" column="gar_order_handler_company_id" jdbcType="VARCHAR"/>  
15 - <result property="garOrderHandlerCompanyName" column="gar_order_handler_company_name" jdbcType="VARCHAR"/>  
16 - <result property="garCreateTime" column="gar_create_time" jdbcType="TIMESTAMP"/>  
17 - <result property="garUpdateTime" column="gar_update_time" jdbcType="TIMESTAMP"/>  
18 - <result property="garCreateBy" column="gar_create_by" jdbcType="VARCHAR"/>  
19 - <result property="garUpdateBy" column="gar_update_by" jdbcType="VARCHAR"/>  
20 - <result property="garRemark" column="gar_remark" jdbcType="VARCHAR"/> 8 + <id property="garId" column="gar_id" jdbcType="VARCHAR"/>
  9 + <result property="garOrderId" column="gar_order_id" jdbcType="VARCHAR"/>
  10 + <result property="garOrderHandlerTel" column="gar_order_handler_tel" jdbcType="VARCHAR"/>
  11 + <result property="garOrderHandlerStatus" column="gar_order_handler_status" jdbcType="TINYINT"/>
  12 + <result property="garCancelFlag" column="gar_cancel_flag" jdbcType="TINYINT"/>
  13 + <result property="garOrderHandlerName" column="gar_order_handler_name" jdbcType="VARCHAR"/>
  14 + <result property="garOrderHandlerCompanyId" column="gar_order_handler_company_id" jdbcType="VARCHAR"/>
  15 + <result property="garOrderHandlerCompanyName" column="gar_order_handler_company_name" jdbcType="VARCHAR"/>
  16 + <result property="garCreateTime" column="gar_create_time" jdbcType="TIMESTAMP"/>
  17 + <result property="garUpdateTime" column="gar_update_time" jdbcType="TIMESTAMP"/>
  18 + <result property="garCreateBy" column="gar_create_by" jdbcType="VARCHAR"/>
  19 + <result property="garUpdateBy" column="gar_update_by" jdbcType="VARCHAR"/>
  20 + <result property="garReason" column="gar_reason" jdbcType="VARCHAR"/>
  21 + <result property="garHandlerCarCode" column="gar_handler_car_code" jdbcType="VARCHAR"/>
  22 + </resultMap>
  23 +
  24 + <resultMap id="DispatchDriverVo" type="com.trash.garbage.pojo.vo.DispatchDriverVo">
  25 + <result property="licensePlateNumber" column="car_code" jdbcType="VARCHAR"/>
  26 + <result property="containerVolume" column="container_volume" jdbcType="TINYINT"/>
  27 + <collection property="personnelInfo" ofType="com.trash.garbage.pojo.vo.DispatchDriverVo$Personnel">
  28 + <id property="name" column="name" jdbcType="VARCHAR"/>
  29 + <result property="tel" column="phoneNo" jdbcType="VARCHAR"/>
  30 + <result property="checked" column="checked"/>
  31 + </collection>
21 </resultMap> 32 </resultMap>
22 33
23 <sql id="Base_Column_List"> 34 <sql id="Base_Column_List">
24 - gar_id,gar_order_id,gar_order_handler_tel, 35 + gar_id
  36 + ,gar_order_id,gar_order_handler_tel,
25 gar_order_handler_status,gar_cancel_flag,gar_order_handler_name,gar_order_handler_company_id, 37 gar_order_handler_status,gar_cancel_flag,gar_order_handler_name,gar_order_handler_company_id,
26 gar_order_handler_company_name,gar_create_time,gar_update_time, 38 gar_order_handler_company_name,gar_create_time,gar_update_time,
27 - gar_craete_by,gar_update_by,gar_remark 39 + gar_craete_by,gar_update_by,gar_reason,gar_handler_car_code
28 </sql> 40 </sql>
  41 + <select id="queryDriverListWithDispatchStatus" resultMap="DispatchDriverVo">
  42 + SELECT
  43 + driver.`name` AS `name`,
  44 + driver.phoneNo AS phoneNo,
  45 + car.car_code AS car_code,
  46 + car.container_volume AS container_volume,
  47 + gar.gar_handler_car_code,
  48 + gar.gar_order_id,
  49 + CASE
  50 + WHEN gar.gar_order_id IS NULL THEN 0
  51 + ELSE 1
  52 + END AS checked
  53 + FROM
  54 + driver
  55 + INNER JOIN car_driver_relation relation ON relation.driver_id = driver.id
  56 + INNER JOIN car_info car ON car.id = relation.car_id
  57 + LEFT JOIN gar_order_match_handler gar ON gar.gar_order_handler_tel = driver.phoneNo
  58 + AND gar.gar_order_id = #{orderId} AND gar.gar_handler_car_code = car.car_code
  59 + WHERE
  60 + driver.company_id = #{companyId}
  61 + </select>
29 </mapper> 62 </mapper>