Browse Source

陆运散货修改

lichao 3 years ago
parent
commit
3b63195556

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

@@ -248,21 +248,21 @@ public class Order implements Serializable {
 	 * 车队id
 	 */
 	@ApiModelProperty(value = "车队")
-	private String fleet;
+	private Long fleetId;
 	/**
 	 * 车号
 	 */
 	@ApiModelProperty(value = "车号")
-	private String licenseNumber;
+	private String plateNo;
 	/**
-	 * 司机
+	 * 司机id
 	 */
 	@ApiModelProperty(value = "司机")
-	private String driver;
+	private Long driverId;
 	/**
 	 * 电话
 	 */
-	@ApiModelProperty(value = "电话")
+	@ApiModelProperty(value = "司机电话")
 	private String driverTel;
 	/**
 	 * 车体积

+ 0 - 12
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderAddress.java

@@ -136,18 +136,6 @@ public class OrderAddress implements Serializable {
 	private Date freightTime;
 
 	/**
-	 * 货运地点ID
-	 */
-	@ApiModelProperty(value = "货运地点ID")
-	private String freightPlaceId;
-
-	/**
-	 * 货运地点名称
-	 */
-	@ApiModelProperty(value = "货运地点名称")
-	private String freightPlaceName;
-
-	/**
 	 * 货物体积
 	 */
 	@ApiModelProperty(value = "货物体积")

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

@@ -123,5 +123,15 @@ public class OrderAddressController extends BladeController {
 		return R.status(orderAddressService.removeOrderAddress(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 删除 陆运散货地址
+	 */
+	@PostMapping("/removeBulkAddress")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R removeBulkAddress(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(orderAddressService.removeBulkAddress(Func.toLongList(ids)));
+	}
+
 
 }

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

@@ -133,6 +133,16 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 陆运散货详情
+	 */
+	@GetMapping("/detailBulkLoad")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "散货详情", notes = "传入order")
+	public R<Order> detailBulkLoad(Order order) {
+		return R.data(orderService.detailBulkLoad(order));
+	}
+
+	/**
 	 * 自定义分页 陆运散货订单表
 	 */
 	@GetMapping("/pageBulkLoad")
@@ -143,6 +153,28 @@ public class OrderController extends BladeController {
 	}
 
 	/**
+	 * 陆运散货修改状态
+	 * @param id 		主表id
+	 * @param status	状态
+	 * @return
+	 */
+	@GetMapping("/statusBulkLoad")
+	@ApiOperation(value = "散货修改状态", notes = "传入order")
+	public R statusBulkLoad(Long id,Integer status) {
+		return R.data(orderService.statusBulkLoad(id, status));
+	}
+
+	/**
+	 * 散货 统计
+	 */
+	@GetMapping("/BulkLoadCount")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "统计", notes = "传入order")
+	public R BulkLoadCount(Order order) {
+		return R.data(orderService.BulkLoadCount(order));
+	}
+
+	/**
 	 * 变更许可
 	 */
 	@GetMapping("/valid-change")

+ 8 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderAddressService.java

@@ -48,4 +48,12 @@ public interface IOrderAddressService extends IService<OrderAddress> {
 	 */
 	boolean removeOrderAddress(List<Long> idList);
 
+	/**
+	 * 删除散货地址
+	 *
+	 * @param idList
+	 * @return
+	 */
+	boolean removeBulkAddress(List<Long> idList);
+
 }

+ 15 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -106,6 +106,21 @@ public interface IOrderService extends IService<Order> {
 	IPage<Order> selectBulkLoadList(Order page, Query query);
 
 	/**
+	 * 陆运散货详情
+	 */
+	Order detailBulkLoad(Order order);
+
+	/**
+	 * 陆运散货修改状态
+	 */
+	Long statusBulkLoad(Long id, Integer status);
+
+	/**
+	 * 散货 统计
+	 */
+	Map<String, Object> BulkLoadCount(Order order);
+
+	/**
 	 * 变更许可
 	 *
 	 * @param id

+ 86 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderAddressServiceImpl.java

@@ -101,4 +101,90 @@ public class OrderAddressServiceImpl extends ServiceImpl<OrderAddressMapper, Ord
 		return true;
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean removeBulkAddress(List<Long> idList) {
+		idList.forEach(id -> {
+			OrderAddress temp = baseMapper.selectById(id);
+
+			OrderAddress orderAddress = new OrderAddress();
+			orderAddress.setId(id);
+			orderAddress.setIsDeleted(1);
+			baseMapper.updateById(orderAddress);
+
+			List<OrderAddress> loadingAddressList = baseMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
+				.eq(OrderAddress::getOrderId, temp.getOrderId())
+				.eq(OrderAddress::getIsDeleted, 0)
+				.eq(OrderAddress::getBillType, 1)
+			);
+
+			int i = 1;
+			StringBuilder addressDetail = new StringBuilder();
+			for (OrderAddress address : loadingAddressList) {
+				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
+					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
+					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+						addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
+					} else {
+						addressDetail.append(i).append(".").append("(");
+					}
+
+					if (StringUtil.isNotBlank(address.getContacts())) {
+						addressDetail.append(address.getContacts());
+					}
+					if (StringUtil.isNotBlank(address.getTel())) {
+						addressDetail.append(" ").append(address.getTel());
+					}
+					if (StringUtil.isNotBlank(address.getAddress())) {
+						addressDetail.append(") ").append(address.getAddress()).append("\n");
+					} else {
+						addressDetail.append(") ").append("\n");
+					}
+
+					i++;
+				}
+			}
+
+			List<OrderAddress> unloadedAddressList = baseMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
+				.eq(OrderAddress::getOrderId, temp.getOrderId())
+				.eq(OrderAddress::getIsDeleted, 0)
+				.eq(OrderAddress::getBillType, 2)
+			);
+
+			i = 1;
+			StringBuilder unloadedaddressDetail = new StringBuilder();
+			for (OrderAddress address : unloadedAddressList) {
+				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
+					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
+					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+						unloadedaddressDetail.append(i).append(".").append(address.getCorpName()).append("(");
+					} else {
+						unloadedaddressDetail.append(i).append(".").append("(");
+					}
+
+					if (StringUtil.isNotBlank(address.getContacts())) {
+						unloadedaddressDetail.append(address.getContacts());
+					}
+					if (StringUtil.isNotBlank(address.getTel())) {
+						unloadedaddressDetail.append(" ").append(address.getTel());
+					}
+					if (StringUtil.isNotBlank(address.getAddress())) {
+						unloadedaddressDetail.append(") ").append(address.getAddress()).append("\n");
+					} else {
+						unloadedaddressDetail.append(") ").append("\n");
+					}
+
+					i++;
+				}
+			}
+
+			Order order = new Order();
+			order.setId(temp.getOrderId());
+			order.setAddressDetail(addressDetail.toString());
+			order.setUnloadingPlace(unloadedaddressDetail.toString());
+			orderMapper.updateById(order);
+		});
+		return true;
+	}
+
 }

+ 195 - 21
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -461,6 +461,46 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return data;
 	}
 
+	/**
+	 * 散货 统计
+	 */
+	@Override
+	public Map<String, Object> BulkLoadCount(Order order) {
+		long all = 0;
+		long last = 0;
+		long zero = 0;
+		long one = 0;
+		long two = 0;
+		long three = 0;
+		long four = 0;
+
+		List<Order> orderIdList;
+		LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<>();
+		orderQueryWrapper.eq(Order::getTenantId, AuthUtil.getTenantId())
+			.eq(Order::getShippingMode, "散货")
+			.eq(Order::getIsDeleted, 0);
+
+		orderIdList = baseMapper.selectList(orderQueryWrapper);
+		if (CollectionUtil.isNotEmpty(orderIdList)) {
+			all = orderIdList.size();
+			zero = orderIdList.stream().filter(item -> item.getStatus() == 0).count();
+			one = orderIdList.stream().filter(item -> item.getStatus() == 1).count();
+			two = orderIdList.stream().filter(item -> item.getStatus() == 2).count();
+			three = orderIdList.stream().filter(item -> item.getStatus() != 0 && item.getStatus() != 1 && item.getStatus() != 2 && item.getStatus() != 4).count();
+			four = orderIdList.stream().filter(item -> item.getStatus() == 4).count();
+		}
+
+		Map<String, Object> data = new HashMap<>();
+		data.put("all", all + last);
+		data.put("last", last);
+		data.put("zero", zero);
+		data.put("one", one);
+		data.put("two", two);
+		data.put("three", three);
+		data.put("four", four);
+		return data;
+	}
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class)
@@ -506,9 +546,32 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 		}
 
