localizer
ljw 2025-09-13 16:57:53 +08:00
commit 77fcdad50f
10 changed files with 275 additions and 17 deletions

View File

@ -43,8 +43,8 @@ public class OSSController {
*
*/
@PostMapping("/upload")
public void uploadFile(@RequestPart MultipartFile file) {
ossService.uploadFile(file);
public R<?> uploadFile(@RequestPart MultipartFile file) {
return R.success(ossService.uploadFile(file));
}
/**

View File

@ -0,0 +1,20 @@
package com.njzscloud.supervisory.order.contant;
import com.njzscloud.common.core.ienum.DictStr;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* check_status
*
*/
@Getter
@RequiredArgsConstructor
public enum CheckStatus implements DictStr {
Wu("Wu", "无"),
YiKanLiao("YiKanLiao", "已看料"),
WeiKanLiao("WeiKanLiao", "未看料"),
;
private final String val;
private final String txt;
}

View File

@ -6,8 +6,7 @@ import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.security.support.UserDetail;
import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity;
import com.njzscloud.supervisory.order.pojo.param.AuditOrderParam;
import com.njzscloud.supervisory.order.pojo.param.OrderPagingSearchParam;
import com.njzscloud.supervisory.order.pojo.param.*;
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
import com.njzscloud.supervisory.order.service.OrderInfoService;
import lombok.RequiredArgsConstructor;
@ -90,4 +89,53 @@ public class OrderInfoController {
return R.success();
}
/**
*
*/
@GetMapping("/check")
public R<?> check(CheckGoodsParam checkGoodsParam) {
orderInfoService.check(checkGoodsParam);
return R.success();
}
/**
* /
*/
@GetMapping("/assignment")
public R<?> assignment(AssignmentOrderParam assignmentOrderParam) {
orderInfoService.assignment(assignmentOrderParam);
return R.success();
}
/**
*
*
* @param orderId Id
*/
@GetMapping("/confirm")
public R<?> confirm(@RequestParam("orderId") Long orderId) {
orderInfoService.confirm(orderId);
return R.success();
}
/**
*
*/
@GetMapping("/start_trans")
public R<?> startTrans(StartTransportOrderParam startTransportOrderParam) {
orderInfoService.startTrans(startTransportOrderParam);
return R.success();
}
/**
*
*
* @param orderId Id
*/
@GetMapping("/cancel")
public R<?> cancel(@RequestParam("orderId") Long orderId) {
orderInfoService.cancel(orderId);
return R.success();
}
}

View File

@ -1,11 +1,9 @@
package com.njzscloud.supervisory.order.pojo.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.njzscloud.common.mp.support.handler.j.JsonTypeHandler;
import com.njzscloud.supervisory.biz.contant.AuditStatus;
import com.njzscloud.supervisory.order.contant.OrderCategory;
import com.njzscloud.supervisory.order.contant.OrderStatus;
import com.njzscloud.supervisory.order.contant.PayerCategory;
import com.njzscloud.supervisory.order.contant.PaymentStatus;
import com.njzscloud.supervisory.order.contant.*;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@ -13,6 +11,7 @@ import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
*
@ -21,7 +20,7 @@ import java.time.LocalDateTime;
@Setter
@ToString
@Accessors(chain = true)
@TableName("order_info")
@TableName(value = "order_info", autoResultMap = true)
public class OrderInfoEntity {
/**
@ -40,6 +39,15 @@ public class OrderInfoEntity {
*/
private Long cargoPlaceId;
/**
* Id
*/
private Long transCompanyId;
/**
*
*/
private LocalDateTime transTime;
/**
* Id
*/
@ -83,7 +91,7 @@ public class OrderInfoEntity {
/**
* ; check_status
*/
private String checkStatus;
private CheckStatus checkStatus;
/**
* Id
@ -148,12 +156,14 @@ public class OrderInfoEntity {
/**
*
*/
private String cargoPhoto;
@TableField(typeHandler = JsonTypeHandler.class)
private List<String> cargoPhoto;
/**
*
*/
private String checkPhoto;
@TableField(typeHandler = JsonTypeHandler.class)
private List<String> checkPhoto;
/**
* Id; sys_user.id

View File

@ -0,0 +1,25 @@
package com.njzscloud.supervisory.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class AssignmentOrderParam {
/**
* Id
*/
private Long orderId;
/**
* Id
*/
private Long transCompanyId;
/**
* Id
*/
private Long driverId;
}

View File

@ -0,0 +1,23 @@
package com.njzscloud.supervisory.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class CheckGoodsParam {
/**
* Id
*/
private Long orderId;
/**
*
*/
private List<String> checkPhoto;
}

View File

@ -0,0 +1,24 @@
package com.njzscloud.supervisory.order.pojo.param;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.List;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class StartTransportOrderParam {
/**
* Id
*/
private Long orderId;
/**
*
*/
private List<String> cargoPhoto;
}

View File

@ -13,10 +13,11 @@ import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.supervisory.biz.contant.AuditStatus;
import com.njzscloud.supervisory.biz.pojo.entity.BizAuditConfigEntity;
import com.njzscloud.supervisory.biz.service.BizAuditConfigService;
import com.njzscloud.supervisory.order.contant.CheckStatus;
import com.njzscloud.supervisory.order.contant.OrderStatus;
import com.njzscloud.supervisory.order.mapper.OrderInfoMapper;
import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity;
import com.njzscloud.supervisory.order.pojo.param.AuditOrderParam;
import com.njzscloud.supervisory.order.pojo.param.OrderPagingSearchParam;
import com.njzscloud.supervisory.order.pojo.param.*;
import com.njzscloud.supervisory.order.pojo.result.OrderPagingResult;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -148,4 +149,94 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.setAuditMemo(auditOrderParam.getAuditMemo())
);
}
@Transactional(rollbackFor = Exception.class)
public void check(CheckGoodsParam checkGoodsParam) {
OrderInfoEntity oldOrder = this.getById(checkGoodsParam.getOrderId());
Assert.notNull(oldOrder, () -> Exceptions.clierr("订单不存在"));
CheckStatus checkStatus = oldOrder.getCheckStatus();
Assert.isFalse(checkStatus == null, () -> Exceptions.clierr("当前订单无需看料"));
Assert.isFalse(CheckStatus.YiKanLiao == checkStatus, () -> Exceptions.clierr("当前订单已看料"));
this.updateById(new OrderInfoEntity()
.setCheckPhoto(checkGoodsParam.getCheckPhoto())
.setCheckStatus(CheckStatus.YiKanLiao)
.setCheckerId(SecurityUtil.currentUserId())
);
}
public void assignment(AssignmentOrderParam assignmentOrderParam) {
OrderInfoEntity oldOrder = this.getById(assignmentOrderParam.getOrderId());
Assert.notNull(oldOrder, () -> Exceptions.clierr("订单不存在"));
boolean assignmented = assignmentTrafficCompany(assignmentOrderParam, oldOrder);
if (assignmented) {
oldOrder.setOrderStatus(OrderStatus.DaiPaiDan);
}
assignmentDriver(assignmentOrderParam, oldOrder);
}
private void assignmentDriver(AssignmentOrderParam assignmentOrderParam, OrderInfoEntity orderInfo) {
Long driverId = assignmentOrderParam.getDriverId();
if (driverId == null) return;
Assert.isNull(orderInfo.getDriverId(), () -> Exceptions.clierr("当前订单已分配司机,无需重复分配"));
Assert.isTrue(orderInfo.getOrderStatus() == OrderStatus.DaiPaiDan, () -> Exceptions.clierr("当前订单状态,无法分配司机"));
this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId())
.setDriverId(driverId)
.setOrderStatus(OrderStatus.DaiJieDan)
);
}
private boolean assignmentTrafficCompany(AssignmentOrderParam assignmentOrderParam, OrderInfoEntity orderInfo) {
Long transCompanyId = assignmentOrderParam.getTransCompanyId();
if (transCompanyId == null) return false;
Assert.isNull(orderInfo.getTransCompanyId(), () -> Exceptions.clierr("当前订单已分配清运公司,无需重复分配"));
Assert.isTrue(orderInfo.getOrderStatus() == OrderStatus.YiYuYue, () -> Exceptions.clierr("当前订单状态,无法分配清运公司"));
this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId())
.setTransCompanyId(transCompanyId)
.setOrderStatus(OrderStatus.DaiPaiDan)
);
return true;
}
public void confirm(Long orderId) {
OrderInfoEntity orderInfo = this.getById(orderId);
Assert.notNull(orderInfo, () -> Exceptions.clierr("订单不存在"));
Assert.isTrue(orderInfo.getOrderStatus() == OrderStatus.DaiJieDan, () -> Exceptions.clierr("当前订单状态,无法确认接单"));
this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId())
.setOrderStatus(OrderStatus.YiJieDan)
);
}
public void startTrans(StartTransportOrderParam startTransportOrderParam) {
OrderInfoEntity orderInfo = this.getById(startTransportOrderParam.getOrderId());
Assert.notNull(orderInfo, () -> Exceptions.clierr("订单不存在"));
Assert.isTrue(orderInfo.getOrderStatus() == OrderStatus.YiJieDan, () -> Exceptions.clierr("当前订单状态,无法开始运输"));
this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId())
.setCargoPhoto(startTransportOrderParam.getCargoPhoto())
.setOrderStatus(OrderStatus.QingYunZhong)
.setTransTime(LocalDateTime.now())
);
// TODO 获取 GPS
}
public void cancel(Long orderId) {
OrderInfoEntity orderInfo = this.getById(orderId);
Assert.notNull(orderInfo, () -> Exceptions.clierr("订单不存在"));
OrderStatus orderStatus = orderInfo.getOrderStatus();
Assert.isTrue(orderStatus == OrderStatus.YiYuYue
|| orderStatus == OrderStatus.DaiPaiDan
|| orderStatus == OrderStatus.DaiJieDan
, () -> Exceptions.clierr("当前订单状态,无法取消"));
this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId())
.setOrderStatus(OrderStatus.YiQuXiao)
);
// TODO 关闭 GPS
}
}

