瀏覽代碼

ias 领取和审核

master
chenchaod 3 週之前
父節點
當前提交
ce95025036

+ 1
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java 查看文件

@@ -24,6 +24,7 @@ public enum DataType {
CHANGE_GOODS("changeGoods", IasServiceType.ORDER, OrderServiceCmd.CHANGEGOODS),
RETURN_GOODS("returnGoods", IasServiceType.ORDER, OrderServiceCmd.RETURNGOODS),
RETURN_EXAMINE("returnExamine", IasServiceType.ORDER, OrderServiceCmd.RETURNEXAMINE),
ORDER_RECEIVE("orderReceive", IasServiceType.ORDER, OrderServiceCmd.ORDERRECEIVE),
ORDER_AUDIT("orderAudit", IasServiceType.ORDER, OrderServiceCmd.ORDERAUDIT),
PUSH_AGREEMENT("pushAgreement", IasServiceType.ORDER, OrderServiceCmd.PUSHAGREEMENT),


+ 8
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/handler/OrderServiceHandler.java 查看文件

@@ -48,6 +48,10 @@ public class OrderServiceHandler extends AbstractIasServiceHandler<OrderServiceC
private ReturnGoodsManager returnGoodsManager;
@Autowired
private ReturnExamineManager returnExamineManager;
@Autowired
private OrderReceiveManager orderReceiveManager;
@Autowired
private OrderAuditManager orderAuditManager;

@Override
protected <T extends AbstractSignTypeRequest<?>> AbstractSignTypeResponse handleInternal(T request, SignJsonRequest jsonReq, AbstractHttpRequestInfo reqInfo) throws ServiceHandleException {
@@ -83,6 +87,10 @@ public class OrderServiceHandler extends AbstractIasServiceHandler<OrderServiceC
return returnGoodsManager.serviceHandle((ReturnGoodsRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
case RETURNEXAMINE:
return returnExamineManager.serviceHandle((ReturnExamineRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
case ORDERRECEIVE:
return orderReceiveManager.serviceHandle((OrderReceiveRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
case ORDERAUDIT:
return orderAuditManager.serviceHandle((OrderAuditRequest)request, jsonReq.getIfCode(), jsonReq.getReqId(), reqInfo);
default:
throw FileProtocolSystemError.NOT_SUPPORT.toHandleException(jsonReq.getIfCode());
}

+ 102
- 73
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderAuditManager.java 查看文件

@@ -1,29 +1,44 @@
package cn.com.taiji.ias.manager.order;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.basic.QtkBrandInfo;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.issue.IssueOrderStatus;
import cn.com.taiji.core.entity.dict.issue.IssueOrderStep;
import cn.com.taiji.core.entity.dict.issue.ShippingStatus;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.issue.IssueOrderinfoExt;
import cn.com.taiji.core.entity.issue.IssueProduct;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import cn.com.taiji.core.model.comm.protocol.ias.order.AbstractIssueResponse;
import cn.com.taiji.core.manager.tools.issue.IssueTools;
import cn.com.taiji.core.manager.tools.issue.QdCallUtil;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderAuditRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderAuditResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.basic.QtkBrandInfoRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Map;

@Service
public class OrderAuditManager extends AbstractOrderManager<OrderAuditRequest> {

public static final String STAFF = "staff";
public static final String ORDER_EXT = "ext";
public OrderAuditManager() {
super(DataType.ORDER_AUDIT);
}

@Autowired
private QtkBrandInfoRepo qtkBrandinfoRepo;
@Autowired
private QdCallUtil qdCallUtil;

@Override
protected String getDataId(OrderAuditRequest req) {
return "";
@@ -38,13 +53,11 @@ public class OrderAuditManager extends AbstractOrderManager<OrderAuditRequest> {
@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, OrderAuditRequest request,
ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
if (hasText(request.getStaffId())) {
Staff staff = staffRepo.findByStaffId(request.getStaffId());
if (staff == null) {
throw GlyServiceError.FORMAT_VALIDATE_ERR.toHandleException("员工不存在");
}
dataStream.put(STAFF, staff);
Staff staff = staffRepo.findByStaffId(request.getStaffId());
if (staff == null) {
throw GlyServiceError.FORMAT_VALIDATE_ERR.toHandleException("员工不存在");
}
dataStream.put(STAFF, staff);
IssueOrderinfo order = checkOrder(request.getOrderNo());
if (!IssueOrderStatus.NORMAL.equals(order.getOrderStatus())) {
throw newBusinessException("当前订单不能审核,订单状态:" + order.getOrderStatus().getStatus());
@@ -52,6 +65,9 @@ public class OrderAuditManager extends AbstractOrderManager<OrderAuditRequest> {
if (!IssueOrderStep.WAITING_AUDIT.equals(order.getOrderStep())) {
throw newBusinessException("当前订单步骤不能审核,订单步骤:" + order.getOrderStep().getStep());
}
if (!staff.getOpenId().equals(order.getReceiver())) {
throw newBusinessException("审核订单的人与领取订单的人不一致,不允许审核");
}
dataStream.put(ORDER, order);
}

@@ -60,74 +76,87 @@ public class OrderAuditManager extends AbstractOrderManager<OrderAuditRequest> {
Map<String, Object> dataStream) throws ServiceHandleException {
IssueOrderinfo order = (IssueOrderinfo) dataStream.get(ORDER);
Staff staff = (Staff) dataStream.get(STAFF);
// ServiceType serviceType;
// CsmsnOrderinfo order = orderInfoRepo.findByOrderNo(req.getOrderNo());
// if (req.getAuditStatus()) {
// if (OrderSourceEnum.CHANNEL.equals(order.getOrderSource())){//20250115加判断条件,如果是渠道,审核通过,是待支付
// //20250408修改,线上不需要支付,审核通过直接待签约
// if (order.getPromotionModes().equals(1)) {// 线上
// order.setOrderStep(IssueOrderStep.ORDER_STEP_3.getCode());//待签约
// } else {//线下
// order.setOrderStep(IssueOrderStep.ORDER_STEP_4.getCode());//线下待支付
// }
// }else {
// if (order.getWhetherToMail()) {
// order.setOrderStep(IssueOrderStep.ORDER_STEP_8.getCode());
// } else {
// order.setOrderStep(IssueOrderStep.ORDER_STEP_10.getCode());
// }
// }
// serviceType = ServiceType.EXAMINATIONPASS;
// } else {
// order.setOrderStep(IssueOrderStep.ORDER_STEP_7.getCode());
// serviceType = ServiceType.NOEXAMINATIONPASS;
// }
// String staffId = req.getStaffId();
// AccountInfo staff = accountInfoRepo.findByAccount(staffId);
// order.setAuditOpId(staff.getOpenId());
// order.setAuditTime(LocalDateTime.now());
// order.setArtificialStatus(1);
// CsmsnOrderinfoExt ext = orderInfoExtRepo.findByOrderInfoId(order.getOrderNo());
// String auditFailureCase = hasText(ext.getAuditReason())?ext.getAuditReason():"";
// ext.setAuditFailureCase(req.getReason());
// orderInfoRepo.save(order);
// orderInfoExtRepo.save(ext);
// // 保存业务日志
// bizServiceLog(staff.getOpenId(), serviceType, order, order.getOrderNo());
// // 20250401增加保存车型公告表
// logger.info(auditFailureCase);
// if (req.getAuditStatus() && auditFailureCase.contains("申办车型未找到匹配范围")) {
// logger.info("进入保存公告表");
// executor.execute(() -> {
// try {
// VehicleBrandInfo vehicleBrandInfo = new VehicleBrandInfo();
// vehicleBrandInfo.setVehicleType(order.getVehicleType());
// String vehicleModel = issueOrderVerificationRuleManagerImpl.extractFirstEnAlphabetNumberStr(ext.getVehicleModel());
// vehicleBrandInfo.setVehicleModel(vehicleModel);
// vehicleBrandInfo.setVin(ext.getVehicleVin().substring(0,8));
// vehicleBrandInfo.setCaculateStatus(1);
// Integer vehicleClass = order.getVehicleClass();//车型
// if (order.getVanType()==1){
// vehicleBrandInfo.setPassengerChargeTypeMax(vehicleClass);
// vehicleBrandInfo.setPassengerChargeTypeMin(vehicleClass);
// }else {
// vehicleBrandInfo.setVanChargeTypeMax(vehicleClass);
// vehicleBrandInfo.setVanChargeTypeMin(vehicleClass);
// }
// vehicleBrandInfoRepo.save(vehicleBrandInfo);
// logger.info("车辆model {},车型{},vin {}",vehicleModel,vehicleClass,ext.getVehicleVin());
// } catch (Exception e){
// logger.error("审核通过,车型公告表保存失败:"+e.getMessage());
// }
// });
// }
if (request.getAuditStatus()) {
//审核通过
if (SourceType.CHANNEL.equals(order.getOrderSource())) {
//20250408修改,线上不需要支付,审核通过直接待签约
if (order.getPromotionModes().equals(1)) {// 线上
order.setOrderStep(IssueOrderStep.ORDER_PAID);//待签约
} else if (order.getPromotionModes().equals(2)) {//线下
order.setOrderStep(IssueOrderStep.VEHICLE_UPLOAD);//线下待支付
} else {//线上、线下
IssueProduct product = issueProductRepo.findByReleaseId(order.getProductId());
if (product.getNeedPay()) {
order.setOrderStep(IssueOrderStep.VEHICLE_UPLOAD);
} else {
order.setOrderStep(IssueOrderStep.ORDER_PAID);
}
}
} else {
if (!ShippingStatus.NONE.equals(order.getShippingStatus())) {//需要邮寄
order.setOrderStep(IssueOrderStep.WAITING_SEND);
order.setShippingStatus(ShippingStatus.WAIT_SHIPPING);
} else {
order.setOrderStep(IssueOrderStep.WAITING_ACTIVE);
}
}
} else {
order.setOrderStep(IssueOrderStep.AUDIT_FAIL);
}
order.setAuditOpenId(staff.getOpenId());
order.setAuditTime(LocalDateTime.now());
order.setArtificialStatus(1);
orderInfoRepo.merge(order);
IssueOrderinfoExt ext = orderInfoExtRepo.findByOrderNo(order.getOrderNo());
ext.setAuditFailureCase(request.getReason());
orderInfoExtRepo.merge(ext);
dataStream.put(ORDER_EXT, ext);
}

@Override
protected void onSuccessInternal(OrderAuditRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
IssueOrderinfoExt ext = (IssueOrderinfoExt) dataStream.get(ORDER_EXT);
IssueOrderinfo order = (IssueOrderinfo) dataStream.get(ORDER);
//不影响业务流程,全部异步执行
//新增公告表
String auditFailureCase = hasText(ext.getAuditReason()) ? ext.getAuditReason() : "";
if (req.getAuditStatus() && auditFailureCase.contains("申办车型未找到匹配范围")) {
executor.execute(() -> {
QtkBrandInfo brandinfo = new QtkBrandInfo();
brandinfo.setVehicleType(order.getVehicleType());
String vehicleModel = IssueTools.extractFirstEnAlphabetNumberStr(ext.getVehicleModel());
brandinfo.setVehicleModel(vehicleModel);
brandinfo.setVin(ext.getVehicleVin().substring(0, 8));
brandinfo.setCaculateStatus(1);
Integer vehicleClass = order.getVehicleClass();//车型
if (order.getVanType() == 1) {
brandinfo.setPassengerChargeTypeMax(vehicleClass);
brandinfo.setPassengerChargeTypeMin(vehicleClass);
} else {
brandinfo.setVanChargeTypeMax(vehicleClass);
brandinfo.setVanChargeTypeMin(vehicleClass);
}
logger.info("车辆model {},车型{},vin {}", vehicleModel, vehicleClass, ext.getVehicleVin());
qtkBrandinfoRepo.persist(brandinfo);
});
}
//通知渠道
if (SourceType.CHANNEL.equals(order.getOrderSource())) {
executor.execute(() -> {
// qdCallUtil(order, ext)
qdCallUtil.callBackQd(order, req.getReason());
});
}
}

@Override
protected AbstractSignTypeResponse getRes(OrderAuditRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
AbstractIssueResponse res = new AbstractIssueResponse();
res.setReceiveTime(getReceiveTimeStr(event));
protected OrderAuditResponse getRes(OrderAuditRequest req, ServiceLogEvent event,
Map<String, Object> dataStream) throws ServiceHandleException {
// AbstractIssueResponse res = new AbstractIssueResponse();
// res.setReceiveTime(getReceiveTimeStr(event));
IssueOrderinfo order = (IssueOrderinfo) dataStream.get(ORDER);
OrderAuditResponse res = new OrderAuditResponse();
res.setId(order.getId());
return res;
}
}

+ 69
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderReceiveManager.java 查看文件

@@ -0,0 +1,69 @@
package cn.com.taiji.ias.manager.order;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderReceiveRequest;
import cn.com.taiji.core.model.comm.protocol.ias.order.OrderReceiveResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Map;

/**
* @Author:ChenChao
* @Date:2025/8/4 14:33
* @Filename:OrderReceiveManager
* @description:
*/
@Service
public class OrderReceiveManager extends AbstractOrderManager<OrderReceiveRequest>{

public static final String STAFF = "staff";
public OrderReceiveManager() {
super(DataType.ORDER_AUDIT);
}

@Override
protected String getDataId(OrderReceiveRequest req) {
return "";
}

@Override
protected void formatValidateInternal(ErrorMsgBuilder builder, OrderReceiveRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, OrderReceiveRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
Staff staff = staffRepo.findByStaffId(req.getStaffId());
if (staff == null) {
throw newBusinessException("员工不存在");
}
IssueOrderinfo order = orderInfoRepo.findByOrderNo(req.getOrderNo());
if (order == null) throw newBusinessException("此订单不存在");
dataStream.put(ORDER, order);
dataStream.put(STAFF, staff);

}

@Override
protected void persistInternal(OrderReceiveRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
IssueOrderinfo order = (IssueOrderinfo) dataStream.get(ORDER);
order.setReceiveStatus(true);
order.setReceiveTime(LocalDateTime.now());
Staff staff = staffRepo.findByStaffId(req.getStaffId());
order.setReceiver(staff.getOpenId());
orderInfoRepo.merge(order);
}

@Override
protected OrderReceiveResponse getRes(OrderReceiveRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
IssueOrderinfo order = (IssueOrderinfo) dataStream.get(ORDER);
OrderReceiveResponse res = new OrderReceiveResponse();
res.setId(order.getId());
return res;
}
}

Loading…
取消
儲存