+		//杂费明细
+		if (order.getShippingMode().equals("散货")) {
+			List<OrderFee> orderFeeList = order.getOrderFeeList();
+
+			for (OrderFee item : orderFeeList) {
+				if (ObjectUtil.isEmpty(item.getId())) {
+					item.setOrderId(order.getId());
+					item.setTenantId(AuthUtil.getTenantId());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateTime(new Date());
+					orderFeeMapper.insert(item);
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					orderFeeMapper.updateById(item);
+				}
+			}
+		}
+
 		StringBuilder addressDetail = new StringBuilder();
 		dealExtraInfo(order, addressDetail);
 
+		if (CollectionUtil.isNotEmpty(itemList)) {
+			order.setArrivalTime(itemList.get(0).getArrivalTime());
+		}
+
 		order.setFreight(freight);
 		if (addressDetail.length() > 0) {
 			if(order.getShippingMode().equals("散货")){
@@ -516,14 +579,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				String[] addressList = address.split(",");
 				order.setAddressDetail(addressList[0]);
 				order.setUnloadingPlace(addressList[1]);
+				order.setArrivalTime(order.getLoadingAddressList().get(0).getFreightTime());
 			} else {
 				order.setAddressDetail(addressDetail.deleteCharAt(addressDetail.lastIndexOf("\n")).toString());
 			}
 
 		}