View File

@ -4,7 +4,7 @@
"avatar": "data:image/png;base64,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",
"version": "4.9.4",
"createdTime": "2023-4-13 11:53:52",
"updatedTime": "2025-9-12 16:38:16",
"updatedTime": "2025-9-12 22:42:33",
"dbConns": [],
"profile": {
"default": {
@ -10060,7 +10060,7 @@
"id": "5C0F4129-75F7-4EF4-BEFE-AEF7F2853800"
},
{
"defKey": "traffic_company_id",
"defKey": "trans_company_id",
"defName": "清运公司 Id",
"comment": "",
"type": "BIGINT",
@ -10076,6 +10076,23 @@
"extProps": {},
"id": "0DE621DB-FDD5-4BF8-ACB4-6BAF52742049"
},
{
"defKey": "trans_time",
"defName": "开始清运时间",
"comment": "",
"type": "DATETIME",
"len": "",
"scale": "",
"primaryKey": false,
"notNull": false,
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"baseType": "A098BA98-4957-43EE-9F06-1CDC26D370E0",
"extProps": {},
"id": "9DDBBD73-62BE-4F01-8DB6-408ED8B8451E"
},
{
"defKey": "user_id",
"defName": "下单人 Id",
@ -10190,7 +10207,7 @@
"autoIncrement": false,
"defaultValue": "",
"hideInGraph": false,
"refDict": "",
"refDict": "F96FCFCB-659A-4038-A681-5F03ACC5F40C",
"baseType": "AA07828C-4FCB-4EDA-9B51-53A3F264F231",
"extProps": {},
"id": "1C1F7749-1FD1-4529-BBAF-B9CC8BBF7E2A"