Browse Source

陆运细节

sunhz 3 years ago
parent
commit
f1179078f4

+ 3 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/LandVehicleChange.java

@@ -88,4 +88,7 @@ public class LandVehicleChange implements Serializable {
 	@TableField(exist = false)
 	private String driverName;
 
+	@TableField(exist = false)
+	private String changeUserName;
+
 }

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/Order.java

@@ -49,6 +49,11 @@ public class Order implements Serializable {
 	@TableId
 	private Long id;
 	/**
+	 * 订单号
+	 */
+	@ApiModelProperty(value = "订单号")
+	private String orderNo;
+	/**
 	 * 客户ID
 	 */
 	@ApiModelProperty(value = "客户ID")

+ 7 - 2
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -110,6 +110,11 @@ public class OrderItem implements Serializable {
 	@ApiModelProperty(value = "司机ID")
 	private Long driverId;
 	/**
+	 * 手机号
+	 */
+	@ApiModelProperty(value = "手机号")
+	private String tel;
+	/**
 	 * 货车ID
 	 */
 	@ApiModelProperty(value = "车辆ID")
@@ -181,10 +186,10 @@ public class OrderItem implements Serializable {
 	private String driverName;
 
 	@TableField(exist = false)
-	private String tel;
+	private Integer tag;
 
 	@TableField(exist = false)
-	private Integer tag;
+	private String orderNo;
 
 	@TableField(exist = false)
 	private String belongCompany;

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/land/controller/LandVehicleController.java

@@ -39,6 +39,8 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -66,6 +68,8 @@ public class LandVehicleController extends BladeController {
 
 	private final ICommonFileService commonFileService;
 
+	private final IUserClient userClient;
+
 	/**
 	 * 详情
 	 */
@@ -91,6 +95,12 @@ public class LandVehicleController extends BladeController {
 				LandDriver driver = landDriverService.getById(vehicleChange.getDriverId());
 				vehicleChange.setDriverName(driver.getName());
 			}
+			if (ObjectUtil.isNotEmpty(vehicleChange.getChangeUser())) {
+				R<User> user = userClient.userInfoById(vehicleChange.getChangeUser());
+				if (user.isSuccess() && user.getData() != null) {
+					vehicleChange.setChangeUserName(user.getData().getName());
+				}
+			}
 		});
 		detail.setVehicleChangeList(vehicleChangeList);
 		return R.data(detail);

+ 2 - 2
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java

@@ -200,8 +200,8 @@ public class OrderController extends BladeController {
 		orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
 			.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
-			.eq(StringUtil.isNotBlank(order.getBillNo()), Order::getBillNo, order.getBillNo())
-			.eq(StringUtil.isNotBlank(order.getGoods()), Order::getGoods, order.getGoods())
+			.like(StringUtil.isNotBlank(order.getBillNo()), Order::getBillNo, order.getBillNo())
+			.like(StringUtil.isNotBlank(order.getGoods()), Order::getGoods, order.getGoods())
 			.like(StringUtil.isNotBlank(order.getBelongCompany()), Order::getBelongCompany, order.getBelongCompany())
 			.like(StringUtil.isNotBlank(order.getStation()), Order::getStation, order.getStation())
 			.like(StringUtil.isNotBlank(order.getFactory()), Order::getFactory, order.getFactory())

+ 38 - 18
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderItemController.java

@@ -49,6 +49,7 @@ import org.springblade.land.vo.OrderItemVO;
 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;
@@ -98,17 +99,38 @@ public class OrderItemController extends BladeController {
 	public R<IPage<OrderItem>> list(OrderItem orderItem, Query query) {
 		String role = AuthUtil.getUserRole();
 
-		LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
-		orderQueryWrapper.eq(StringUtil.isNotBlank(orderItem.getBillNo()), Order::getBillNo, orderItem.getBillNo())
-			.eq(StringUtil.isNotBlank(orderItem.getGoods()), Order::getGoods, orderItem.getGoods())
-			.like(StringUtil.isNotBlank(orderItem.getBelongCompany()), Order::getBelongCompany, orderItem.getBelongCompany())
-			.like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
-			.like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
-			.between(StringUtil.isNotBlank(orderItem.getBeginArrivalTime()) && StringUtil.isNotBlank(orderItem.getEndArrivalTime()), Order::getArrivalTime, orderItem.getBeginArrivalTime(), orderItem.getEndArrivalTime())
-			.between(StringUtil.isNotBlank(orderItem.getBeginCrateTime()) && StringUtil.isNotBlank(orderItem.getEndCrateTime()), Order::getCreateTime, orderItem.getBeginCrateTime(), orderItem.getEndCrateTime())
-			.eq(Order::getIsDeleted, 0)
-			.eq(Order::getTenantId, AuthUtil.getTenantId());
-		List<Long> orderIdList = orderService.list(orderQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
+		List<Long> orderIdList = Collections.emptyList();
+		if (StringUtil.isNotBlank(orderItem.getBillNo()) || StringUtil.isNotBlank(orderItem.getGoods()) || StringUtil.isNotBlank(orderItem.getBelongCompany()) || StringUtil.isNotBlank(orderItem.getStation()) || StringUtil.isNotBlank(orderItem.getFactory())) {
+			orderIdList = orderService.list(new LambdaQueryWrapper<Order>()
+				.like(StringUtil.isNotBlank(orderItem.getBillNo()), Order::getBillNo, orderItem.getBillNo())
+				.like(StringUtil.isNotBlank(orderItem.getGoods()), Order::getGoods, orderItem.getGoods())
+				.like(StringUtil.isNotBlank(orderItem.getBelongCompany()), Order::getBelongCompany, orderItem.getBelongCompany())
+				.like(StringUtil.isNotBlank(orderItem.getStation()), Order::getStation, orderItem.getStation())
+				.like(StringUtil.isNotBlank(orderItem.getFactory()), Order::getFactory, orderItem.getFactory())
+				.between(StringUtil.isNotBlank(orderItem.getBeginArrivalTime()) && StringUtil.isNotBlank(orderItem.getEndArrivalTime()), Order::getArrivalTime, orderItem.getBeginArrivalTime(), orderItem.getEndArrivalTime())
+				.between(StringUtil.isNotBlank(orderItem.getBeginCrateTime()) && StringUtil.isNotBlank(orderItem.getEndCrateTime()), Order::getCreateTime, orderItem.getBeginCrateTime(), orderItem.getEndCrateTime())
+				.eq(Order::getIsDeleted, 0)
+				.eq(Order::getTenantId, AuthUtil.getTenantId())
+			).stream().map(Order::getId).collect(Collectors.toList());
+
+			if (CollectionUtil.isEmpty(orderIdList)) {
+				return R.data(new Page<>());
+			}
+		}
+
+		if (StringUtil.isNotBlank(orderItem.getAddressDetail())) {
+			orderIdList = orderAddressService.list(new LambdaQueryWrapper<OrderAddress>()
+				.select(OrderAddress::getOrderId)
+				.in(CollectionUtil.isNotEmpty(orderIdList), OrderAddress::getOrderId, orderIdList)
+				.like(OrderAddress::getAddress, orderItem.getAddressDetail())
+				.eq(OrderAddress::getIsDeleted, 0)
+				.groupBy(OrderAddress::getOrderId)
+			).stream().map(OrderAddress::getOrderId).collect(Collectors.toList());
+
+			if (CollectionUtil.isEmpty(orderIdList)) {
+				return R.data(new Page<>());
+			}
+		}
 
 		LambdaQueryWrapper<OrderItem> itemQueryWrapper = new LambdaQueryWrapper<>();
 		if (orderItem.getTag() == 4) {
@@ -132,11 +154,9 @@ public class OrderItemController extends BladeController {
 			}
 		}
 
-		if (CollectionUtil.isEmpty(orderIdList)) {
-			return R.data(new Page<>());
-		}
-
-		itemQueryWrapper.in(OrderItem::getOrderId, orderIdList)
+		itemQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), OrderItem::getOrderId, orderIdList)
+			.like(StringUtil.isNotBlank(orderItem.getTel()), OrderItem::getTel, orderItem.getTel())
+			.like(StringUtil.isNotBlank(orderItem.getCtnNo()), OrderItem::getCtnNo, orderItem.getCtnNo())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getFleetId()), OrderItem::getFleetId, orderItem.getFleetId())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getVehicleId()), OrderItem::getVehicleId, orderItem.getVehicleId())
 			.eq(ObjectUtil.isNotEmpty(orderItem.getDriverId()), OrderItem::getDriverId, orderItem.getDriverId())