-		if (CollectionUtil.isNotEmpty(itemList)) {
-			order.setArrivalTime(itemList.get(0).getArrivalTime());
-		}
+
 		baseMapper.updateById(order);
 		return order.getId();
 	}
@@ -548,7 +610,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		LambdaQueryWrapper<Order> orderQueryWrapper = new LambdaQueryWrapper<Order>();
 		orderQueryWrapper.eq(Order::getShippingMode, "散货")
 			.eq(Order::getTenantId, AuthUtil.getTenantId())
-			.eq(Order::getIsDeleted, 0);
+			.eq(Order::getIsDeleted, 0)
+			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
+			.eq(ObjectUtil.isNotEmpty(order.getDispatchDept()), Order::getDispatchDept, order.getDispatchDept())
+			.eq(StringUtil.isNotBlank(order.getShippingMode()), Order::getShippingMode, order.getShippingMode())
+			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
+			.eq(ObjectUtil.isNotEmpty(order.getFleetId()), Order::getFleetId, order.getFleetId())
+			.eq(ObjectUtil.isNotEmpty(order.getPlateNo()), Order::getPlateNo, order.getPlateNo())
+			.eq(ObjectUtil.isNotEmpty(order.getDriverId()), Order::getDriverId, order.getDriverId())
+			.eq(StringUtil.isNotBlank(order.getOrderNo()), Order::getOrderNo, order.getOrderNo())
+			.like(StringUtil.isNotBlank(order.getContractNo()), Order::getContractNo, order.getContractNo())
+			.like(StringUtil.isNotBlank(order.getDispatchNumber()), Order::getDispatchNumber, order.getDispatchNumber())
+			.like(StringUtil.isNotBlank(order.getAddressDetail()), Order::getAddressDetail, order.getAddressDetail())
+			.like(StringUtil.isNotBlank(order.getUnloadingPlace()),Order::getUnloadingPlace, order.getUnloadingPlace())
+			.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());
+
 		IPage<Order> pages = baseMapper.selectPage(Condition.getPage(query), orderQueryWrapper);
 		pages.getRecords().forEach(record -> {
 			//客户
@@ -573,12 +650,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					record.setSalesmanName(user.getData().getRealName());
 				}
 			}
