|
|
@@ -32,14 +32,16 @@ import org.springblade.land.entity.Order;
|
|
|
import org.springblade.land.entity.OrderItem;
|
|
|
import org.springblade.land.service.IOrderItemService;
|
|
|
import org.springblade.land.service.IOrderService;
|
|
|
+import org.springblade.system.feign.ISysClient;
|
|
|
+import org.springblade.system.user.entity.User;
|
|
|
+import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 陆运订单明细表 控制器
|
|
|
@@ -61,6 +63,10 @@ public class OrderIndexController extends BladeController {
|
|
|
|
|
|
private final ICorpsDescClient corpsDescClient;
|
|
|
|
|
|
+ private final ISysClient sysClient;
|
|
|
+
|
|
|
+ private final IUserClient userClient;
|
|
|
+
|
|
|
/**
|
|
|
* 统计
|
|
|
*/
|
|
|
@@ -138,12 +144,148 @@ public class OrderIndexController extends BladeController {
|
|
|
return R.data(itemList);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 业务统计
|
|
|
+ */
|
|
|
+ @GetMapping("/biz-count")
|
|
|
+ @ApiOperationSupport(order = 3)
|
|
|
+ @ApiOperation(value = "业务统计")
|
|
|
+ public R bizCount(Integer mold) {
|
|
|
+ LambdaQueryWrapper<OrderItem> wrapper = new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .between(OrderItem::getCreateTime, getTime(true), getTime(false))
|
|
|
+ .eq(OrderItem::getKind, 2)
|
|
|
+ .eq(OrderItem::getIsDeleted, 0)
|
|
|
+ .eq(OrderItem::getTenantId, AuthUtil.getTenantId());
|
|
|
+
|
|
|
+ if (mold == 1) {
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "集装箱");
|
|
|
+ } else if (mold == 2) {
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "散货");
|
|
|
+ } else {
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "特种车辆");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<OrderItem> itemList = orderItemService.list(wrapper);
|
|
|
+
|
|
|
+ Map<String, Object> data = new HashMap<>();
|
|
|
+ Map<String, Object> table;
|
|
|
+ List<Map<String, Object>> tableTemp;
|
|
|
+ Map<String, Object> mapTemp;
|
|
|
+
|
|
|
+ table = new HashMap<>();
|
|
|
+ tableTemp = new ArrayList<>();
|
|
|
+ // 今日总量
|
|
|
+ long all = itemList.size();
|
|
|
+
|
|
|
+ // 未运行
|
|
|
+ long inactive = itemList.stream().filter(item -> item.getStatus() == 0 && item.getStatus() == 1).count();
|
|
|
+ mapTemp = new HashMap<>();
|
|
|
+ mapTemp.put("name", "未运行");
|
|
|
+ mapTemp.put("value", inactive);
|
|
|
+ tableTemp.add(mapTemp);
|
|
|
+
|
|
|
+ // 运行中
|
|
|
+ long active = itemList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 4).count();
|
|
|
+ mapTemp = new HashMap<>();
|
|
|
+ mapTemp.put("name", "运行中");
|
|
|
+ mapTemp.put("value", active);
|
|
|
+ tableTemp.add(mapTemp);
|
|
|
+
|
|
|
+ // 已完成
|
|
|
+ long finish = itemList.stream().filter(item -> item.getStatus() == 4).count();
|
|
|
+ mapTemp = new HashMap<>();
|
|
|
+ mapTemp.put("name", "已完成");
|
|
|
+ mapTemp.put("value", finish);
|
|
|
+ tableTemp.add(mapTemp);
|
|
|
+
|
|
|
+ table.put("all", all);
|
|
|
+ table.put("list", tableTemp);
|
|
|
+ data.put("flow", table);
|
|
|
+
|
|
|
+
|
|
|
+ // 部门统计
|
|
|
+ Map<Long, Long> deptMap = itemList.stream().collect(Collectors.groupingBy(OrderItem::getSalesmanDept, Collectors.counting()));
|
|
|
+
|
|
|
+ table = new HashMap<>();
|
|
|
+ tableTemp = new ArrayList<>();
|
|
|
+ for (Long key : deptMap.keySet()) {
|
|
|
+ String deptName = "";
|
|
|
+ if (!ObjectUtil.isEmpty(key)) {
|
|
|
+ R<String> dept = sysClient.getDeptName(key);
|
|
|
+ if (dept.isSuccess() && dept.getData() != null) {
|
|
|
+ deptName = dept.getData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ mapTemp = new HashMap<>();
|
|
|
+ mapTemp.put("dept", key);
|
|
|
+ mapTemp.put("name", deptName);
|
|
|
+ mapTemp.put("value", deptMap.get(key));
|
|
|
+ tableTemp.add(mapTemp);
|
|
|
+ }
|
|
|
+ table.put("all", all);
|
|
|
+ table.put("list", tableTemp);
|
|
|
+ data.put("dept", table);
|
|
|
+
|
|
|
+ return R.data(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 业务详情
|
|
|
+ */
|
|
|
+ @GetMapping("/biz-detail")
|
|
|
+ @ApiOperationSupport(order = 4)
|
|
|
+ @ApiOperation(value = "业务详情")
|
|
|
+ public R bizDetail(Integer mold, Long dept, Integer status) {
|
|
|
+ LambdaQueryWrapper<OrderItem> wrapper = new LambdaQueryWrapper<OrderItem>()
|
|
|
+ .between(OrderItem::getCreateTime, getTime(true), getTime(false))
|
|
|
+ .eq(ObjectUtil.isNotEmpty(dept), OrderItem::getSalesmanDept, dept)
|
|
|
+ .eq(OrderItem::getKind, 2)
|
|
|
+ .eq(OrderItem::getIsDeleted, 0)
|
|
|
+ .eq(OrderItem::getTenantId, AuthUtil.getTenantId());
|
|
|
+
|
|
|
+ if (mold == 1) {
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "集装箱");
|
|
|
+ } else if (mold == 2) {
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "散货");
|
|
|
+ } else if (mold == 3){
|
|
|
+ wrapper.eq(OrderItem::getShippingMode, "特种车辆");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (status == 1) {
|
|
|
+ wrapper.in(OrderItem::getStatus, 0, 1);
|
|
|
+ } else if (status == 2) {
|
|
|
+ wrapper.notIn(OrderItem::getStatus, 0, 1, 4);
|
|
|
+ } else if (status == 3){
|
|
|
+ wrapper.in(OrderItem::getStatus, 4);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<OrderItem> itemList = orderItemService.list(wrapper);
|
|
|
+ itemList.forEach(item -> {
|
|
|
+ Order order = orderService.getById(item.getOrderId());
|
|
|
+ item.setBillNo(order.getBillNo());
|
|
|
+ item.setStation(order.getStation());
|
|
|
+ item.setAddressDetail(order.getAddressDetail());
|
|
|
+ item.setAllFeeD(item.getOneFeeD().add(item.getTwoFeeD()).add(item.getThreeFeeD()).add(item.getFourFeeD()).add(item.getFiveFeeD()));
|
|
|
+ item.setAllFeeC(item.getOneFeeC().add(item.getTwoFeeC()).add(item.getThreeFeeC()).add(item.getFourFeeC()).add(item.getFiveFeeC()));
|
|
|
+
|
|
|
+ if (!ObjectUtil.isEmpty(order.getSalesman())) {
|
|
|
+ R<User> user = userClient.userInfoById(order.getSalesman());
|
|
|
+ if (user.isSuccess() && user.getData() != null) {
|
|
|
+ item.setSalesmanName(user.getData().getRealName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return R.data(itemList);
|
|
|
+ }
|
|
|
+
|
|
|
private String getTime(boolean init) {
|
|
|
String date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
|
|
if (init) {
|
|
|
- return date + "00:00:00";
|
|
|
+ return date + " 00:00:00";
|
|
|
}
|
|
|
- return date + "23:59:59";
|
|
|
+ return date + " 23:59:59";
|
|
|
}
|
|
|
|
|
|
}
|