@@ -148,6 +168,7 @@ public class OrderItemController extends BladeController {
 		IPage<OrderItem> pages = orderItemService.page(Condition.getPage(query), itemQueryWrapper);
 		pages.getRecords().forEach(record -> {
 			Order order = orderService.getById(record.getOrderId());
+			record.setOrderNo(order.getOrderNo());
 			record.setBelongCompany(order.getBelongCompany());
 			record.setBillNo(order.getBillNo());
 			record.setGoods(order.getGoods());
@@ -166,7 +187,6 @@ public class OrderItemController extends BladeController {
 				LandVehicle vehicle = landVehicleClient.getVehicle(record.getVehicleId());
 				record.setPlateNo(vehicle.getPlateNo());
 				record.setDriverName(vehicle.getDriverName());
-				record.setTel(vehicle.getTel());
 			}
 
 			// 拼接地址
@@ -177,7 +197,7 @@ public class OrderItemController extends BladeController {
 			);
 			StringBuilder addressDetail = new StringBuilder();
 			for (OrderAddress address : addressList) {
-				addressDetail.append(address.getSort()).append(":").append(address.getCorpName()).append("-").append(address.getAddress()).append(";");
+				addressDetail.append(address.getSort()).append(":").append(address.getCorpName()).append("——").append(address.getAddress()).append(";\n");
 			}
 			if (addressDetail.length() > 0) {
 				record.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf(";")).toString());

+ 4 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -83,7 +83,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 
 		Order order = new Order();
 		order.setId(data.getId());
-		order.setStatus(3);
+		order.setStatus(2);
 		orderMapper.updateById(order);
 		return data;
 	}
@@ -112,7 +112,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		if (count == 0) {
 			Order order = new Order();
 			order.setId(data.getId());
-			order.setStatus(2);
+			order.setStatus(1);
 			orderMapper.updateById(order);
 		}
 		return data;
@@ -125,6 +125,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		item.setId(orderItem.getId());
 		item.setVehicleId(orderItem.getVehicleId());
 		item.setDriverId(orderItem.getDriverId());
+		item.setTel(orderItem.getTel());
 		item.setFleetRemarks(orderItem.getFleetRemarks());
 		item.setStatus(2);
 		item.setUpdateUser(AuthUtil.getUserId());
@@ -141,6 +142,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		baseMapper.update(null, new LambdaUpdateWrapper<OrderItem>()
 			.set(OrderItem::getVehicleId, null)
 			.set(OrderItem::getDriverId, null)
+			.set(OrderItem::getTel, null)
 			.set(OrderItem::getFleetRemarks, null)
 			.set(OrderItem::getStatus, 1)
 			.set(OrderItem::getUpdateUser, AuthUtil.getUserId())

+ 32 - 1
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -25,7 +25,9 @@ import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.land.entity.*;
 import org.springblade.land.mapper.*;
 import org.springblade.land.service.IOrderService;
@@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.IntStream;
@@ -73,6 +76,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				order.setAdminProfiles(corpMessage.getData().getAdminProfiles());
 			}
 
+			order.setOrderNo(getSerial());
 			order.setTenantId(AuthUtil.getTenantId());
 			order.setCreateUser(AuthUtil.getUserId());
 			order.setCreateTime(new Date());
@@ -186,7 +190,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 		Order order = new Order();
 		order.setId(id);
-		order.setStatus(1);
+		order.setStatus(0);
 		baseMapper.updateById(order);
 		return true;
 	}