+			//调度员
 			if (!ObjectUtil.isEmpty(record.getDispatcher())) {
 				R<User> user = userClient.userInfoById(record.getDispatcher());
 				if (user.isSuccess() && user.getData() != null) {
 					record.setDispatcherName(user.getData().getRealName());
 				}
 			}
+			//调度部门
 			if (!ObjectUtil.isEmpty(record.getDispatchDept())) {
 				R<String> dept = sysClient.getDeptName(record.getDispatchDept());
 				if (dept.isSuccess() && dept.getData() != null) {
@@ -589,6 +668,88 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return pages;
 	}
 
+	/**
+	 * 陆运散货详情
+	 */
+	@Override
+	public Order detailBulkLoad(Order order) {
+		Order detail = baseMapper.selectById(order.getId());
+		if (ObjectUtil.isEmpty(detail)) {
+			return detail;
+		}
+
+		if (!ObjectUtil.isEmpty(detail.getCorpId())) {
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(detail.getCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+				detail.setCorpName(corpMessage.getData().getCname());
+				detail.setCorpShortName(corpMessage.getData().getShortName());
+			}
+		}
+
+		List<OrderItem> itemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
+			.eq(OrderItem::getOrderId, order.getId())
+			.eq(OrderItem::getKind, 1)
+			.eq(OrderItem::getIsDeleted, 0));
+		detail.setItemList(itemList);
+
+		//杂费明细
+		List<OrderFee> orderFeeList = orderFeeMapper.selectList(new LambdaQueryWrapper<OrderFee>()
+			.eq(OrderFee::getOrderId, order.getId())
+			.eq(OrderFee::getIsDeleted, 0));
+		orderFeeList.forEach(orderFee -> {
+			if (!ObjectUtil.isEmpty(orderFee.getCorpId())) {
+				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderFee.getCorpId());
+				if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+					orderFee.setCorpName(corpMessage.getData().getCname());
+					orderFee.setCorpShortName(corpMessage.getData().getShortName());
+				}
+			}
+			if (!ObjectUtil.isEmpty(orderFee.getFeeId())) {
+				R<FeesDesc> feesMessage = feesDescClient.detail(orderFee.getFeeId());
+				if (feesMessage.isSuccess() && feesMessage.getData() != null) {
+					orderFee.setFeeName(feesMessage.getData().getCname());
+				}
+			}
+		});
+		detail.setOrderFeeList(orderFeeList);
+
+		detail.setOrderItemList(getOrderItemList(order.getId()));
+
+		//装货地址
+		List<OrderAddress> loadingAddressList = orderAddressMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
+			.eq(OrderAddress::getOrderId, order.getId())
+			.eq(OrderAddress::getIsDeleted, 0)
+			.eq(OrderAddress::getBillType, 1)
+			.orderByAsc(OrderAddress::getSort)
+		);
+		detail.setLoadingAddressList(loadingAddressList);
+
+		//卸货地址
+		List<OrderAddress> unloadedAddressList = orderAddressMapper.selectList(new LambdaQueryWrapper<OrderAddress>()
+			.eq(OrderAddress::getOrderId, order.getId())
+			.eq(OrderAddress::getIsDeleted, 0)
+			.eq(OrderAddress::getBillType, 2)
+			.orderByAsc(OrderAddress::getSort)
+		);
+		detail.setUnloadedAddressList(unloadedAddressList);
+
+		return detail;
+	}
+
+	/**
+	 * 陆运散货修改状态
+	 */
+	@Override
+	public Long statusBulkLoad(Long id, Integer status) {
+		Order order = new Order();
+		if (ObjectUtil.isNotEmpty(id)) {
+			order.setId(id);
+			order.setStatus(status);
+			baseMapper.updateById(order);
+		}
+		return order.getId();
+	}
+
 	@Override
 	public boolean validChange(Long id) {
 		Integer count = orderItemMapper.selectCount(new LambdaQueryWrapper<OrderItem>()
@@ -966,20 +1127,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderAddressMapper.updateById(address);
 				}
 
-				if (StringUtil.isNotBlank(address.getContacts()) || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
-
-					if (ObjectUtil.isNotEmpty(address.getFreightPlaceId()) && StringUtil.isNotBlank(address.getFreightPlaceName())) {
-						addressDetail.append(i).append(".").append(address.getFreightPlaceName()).append("(");
+				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
+					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
+					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+						addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
 					} else {
 						addressDetail.append(i).append(".").append("(");
 					}
 
+					if (StringUtil.isNotBlank(address.getContacts())) {
+						addressDetail.append(address.getContacts());
+					}
+					if (StringUtil.isNotBlank(address.getTel())) {
+						addressDetail.append(" ").append(address.getTel());
+					}
 					if (StringUtil.isNotBlank(address.getAddress())) {
 						addressDetail.append(") ").append(address.getAddress()).append("\n");
 					} else {
 						addressDetail.append(") ").append("\n");
 					}
-
+					i++;
 				}
 			}
 
