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 76  
77 77 @PutMapping("/update")
78 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 83 @PostMapping("/evaluate")
... ... @@ -93,16 +93,21 @@ public class GarbageOrderController {
93 93 }
94 94  
95 95 @PutMapping("/dispatch")
96   - public Result<?> dispatchOrders(@RequestBody DispatchDto dto){
  96 + public Result<?> dispatchOrders(@RequestBody DispatchDto dto) {
97 97 garOrderService.dispatchOrder(dto);
98 98 return Result.OK();
99 99 }
100 100  
101 101 @GetMapping("/queryDispatch/{orderId}")
102   - public Result<?> queryDispatch(@PathVariable("orderId") String orderId){
  102 + public Result<?> queryDispatch(@PathVariable("orderId") String orderId) {
103 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 112 @PostMapping("/upload/imageUrl")
108 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 2  
3 3 import com.trash.garbage.pojo.domain.GarOrder;
4 4 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  5 +import com.trash.garbage.pojo.vo.GarOrderDriverVo;
5 6 import org.apache.ibatis.annotations.Param;
6 7  
7 8 import java.util.List;
... ... @@ -16,7 +17,9 @@ public interface GarOrderMapper extends BaseMapper&lt;GarOrder&gt; {
16 17  
17 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 1 package com.trash.garbage.mapper;
2 2  
3   -import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
  3 +
4 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 12 * @author 20412
... ... @@ -11,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
11 16 */
12 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 6 import com.baomidou.mybatisplus.annotation.TableName;
7 7 import java.io.Serializable;
8 8 import java.util.Date;
9   -import java.util.Objects;
10 9  
11 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 87 /**
87 88 *
88 89 */
89   - private String garRemark;
  90 + private String garReason;
90 91  
91 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 106 public Integer getGarCancelFlag() {
94 107 return garCancelFlag;
... ... @@ -197,26 +210,29 @@ public class GarOrderMatchHandler implements Serializable {
197 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 222 @Override
210 223 public boolean equals(Object o) {
211 224 if (this == o) return true;
  225 +
212 226 if (o == null || getClass() != o.getClass()) return false;
  227 +
213 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 233 @Override
218 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 238 @Override
... ... @@ -234,8 +250,9 @@ public class GarOrderMatchHandler implements Serializable {
234 250 ", garUpdateTime=" + garUpdateTime +
235 251 ", garCreateBy='" + garCreateBy + '\'' +
236 252 ", garUpdateBy='" + garUpdateBy + '\'' +
237   - ", garRemark='" + garRemark + '\'' +
  253 + ", garRemark='" + garReason + '\'' +
238 254 ", garCancelFlag=" + garCancelFlag +
  255 + ", garHandlerCarCode='" + garHandlerCarCode + '\'' +
239 256 '}';
240 257 }
241 258 }
242 259 \ No newline at end of file
... ...
trash-garbage/src/main/java/com/trash/garbage/pojo/dto/DispatchDto.java
1 1 package com.trash.garbage.pojo.dto;
2 2  
3 3 import lombok.Data;
  4 +import org.apache.commons.lang3.builder.EqualsBuilder;
  5 +import org.apache.commons.lang3.builder.HashCodeBuilder;
4 6  
5 7 import java.util.List;
6 8  
7 9 @Data
8 10 public class DispatchDto {
9 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 3 import lombok.EqualsAndHashCode;
4 4 import lombok.ToString;
5 5  
  6 +import java.util.List;
  7 +
6 8 /**
7 9 * @author 20412
8 10 */
9 11 @ToString
10 12 @EqualsAndHashCode
11 13 public class DispatchDriverVo {
12   - private String name;
13   - private String tel;
14 14  
15   - private Boolean checked;
16 15  
  16 + /**
  17 + * 车牌号
  18 + */
17 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 123 */
124 124 private Boolean handleFlag;
125 125  
  126 +
  127 + private Integer garOrderMatchFlag;
  128 +
  129 + private Integer garOrderStatus;
  130 +
  131 + private String garHandlerCarCode;
  132 +
126 133 public OrderDetailVo() {
127 134 this.currentImages = new ArrayList<>();
128 135 this.putDownImages = new ArrayList<>();
... ... @@ -130,6 +137,65 @@ public class OrderDetailVo {
130 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 199 public List<GarOrderCar> getGarCarInfoList() {
134 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 2  
3 3 import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
4 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 11 * @author 20412
... ... @@ -10,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
10 14 */
11 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 5 import com.trash.enterprise.domain.TransportationEnterprise;
6 6 import com.trash.garbage.pojo.domain.GarOrder;
7 7 import com.trash.garbage.pojo.domain.GarOrderEvaluate;
  8 +import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
8 9 import com.trash.garbage.pojo.dto.*;
9 10 import com.trash.garbage.pojo.vo.DispatchDriverVo;
10 11 import com.trash.garbage.pojo.vo.OrderDetailVo;
... ... @@ -47,7 +48,7 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; {
47 48 * @param dto
48 49 * @return
49 50 */
50   - String uploadOrder(OrderUpdateDto dto);
  51 + String updateOrder(OrderUpdateDto dto);
51 52  
52 53 /**
53 54 * 上传图片url执行图片type
... ... @@ -71,4 +72,6 @@ public interface GarOrderService extends IService&lt;GarOrder&gt; {
71 72 void dispatchOrder(DispatchDto dto);
72 73  
73 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 1 package com.trash.garbage.service.impl;
2 2  
3 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4 +import com.trash.garbage.mapper.GarOrderMatchHandlerMapper;
4 5 import com.trash.garbage.pojo.domain.GarOrderMatchHandler;
  6 +import com.trash.garbage.pojo.vo.DispatchDriverVo;
5 7 import com.trash.garbage.service.GarOrderMatchHandlerService;
6   -import com.trash.garbage.mapper.GarOrderMatchHandlerMapper;
7 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 17 @Service
15 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 10 import com.trash.garbage.pojo.domain.*;
11 11 import com.trash.garbage.pojo.dto.*;
12 12 import com.trash.garbage.pojo.vo.DispatchDriverVo;
  13 +import com.trash.garbage.pojo.vo.GarOrderDriverVo;
13 14 import com.trash.garbage.pojo.vo.TransportationEnterpriseVo;
14 15 import com.trash.garbage.service.*;
15 16 import org.apache.commons.lang3.StringUtils;
... ... @@ -111,12 +112,58 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
111 112  
112 113 @Override
113 114 public OrderDetailVo queryOrderDetail(String id) {
114   - GarOrder order = this.getById(id);
  115 +
115 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 164 LambdaQueryWrapper<GarOrderImage> qwi = new LambdaQueryWrapper<>();
117 165 qwi.eq(GarOrderImage::getGarOrderId, id);
118 166 OrderDetailVo vo = new OrderDetailVo();
119   -// List<DriverVo> driverVos = null;
120 167 if (user.getGarUserType().equals(GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription())) {
121 168 vo.setHandleFlag(true);
122 169 // 防止其他人员处理订单
... ... @@ -138,23 +185,11 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
138 185 vo.getPutDownImages().add(image.getGarOrderImageUrl());
139 186 }
140 187 }
141   -
142 188 // 获取车辆信息
143 189 LambdaQueryWrapper<GarOrderCar> qwc = new LambdaQueryWrapper<>();
144 190 qwc.eq(GarOrderCar::getGarOrderId, order.getGarOrderId());
145 191 List<GarOrderCar> carList = garOrderCarService.list(qwc);
146 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 193 return vo;
159 194 }
160 195  
... ... @@ -178,6 +213,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
178 213 PageInfo<GarOrder> pageInfo = new PageInfo<GarOrder>(orderList, pageSize);
179 214 return pageInfo;
180 215 }
  216 +
181 217 // 全部
182 218 if (GlobalStatus.GarOrderStatus.ALL_ORDER.getValue().equals(type)) {
183 219 qw.eq(GarOrder::getGarOrderUserId, userId);
... ... @@ -192,14 +228,14 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
192 228 if (GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(type)
193 229 || GlobalStatus.GarOrderStatus.ACTIVE_ORDER.getValue().equals(type)
194 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 233 return pageInfo;
198 234 }
199 235 // 全部
200 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 239 return pageInfo;
204 240 }
205 241 }
... ... @@ -225,10 +261,59 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
225 261 }
226 262  
227 263 @Override
228   - public String uploadOrder(OrderUpdateDto dto) {
229   - GarOrder order = getById(dto.getGarOrderId());
  264 + public String updateOrder(OrderUpdateDto dto) {
230 265 String userId = SecurityUtils.getLoginUser().getUser().getUserId();
231 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 318 if (GlobalStatus.GarOrderStatus.CANCEL_FLAG_YES.getValue().equals(dto.getGarCancelFlag())) {
234 319 LambdaUpdateWrapper<GarOrder> uw = new LambdaUpdateWrapper<>();
... ... @@ -239,7 +324,7 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
239 324 return "订单取消成功";
240 325 }
241 326 // 企业负责人 TODO
242   - if (GlobalStatus.GarUserStatusEnum.RESPONSIBLE_USER.getDescription().equals(user.getGarUserType())) {
  327 + else {
243 328 // 公司所属 待清运- 》 清运中
244 329 if (order.getGarOrderHandlerStatus().equals(GlobalStatus.GarOrderStatus.NEW_ORDER.getValue())
245 330 || GlobalStatus.GarOrderStatus.NEW_ORDER.getValue().equals(dto.getHandleType())) {
... ... @@ -265,9 +350,6 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
265 350 }
266 351 return "派单已完成";
267 352 }
268   - throw new BizException(ResultCode.CODE_500);
269   -
270   -// return "什么都没发生";
271 353 }
272 354  
273 355 @Override
... ... @@ -397,10 +479,12 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
397 479 public void dispatchOrder(DispatchDto dto) {
398 480 // TODO
399 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 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 488 handler.setGarCancelFlag(order.getGarCancelFlag());
405 489 handler.setGarOrderId(order.getGarOrderId());
406 490 handler.setGarOrderHandlerStatus(order.getGarOrderHandlerStatus());
... ... @@ -415,30 +499,30 @@ public class GarOrderServiceImpl extends ServiceImpl&lt;GarOrderMapper, GarOrder&gt;
415 499 }
416 500  
417 501 @Override
  502 + @Transactional(rollbackFor = Exception.class)
418 503 public List<DispatchDriverVo> queryDispatch(String orderId) {
  504 + GarOrder order = getById(orderId);
  505 + order.setGarOrderMatchFlag(GlobalStatus.GarOrderStatus.MATCH_YES.getValue());
  506 + updateById(order);
419 507 String tel = SecurityUtils.getLoginUser().getUser().getPhonenumber();
420 508 TransportationEnterprise enterprise = new TransportationEnterprise();
421 509 enterprise.setServicePhone(tel);
422 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 512 LambdaQueryWrapper<GarOrderMatchHandler> qw = new LambdaQueryWrapper<>();
428 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 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 526 private void handleCleanNumber(TransportationEnterpriseVo vo, List<GarOrder> orderList) {
443 527 Long cleanNumber = 0L;
444 528 for (GarOrder order : orderList) {
... ...
trash-garbage/src/main/resources/mapper/GarOrderMapper.xml
... ... @@ -38,7 +38,7 @@
38 38 gar_order_company_name,gar_order_company_tel,gar_order_handler_status,
39 39 gar_order_agreement_time,gar_create_time,gar_update_time,
40 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 42 </sql>
43 43 <select id="queryCleanNumberByEnterpriseIds" resultType="com.trash.garbage.pojo.domain.GarOrder">
44 44 select gar_order_company_id, count(gar_order_company_id) as count
... ... @@ -50,18 +50,41 @@
50 50 </foreach>
51 51 group by gar_order_company_id
52 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 89 </select>
67 90 </mapper>
... ...
trash-garbage/src/main/resources/mapper/GarOrderMatchHandlerMapper.xml
... ... @@ -2,28 +2,61 @@
2 2 <!DOCTYPE mapper
3 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 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 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 32 </resultMap>
22 33  
23 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 37 gar_order_handler_status,gar_cancel_flag,gar_order_handler_name,gar_order_handler_company_id,
26 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 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 62 </mapper>
... ...