@@ -215,4 +219,31 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return true;
 	}
 
+	private String getSerial() {
+		Calendar calendar = Calendar.getInstance();
+		String postfix = DateUtil.format(calendar.getTime(), "yyMMdd");
+
+		calendar.set(Calendar.DAY_OF_MONTH, 1);
+		String beginTime = DateUtil.formatDate(calendar.getTime()) + " 00:00:00";
+
+		calendar.roll(Calendar.DAY_OF_MONTH, -1);
+		String endTime = DateUtil.formatDate(calendar.getTime()) + " 23:59:59";
+
+		Order order = baseMapper.selectOne(new LambdaQueryWrapper<Order>()
+			.between(Order::getCreateTime, beginTime, endTime)
+			.eq(Order::getTenantId, AuthUtil.getTenantId())
+			.eq(Order::getIsDeleted, 0)
+			.orderByDesc(Order::getCreateTime)
+			.last("limit 1")
+		);
+
+		if (ObjectUtil.isEmpty(order) || StringUtil.isBlank(order.getOrderNo())) {
+			return String.format("%03d", 1) + "-" + postfix;
+		}
+
+		String lastSerial = order.getOrderNo().split("-")[0];
+		Integer serial = Integer.parseInt(lastSerial) + 1;
+		return String.format("%03d", serial) + "-" + postfix;
+	}
+
 }