@@ -1002,33 +1169,40 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderAddressMapper.updateById(address);
 				}
 
-				if (StringUtil.isNotBlank(address.getContacts()) || StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
-
-					if (ObjectUtil.isNotEmpty(address.getFreightPlaceId()) && StringUtil.isNotBlank(address.getFreightPlaceName())) {
-						addressDetail.append(i).append(".").append(address.getFreightPlaceName()).append("(");
+				if (ObjectUtil.isNotEmpty(address.getCorpId()) || StringUtil.isNotBlank(address.getContacts())
+					|| StringUtil.isNotBlank(address.getTel()) || StringUtil.isNotBlank(address.getAddress())) {
+					if (ObjectUtil.isNotEmpty(address.getCorpId()) && StringUtil.isNotBlank(address.getCorpName())) {
+						addressDetail.append(i).append(".").append(address.getCorpName()).append("(");
 					} else {
 						addressDetail.append(i).append(".").append("(");
 					}
 
+					if (StringUtil.isNotBlank(address.getContacts())) {
+						addressDetail.append(address.getContacts());
+					}
+					if (StringUtil.isNotBlank(address.getTel())) {
+						addressDetail.append(" ").append(address.getTel());
+					}
 					if (StringUtil.isNotBlank(address.getAddress())) {
 						addressDetail.append(") ").append(address.getAddress()).append("\n");
 					} else {
 						addressDetail.append(") ").append("\n");
 					}
-
+					i++;
 				}
 
-				i++;
 			}
 		}
 
 		List<CommonFile> fileList = order.getFileList();
-		fileList.forEach(file -> {
-			if (ObjectUtil.isEmpty(file.getId())) {
-				file.setPid(order.getId());
-				file.setSource(LandConstant.ORDER);
-			}
-		});
+		if (ObjectUtil.isNotEmpty(fileList)){
+			fileList.forEach(file -> {
+				if (ObjectUtil.isEmpty(file.getId())) {
+					file.setPid(order.getId());
+					file.setSource(LandConstant.ORDER);
+				}
+			});
+		}
 		commonFileClient.saveList(fileList);
 	}