|
|
@@ -53,7 +53,9 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -203,16 +205,17 @@ public class OrderController extends BladeController {
|
|
|
.between(StringUtil.isNotBlank(order.getBeginArrivalTime()) && StringUtil.isNotBlank(order.getEndArrivalTime()), Order::getArrivalTime, order.getBeginArrivalTime(), order.getEndArrivalTime())
|
|
|
.between(StringUtil.isNotBlank(order.getBeginCrateTime()) && StringUtil.isNotBlank(order.getEndCrateTime()), Order::getCreateTime, order.getBeginCrateTime(), order.getEndCrateTime())
|
|
|
.eq(Order::getIsDeleted, 0)
|
|
|
- .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
- .orderByDesc(Order::getCreateTime);
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId());
|
|
|
|
|
|
if (order.getKind() == 1) {
|
|
|
+ orderQueryWrapper.orderByDesc(Order::getCreateTime);
|
|
|
if (role.contains(LandConstant.CORP_ROLE)) {
|
|
|
if (role.contains(LandConstant.LAND_OPERATOR)) {
|
|
|
orderQueryWrapper.eq(Order::getCreateUser, AuthUtil.getUserId());
|
|
|
}
|
|
|
}
|
|
|
- } else if (order.getKind() == 2){
|
|
|
+ } else if (order.getKind() == 2) {
|
|
|
+ orderQueryWrapper.orderByDesc(Order::getUpdateTime);
|
|
|
orderQueryWrapper.eq(Order::getStatus, 1);
|
|
|
if (role.contains(LandConstant.LAND_OPERATOR)) {
|
|
|
orderQueryWrapper.like(Order::getAdminProfiles, AuthUtil.getUserId());
|
|
|
@@ -230,31 +233,164 @@ public class OrderController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<String> ctnTypeList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
|
|
|
- .eq(OrderItem::getOrderId, record.getId())
|
|
|
- .eq(OrderItem::getKind, 2)
|
|
|
- .eq(OrderItem::getIsDeleted, 0)
|
|
|
- .groupBy(OrderItem::getCtnType)
|
|
|
- ).stream().map(OrderItem::getCtnType).collect(Collectors.toList());
|
|
|
-
|
|
|
- StringBuilder ctnDetail = new StringBuilder();
|
|
|
- for (String ctnType : ctnTypeList) {
|
|
|
- int ctnCount = orderItemService.count(new LambdaQueryWrapper<OrderItem>()
|
|
|
+ // 列表箱量显示处理
|
|
|
+ if (record.getStatus() == 0) {
|
|
|
+ List<OrderItem> itemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .eq(OrderItem::getOrderId, record.getId())
|
|
|
+ .eq(OrderItem::getKind, 1)
|
|
|
+ .eq(OrderItem::getIsDeleted, 0));
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(itemList)) {
|
|
|
+ StringBuilder ctnDetail = new StringBuilder();
|
|
|
+ for (OrderItem item : itemList) {
|
|
|
+ ctnDetail.append(item.getCtnType()).append("×").append(item.getCtnQuantity()).append(",");
|
|
|
+ }
|
|
|
+ if (ctnDetail.length() > 0) {
|
|
|
+ record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ List<OrderItem> itemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
|
|
|
.eq(OrderItem::getOrderId, record.getId())
|
|
|
- .eq(OrderItem::getCtnType, ctnType)
|
|
|
.eq(OrderItem::getKind, 2)
|
|
|
- .eq(OrderItem::getIsDeleted, 0)
|
|
|
- );
|
|
|
- ctnDetail.append(ctnType).append("×").append(ctnCount).append(",");
|
|
|
+ .eq(OrderItem::getIsDeleted, 0));
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(itemList)) {
|
|
|
+ // 全部
|
|
|
+ Map<String, Long> ctnMap = itemList.stream().collect(Collectors.groupingBy(OrderItem::getCtnType, Collectors.counting()));
|
|
|
+ StringBuilder ctnDetail = new StringBuilder();
|
|
|
+ for (Map.Entry<String, Long> entry : ctnMap.entrySet()) {
|
|
|
+ ctnDetail.append(entry.getKey()).append("×").append(entry.getValue()).append(",");
|
|
|
+ }
|
|
|
+ if (ctnDetail.length() > 0) {
|
|
|
+ record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 已派
|
|
|
+ Map<String, Long> dispatchCtnMap = itemList.stream().filter(item -> item.getStatus() == 1).collect(Collectors.groupingBy(OrderItem::getCtnType, Collectors.counting()));
|
|
|
+ StringBuilder dispatchCtnDetail = new StringBuilder();
|
|
|
+ for (Map.Entry<String, Long> entry : dispatchCtnMap.entrySet()) {
|
|
|
+ dispatchCtnDetail.append(entry.getKey()).append("×").append(entry.getValue()).append(",");
|
|
|
+ }
|
|
|
+ if (dispatchCtnDetail.length() > 0) {
|
|
|
+ record.setDispatchCtnDetail(dispatchCtnDetail.deleteCharAt(dispatchCtnDetail.lastIndexOf(",")).toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 受理
|
|
|
+ Map<String, Long> sendCtnMap = itemList.stream().filter(item -> item.getStatus() == 2).collect(Collectors.groupingBy(OrderItem::getCtnType, Collectors.counting()));
|
|
|
+ StringBuilder sendCtnDetail = new StringBuilder();
|
|
|
+ for (Map.Entry<String, Long> entry : sendCtnMap.entrySet()) {
|
|
|
+ sendCtnDetail.append(entry.getKey()).append("×").append(entry.getValue()).append(",");
|
|
|
+ }
|
|
|
+ if (sendCtnDetail.length() > 0) {
|
|
|
+ record.setSendCtnDetail(sendCtnDetail.deleteCharAt(sendCtnDetail.lastIndexOf(",")).toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拼接状态
|
|
|
+ long zero = itemList.stream().filter(item -> item.getStatus() == 0).count();
|
|
|
+ long one = itemList.stream().filter(item -> item.getStatus() == 1).count();
|
|
|
+ long two = itemList.stream().filter(item -> item.getStatus() == 2).count();
|
|
|
+ long three = itemList.stream().filter(item -> item.getStatus() == 3).count();
|
|
|
+ long four = itemList.stream().filter(item -> item.getStatus() == 4).count();
|
|
|
+ String statusDetail = "";
|
|
|
+ if (zero > 0) {
|
|
|
+ statusDetail += "未调度×" + zero + ";";
|
|
|
+ }
|
|
|
+ if (one > 0) {
|
|
|
+ statusDetail += "未派车×" + one + ";";
|
|
|
+ }
|
|
|
+ if (two > 0) {
|
|
|
+ statusDetail += "未受理×" + two + ";";
|
|
|
+ }
|
|
|
+ if (three > 0) {
|
|
|
+ statusDetail += "未完工×" + three + ";";
|
|
|
+ }
|
|
|
+ if (four > 0) {
|
|
|
+ statusDetail += "工单关闭×" + four + ";";
|
|
|
+ }
|
|
|
+ record.setItemStatusDetail(statusDetail.substring(0, statusDetail.lastIndexOf(";")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 拼接地址
|
|
|
+ List<OrderAddress> addressList = orderAddressService.list(new LambdaQueryWrapper<OrderAddress>()
|
|
|
+ .eq(OrderAddress::getOrderId, record.getId())
|
|
|
+ .eq(OrderAddress::getIsDeleted, 0)
|
|
|
+ .orderByAsc(OrderAddress::getSort)
|
|
|
+ );
|
|
|
+ StringBuilder addressDetail = new StringBuilder();
|
|
|
+ for (OrderAddress address : addressList) {
|
|
|
+ addressDetail.append(address.getSort()).append(":").append(address.getCorpName()).append("——").append(address.getAddress()).append(";\n");
|
|
|
}
|
|
|
- if (ctnDetail.length() > 0) {
|
|
|
- record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
|
|
|
+ if (addressDetail.length() > 0) {
|
|
|
+ record.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());
|
|
|
}
|
|
|
});
|
|
|
return R.data(pages);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 统计
|
|
|
+ */
|
|
|
+ @GetMapping("/count")
|
|
|
+ @ApiOperationSupport(order = 2)
|
|
|
+ @ApiOperation(value = "统计", notes = "传入order")
|
|
|
+ public R count(Order order) {
|
|
|
+ long all = 0;
|
|
|
+ long zero = 0;
|
|
|
+ long one = 0;
|
|
|
+ long two = 0;
|
|
|
+ long three = 0;
|
|
|
+ long four = 0;
|
|
|
+
|
|
|
+ String role = AuthUtil.getUserRole();
|
|
|
+
|
|
|
+ List<Long> orderIdList;
|
|
|
+ LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ orderQueryWrapper.eq(Order::getStatus, 1)
|
|
|
+ .eq(Order::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(Order::getIsDeleted, 0);
|
|
|
+
|
|
|
+ if (order.getKind() == 1) {
|
|
|
+ if (role.contains(LandConstant.CORP_ROLE)) {
|
|
|
+ if (role.contains(LandConstant.LAND_OPERATOR)) {
|
|
|
+ orderQueryWrapper.eq(Order::getCreateUser, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (order.getKind() == 2) {
|
|
|
+ if (role.contains(LandConstant.LAND_OPERATOR)) {
|
|
|
+ orderQueryWrapper.like(Order::getAdminProfiles, AuthUtil.getUserId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return R.fail("参数异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ orderIdList = orderService.list(orderQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isNotEmpty(orderIdList)) {
|
|
|
+ List<OrderItem> itemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .in(OrderItem::getOrderId, orderIdList)
|
|
|
+ .eq(OrderItem::getKind, 2)
|
|
|
+ .eq(OrderItem::getIsDeleted, 0));
|
|
|
+
|
|
|
+ all = itemList.size();
|
|
|
+ zero = itemList.stream().filter(item -> item.getStatus() == 0).count();
|
|
|
+ one = itemList.stream().filter(item -> item.getStatus() == 1).count();
|
|
|
+ two = itemList.stream().filter(item -> item.getStatus() == 2).count();
|
|
|
+ three = itemList.stream().filter(item -> item.getStatus() == 3).count();
|
|
|
+ four = itemList.stream().filter(item -> item.getStatus() == 4).count();
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
+ data.put("all", all);
|
|
|
+ data.put("zero", zero);
|
|
|
+ data.put("one", one);
|
|
|
+ data.put("two", two);
|
|
|
+ data.put("three", three);
|
|
|
+ data.put("four", four);
|
|
|
+ return R.data(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 自定义分页 陆运订单表
|
|
|
*/
|
|
|
@GetMapping("/page")
|