Browse Source

陆运细节,撤销接口

sunhz 3 years ago
parent
commit
9b6bc4751a

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

@@ -157,6 +157,9 @@ public class LandDriver implements Serializable {
 	private List<CommonFile> fileList;
 
 	@TableField(exist = false)
+	private String fleetName;
+
+	@TableField(exist = false)
 	private String userType;
 
 	@TableField(exist = false)

+ 3 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -108,9 +108,9 @@ public class CorpsDescController extends BladeController {
 	 */
 	@GetMapping("/fleet-list")
 	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "车队", notes = "")
-	public R<List<CorpsDesc>> fleetList() {
-		return R.data(corpsDescService.getFleetList());
+	@ApiOperation(value = "车队", notes = "传入corpsDesc")
+	public R<List<CorpsDesc>> fleetList(CorpsDesc corpsDesc) {
+		return R.data(corpsDescService.getFleetList(corpsDesc));
 	}
 
 	/**

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java

@@ -119,7 +119,7 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	 *
 	 * @return
 	 */
-	List<CorpsDesc> getFleetList();
+	List<CorpsDesc> getFleetList(CorpsDesc corpsDesc);
 
 	/**
 	 * 创建用户

+ 2 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -424,7 +424,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	}
 
 	@Override
-	public List<CorpsDesc> getFleetList() {
+	public List<CorpsDesc> getFleetList(CorpsDesc corpsDesc) {
 		CorpsType corpsType = corpsTypeMapper.selectOne(new LambdaQueryWrapper<CorpsType>()
 			.eq(CorpsType::getCname, LandConstant.FLEET_CHINESE)
 			.eq(CorpsType::getTenantId, AuthUtil.getTenantId())
@@ -444,6 +444,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		}
 
 		return baseMapper.selectList(new LambdaQueryWrapper<CorpsDesc>()
+			.like(StringUtil.isNotBlank(corpsDesc.getCname()), CorpsDesc::getCname, corpsDesc.getCname())
 			.in(CorpsDesc::getId, corpIdList)
 			.eq(CorpsDesc::getIsDeleted, 0)
 		);

+ 12 - 0
blade-service/blade-client/src/main/java/org/springblade/client/land/controller/LandDriverController.java

@@ -25,7 +25,9 @@ import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.common.service.ICommonFileService;
 import org.springblade.client.constant.LandConstant;
+import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.CommonFile;
+import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.LandDriver;
 import org.springblade.client.land.service.ILandDriverService;
 import org.springblade.client.vo.LandDriverVO;
@@ -36,6 +38,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 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.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -57,6 +60,8 @@ public class LandDriverController extends BladeController {
 
 	private final ICommonFileService commonFileService;
 
+	private final ICorpsDescService corpsDescService;
+
 	/**
 	 * 详情
 	 */
@@ -85,6 +90,12 @@ public class LandDriverController extends BladeController {
 		landDriver.setTenantId(AuthUtil.getTenantId());
 		landDriver.setIsDeleted(0);
 		IPage<LandDriver> pages = landDriverService.page(Condition.getPage(query), Condition.getQueryWrapper(landDriver));
+		pages.getRecords().forEach(record -> {
+			if (ObjectUtil.isNotEmpty(record.getFleetId())) {
+				CorpsDesc fleet = corpsDescService.getById(record.getFleetId());
+				record.setFleetName(fleet.getCname());
+			}
+		});
 		return R.data(pages);
 	}
 
@@ -96,6 +107,7 @@ public class LandDriverController extends BladeController {
 	@ApiOperation(value = "司机", notes = "传入landDriver")
 	public R<List<LandDriver>> driverList(LandDriver landDriver) {
 		List<LandDriver> driverList = landDriverService.list(new LambdaQueryWrapper<LandDriver>()
+			.like(StringUtil.isNotBlank(landDriver.getName()), LandDriver::getName, landDriver.getName())
 			.eq(ObjectUtil.isNotEmpty(landDriver.getFleetId()), LandDriver::getFleetId, landDriver.getFleetId())
 			.eq(LandDriver::getTenantId, AuthUtil.getTenantId())
 			.eq(LandDriver::getIsDeleted, 0)

+ 28 - 15
blade-service/blade-client/src/main/java/org/springblade/client/land/controller/LandVehicleController.java

@@ -38,6 +38,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 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.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -83,6 +84,7 @@ public class LandVehicleController extends BladeController {
 
 		List<LandVehicleChange> vehicleChangeList = landVehicleChangeService.list(new LambdaQueryWrapper<LandVehicleChange>()
 			.eq(LandVehicleChange::getVehicleId, landVehicle.getId())
+			.orderByAsc(LandVehicleChange::getChangeTime)
 		);
 		vehicleChangeList.forEach(vehicleChange -> {
 			if (ObjectUtil.isNotEmpty(vehicleChange.getDriverId())) {
@@ -90,20 +92,44 @@ public class LandVehicleController extends BladeController {
 				vehicleChange.setDriverName(driver.getName());
 			}
 		});
-		detail.setFileList(fileList);
+		detail.setVehicleChangeList(vehicleChangeList);
 		return R.data(detail);
 	}
 
 	/**
+	 * 分页 陆运车辆表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入landVehicle")
+	public R<IPage<LandVehicle>> list(LandVehicle landVehicle, Query query) {
+		landVehicle.setTenantId(AuthUtil.getTenantId());
+		landVehicle.setIsDeleted(0);
+		IPage<LandVehicle> pages = landVehicleService.page(Condition.getPage(query), Condition.getQueryWrapper(landVehicle));
+		pages.getRecords().forEach(record -> {
+			if (ObjectUtil.isNotEmpty(record.getFleetId())) {
+				CorpsDesc fleet = corpsDescService.getById(record.getFleetId());
+				record.setFleetName(fleet.getCname());
+			}
+			if (ObjectUtil.isNotEmpty(record.getDriverId())) {
+				LandDriver driver = landDriverService.getById(record.getDriverId());
+				record.setDriverName(driver.getName());
+			}
+		});
+		return R.data(pages);
+	}
+
+	/**
 	 * 陆运车辆表
 	 */
 	@GetMapping("/vehicle-list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "车辆", notes = "传入landVehicle")
-	public R<List<LandVehicle>> list(LandVehicle landVehicle) {
+	public R<List<LandVehicle>> vehicleList(LandVehicle landVehicle) {
 		landVehicle.setTenantId(AuthUtil.getTenantId());
 		landVehicle.setIsDeleted(0);
 		List<LandVehicle> vehicleList = landVehicleService.list(new LambdaQueryWrapper<LandVehicle>()
+			.like(StringUtil.isNotBlank(landVehicle.getPlateNo()), LandVehicle::getPlateNo, landVehicle.getPlateNo())
 			.eq(ObjectUtil.isNotEmpty(landVehicle.getFleetId()), LandVehicle::getFleetId, landVehicle.getFleetId())
 			.eq(LandVehicle::getTenantId, AuthUtil.getTenantId())
 			.eq(LandVehicle::getIsDeleted, 0)
@@ -124,19 +150,6 @@ public class LandVehicleController extends BladeController {
 	}
 
 	/**
-	 * 分页 陆运车辆表
-	 */
-	@GetMapping("/list")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "分页", notes = "传入landVehicle")
-	public R<IPage<LandVehicle>> list(LandVehicle landVehicle, Query query) {
-		landVehicle.setTenantId(AuthUtil.getTenantId());
-		landVehicle.setIsDeleted(0);
-		IPage<LandVehicle> pages = landVehicleService.page(Condition.getPage(query), Condition.getQueryWrapper(landVehicle));
-		return R.data(pages);
-	}
-
-	/**
 	 * 自定义分页 陆运车辆表
 	 */
 	@GetMapping("/page")

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

@@ -165,12 +165,14 @@ public class OrderController extends BladeController {
 
 		LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
 
+		Integer itemStatus = order.getItemStatus();
 		List<Long> orderIdList = Collections.emptyList();
-		if (ObjectUtil.isNotEmpty(order.getItemStatus())) {
+		if (ObjectUtil.isNotEmpty(itemStatus)) {
 			orderIdList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
 				.select(OrderItem::getOrderId)
-				.eq(OrderItem::getStatus, order.getItemStatus())
-				.eq(OrderItem::getKind, 2)
+				.eq(itemStatus != 999, OrderItem::getStatus, itemStatus)
+				.eq(itemStatus != 999,OrderItem::getKind, 2)
+				.eq(itemStatus == 999,OrderItem::getKind, 1)
 				.eq(OrderItem::getIsDeleted, 0)
 				.eq(OrderItem::getTenantId, AuthUtil.getTenantId())
 				.groupBy(OrderItem::getOrderId)
@@ -197,6 +199,7 @@ 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.getBelongCompany()), Order::getBelongCompany, order.getBelongCompany())
@@ -242,12 +245,15 @@ public class OrderController extends BladeController {
 
 				if (CollectionUtil.isNotEmpty(itemList)) {
 					StringBuilder ctnDetail = new StringBuilder();
+					Integer statusCount = 0;
 					for (OrderItem item : itemList) {
 						ctnDetail.append(item.getCtnType()).append("×").append(item.getCtnQuantity()).append(",");
+						statusCount += item.getCtnQuantity();
 					}
 					if (ctnDetail.length() > 0) {
 						record.setCtnDetail(ctnDetail.deleteCharAt(ctnDetail.lastIndexOf(",")).toString());
 					}
+					record.setItemStatusDetail("未提交(" + statusCount + ")");
 				}
 			} else {
 				List<OrderItem> itemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
@@ -294,19 +300,19 @@ public class OrderController extends BladeController {
 					long four = itemList.stream().filter(item -> item.getStatus() == 4).count();
 					String statusDetail = "";
 					if (zero > 0) {
-						statusDetail += "未调度×" + zero + ";";
+						statusDetail += "未调度(" + zero + ");";
 					}
 					if (one > 0) {
-						statusDetail += "未派车×" + one + ";";
+						statusDetail += "未派车(" + one + ");";
 					}
 					if (two > 0) {
-						statusDetail += "未受理×" + two + ";";
+						statusDetail += "未受理(" + two + ");";
 					}
 					if (three > 0) {
-						statusDetail += "未完工×" + three + ";";
+						statusDetail += "未完工(" + three + ");";
 					}
 					if (four > 0) {
-						statusDetail += "工单关闭×" + four + ";";
+						statusDetail += "工单关闭(" + four + ");";
 					}
 					record.setItemStatusDetail(statusDetail.substring(0, statusDetail.lastIndexOf(";")));
 				}
@@ -337,6 +343,7 @@ public class OrderController extends BladeController {
 	@ApiOperation(value = "统计", notes = "传入order")
 	public R count(Order order) {
 		long all = 0;
+		long last = 0;
 		long zero = 0;
 		long one = 0;
 		long two = 0;
@@ -347,8 +354,7 @@ public class OrderController extends BladeController {
 
 		List<Long> orderIdList;
 		LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
-		orderQueryWrapper.eq(Order::getStatus, 1)
-			.eq(Order::getTenantId, AuthUtil.getTenantId())
+		orderQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
 			.eq(Order::getIsDeleted, 0);
 
 		if (order.getKind() == 1) {
@@ -357,6 +363,16 @@ public class OrderController extends BladeController {
 					orderQueryWrapper.eq(Order::getCreateUser, AuthUtil.getUserId());
 				}
 			}
+
+			orderIdList = orderService.list(orderQueryWrapper).stream().filter(orderTemp -> orderTemp.getStatus() == 0).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, 1)
+					.eq(OrderItem::getIsDeleted, 0));
+
+				last += itemList.stream().mapToInt(OrderItem::getCtnQuantity).sum();
+			}
 		} else if (order.getKind() == 2) {
 			if (role.contains(LandConstant.LAND_OPERATOR)) {
 				orderQueryWrapper.like(Order::getAdminProfiles, AuthUtil.getUserId());
@@ -365,7 +381,7 @@ public class OrderController extends BladeController {
 			return R.fail("参数异常");
 		}
 
-		orderIdList = orderService.list(orderQueryWrapper).stream().map(Order::getId).collect(Collectors.toList());
+		orderIdList = orderService.list(orderQueryWrapper).stream().filter(orderTemp -> orderTemp.getStatus() == 1).map(Order::getId).collect(Collectors.toList());
 		if (CollectionUtil.isNotEmpty(orderIdList)) {
 			List<OrderItem> itemList = orderItemService.list(new LambdaQueryWrapper<OrderItem>()
 				.in(OrderItem::getOrderId, orderIdList)
@@ -381,7 +397,8 @@ public class OrderController extends BladeController {
 		}
 
 		Map<String, Object> data = new HashMap<>();
-		data.put("all", all);
+		data.put("all", all + last);
+		data.put("last", last);
 		data.put("zero", zero);
 		data.put("one", one);
 		data.put("two", two);
@@ -408,7 +425,7 @@ public class OrderController extends BladeController {
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入order")
 	public R save(@Valid @RequestBody Order order) {
-		return R.status(orderService.saveOrder(order));
+		return R.data(orderService.saveOrder(order));
 	}
 
 	/**
@@ -431,6 +448,16 @@ public class OrderController extends BladeController {
 		return R.status(orderService.submitOrder(order));
 	}
 
+	/**
+	 * 撤销 陆运订单表
+	 */
+	@GetMapping("/revoke")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R revoke(Long id) {
+		return R.status(orderService.revokeOrder(id));
+	}
+
 
 	/**
 	 * 删除 陆运订单表

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

@@ -294,8 +294,7 @@ public class OrderItemController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "调度", notes = "传入orderItem")
 	public R dispatch(@RequestBody OrderItem orderItem) {
-		orderItemService.dispatch(orderItem);
-		return R.data(orderItemService.getById(orderItem.getId()));
+		return R.data(orderItemService.dispatch(orderItem));
 	}
 
 	/**
@@ -305,8 +304,7 @@ public class OrderItemController extends BladeController {
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "取消调度", notes = "传入id")
 	public R cancelDispatch(Long id) {
-		orderItemService.cancelDispatch(id);
-		return R.data(orderItemService.getById(id));
+		return R.data(orderItemService.cancelDispatch(id));
 	}
 
 	/**

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

@@ -54,7 +54,7 @@ public interface IOrderItemService extends IService<OrderItem> {
 	 * @param orderItem
 	 * @return
 	 */
-	boolean dispatch(OrderItem orderItem);
+	OrderItem dispatch(OrderItem orderItem);
 
 	/**
 	 * 取消调度
@@ -62,7 +62,7 @@ public interface IOrderItemService extends IService<OrderItem> {
 	 * @param id
 	 * @return
 	 */
-	boolean cancelDispatch(Long id);
+	OrderItem cancelDispatch(Long id);
 
 	/**
 	 * 派车

+ 10 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -46,10 +46,10 @@ public interface IOrderService extends IService<Order> {
 	 * @param order
 	 * @return
 	 */
-	boolean saveOrder(Order order);
+	Long saveOrder(Order order);
 
 	/**
-	 * 保存订单
+	 * 提交订单
 	 *
 	 * @param order
 	 * @return
@@ -57,6 +57,14 @@ public interface IOrderService extends IService<Order> {
 	boolean submitOrder(Order order);
 
 	/**
+	 * 撤销订单
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean revokeOrder(Long id);
+
+	/**
 	 * 删除订单
 	 *
 	 * @param idList

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

@@ -22,10 +22,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.land.entity.Order;
 import org.springblade.land.entity.OrderChange;
 import org.springblade.land.entity.OrderItem;
 import org.springblade.land.mapper.OrderChangeMapper;
 import org.springblade.land.mapper.OrderItemMapper;
+import org.springblade.land.mapper.OrderMapper;
 import org.springblade.land.service.IOrderItemService;
 import org.springblade.land.vo.OrderItemVO;
 import org.springframework.stereotype.Service;
@@ -44,6 +46,8 @@ import java.util.List;
 @AllArgsConstructor
 public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem> implements IOrderItemService {
 
+	private final OrderMapper orderMapper;
+
 	private final OrderChangeMapper orderChangeMapper;
 
 	@Override
@@ -64,7 +68,7 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean dispatch(OrderItem orderItem) {
+	public OrderItem dispatch(OrderItem orderItem) {
 		OrderItem item = new OrderItem();
 		item.setId(orderItem.getId());
 		item.setFleetId(orderItem.getFleetId());
@@ -74,12 +78,19 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 		baseMapper.updateById(item);
 
 		addChange(orderItem, 1);
-		return true;
+
+		OrderItem data = baseMapper.selectById(orderItem.getId());
+
+		Order order = new Order();
+		order.setId(data.getId());
+		order.setStatus(3);
+		orderMapper.updateById(order);
+		return data;
 	}
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean cancelDispatch(Long id) {
+	public OrderItem cancelDispatch(Long id) {
 		baseMapper.update(null, new LambdaUpdateWrapper<OrderItem>()
 			.set(OrderItem::getFleetId, null)
 			.set(OrderItem::getStatus, 0)
@@ -88,7 +99,23 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 			.eq(OrderItem::getId, id));
 
 		removeChange(id, 1);
-		return true;
+
+		OrderItem data = baseMapper.selectById(id);
+
+		Integer count = baseMapper.selectCount(new LambdaQueryWrapper<OrderItem>()
+			.ne(OrderItem::getStatus, 0)
+			.eq(OrderItem::getOrderId, data.getOrderId())
+			.eq(OrderItem::getKind, 2)
+			.eq(OrderItem::getIsDeleted, 0)
+		);
+
+		if (count == 0) {
+			Order order = new Order();
+			order.setId(data.getId());
+			order.setStatus(2);
+			orderMapper.updateById(order);
+		}
+		return data;
 	}
 
 	@Override

+ 20 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -66,7 +66,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public boolean saveOrder(Order order) {
+	public Long saveOrder(Order order) {
 		if (ObjectUtil.isEmpty(order.getId())) {
 			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
 			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
@@ -126,7 +126,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderFeeMapper.updateById(fee);
 			}
 		});
-		return true;
+		return orderId;
 	}
 
 	@Override
@@ -175,6 +175,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
+	public boolean revokeOrder(Long id) {
+		OrderItem item = new OrderItem();
+		item.setIsDeleted(1);
+		orderItemMapper.update(item, new LambdaQueryWrapper<OrderItem>()
+			.eq(OrderItem::getOrderId, id)
+			.eq(OrderItem::getKind, 2)
+			.eq(OrderItem::getIsDeleted, 0)
+		);
+
+		Order order = new Order();
+		order.setId(id);
+		order.setStatus(1);
+		baseMapper.updateById(order);
+		return true;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean removeOrder(List<Long> idList) {
 		idList.forEach(id -> {
 			Order order = new Order();