Explorar el Código

Merge remote-tracking branch 'origin/master'

master
yangpeilai hace 1 día
padre
commit
9009d373c9
Se han modificado 21 ficheros con 442 adiciones y 5 borrados
  1. 74
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/AssReimburseOrder.java
  2. 1
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/issue/ProductAfterType.java
  3. 2
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/log/OperateType.java
  4. 2
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueProduct.java
  5. 49
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderSendRequest.java
  6. 20
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderSendResponse.java
  7. 1
    1
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssServiceCmd.java
  8. 3
    0
      gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueProductPayRepo.java
  9. 7
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/ass/VehicleChangeController.java
  10. 3
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeManger.java
  11. 37
    0
      zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeMangerImpl.java
  12. 7
    0
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/api/ass/AssOrderinfoController.java
  13. 6
    0
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/product/product/ProductAddRequestDto.java
  14. 3
    0
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/ass/AssOrderinfoManager.java
  15. 12
    4
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/ass/AssOrderinfoManagerImpl.java
  16. 11
    0
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/product/ProductManagerImpl.java
  17. 10
    0
      zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/product/PromotionManagerImpl.java
  18. 1
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java
  19. 7
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/AbstractIasManager.java
  20. 138
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AssOrderSendManager.java
  21. 48
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/vehicleChange/VehicleChangeSendManagew.java

+ 74
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/ass/AssReimburseOrder.java Ver fichero

@@ -0,0 +1,74 @@
package cn.com.taiji.core.entity.ass;

import java.time.LocalDateTime;

import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import cn.com.taiji.common.entity.StringPropertyUUIDEntity;
import cn.com.taiji.core.entity.dict.AuditStatus;
import cn.com.taiji.core.entity.dict.basic.IdType;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import lombok.Getter;
import lombok.Setter;


/**
* 补缴订单表;
*
*/
@Getter
@Setter
@Entity
@Table(name = "ASS_REIMBURSE_ORDER")
public class AssReimburseOrder extends StringPropertyUUIDEntity {

@Column(name = "INSERT_TIME")
private LocalDateTime insertTime = LocalDateTime.now();//创建时间
@Column(name = "UPDATE_TIME")
private LocalDateTime updateTime = LocalDateTime.now();//更新时间
@NotBlank
@Column(name = "ORDER_ID", length = 255)
private String orderId; // 订单id
@NotNull
@Column(name = "SOURCE_TYPE")
@Enumerated(EnumType.STRING)
private SourceType sourceType;//来源
@NotBlank
@Column(name = "OPERATE_STAFF_ID")
private String operateStaffId;// 录入员工工号
@NotBlank
@Column(name = "USER_ID")
private String userid;//用户编号
@NotBlank
@Column(name = "CARD_ID")
private String cardId;//卡号
@NotBlank
@Column(name = "VEHICLE_ID")
private String vehicleId;
@NotBlank
@Column(name = "AGENCY_ID")
private String agencyId;
@NotBlank
@Size(max = 32)
@Column(name = "PAY_ORDER_NO")
private String payOrderNo;//支付订单编号 自己规则生成 商户订单号
@Size(max = 255)
@Column(name = "REASON")
private String reason;//审核意见
@NotNull
@Column(name = "STATUS")
@Enumerated(EnumType.STRING)
private AuditStatus status;//审核状态
@Column(name ="REIMBURSE_FEE")
private String reimburseFee;
@Column(name = "CLOSED_TIME")
private LocalDateTime closedTime;//关闭时间
@Column(name = "CLOSED_STAFF_ID")
private String closedStaffId;// 关闭员工工号
@Column(name = "CLOSED_REASON")
private String closedReason;// 关闭原因

}

+ 1
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/issue/ProductAfterType.java Ver fichero

@@ -21,6 +21,7 @@ public enum ProductAfterType {
CHANGECARD("更换卡"),
CHANGEOBU("更换签"),
CHANGEALL("更换卡签"),
REPAIROBU("增补obu"),
;
private String value;


+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/log/OperateType.java Ver fichero

@@ -145,6 +145,8 @@ public enum OperateType {
//车辆信息修改
CHANGE_VEHICLE_APPLY("车辆信息修改申请"),
CHANGE_VEHICLE_AUDIT("车辆信息修改审核"),
CHANGE_VEHICLE_SEND("车辆信息修改发货"),
CHANGE_VEHICLE_RECE("车辆信息修改确认收货"),
//客户信息修改
CUSTOMER_INFO_CHANGE_APPLY_SELF("个人客户信息修改申请"),
CUSTOMER_INFO_CHANGE_APPLY_UNIT("单位客户信息修改申请"),

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/issue/IssueProduct.java Ver fichero

@@ -91,6 +91,8 @@ public class IssueProduct extends StringPropertyUUIDEntity {
private Long changeObuFee;//售后——更换签费用
@Column(name = "CHANGE_ALL_FEE")
private Long changeAllFee;//售后——更换卡签费用
@Column(name = "REPAIR_OBU_FEE")
private Long repairObuFee;//售后——增补OBU费用
@Column(name = "HANDLE_FEE")
private Long handleFee;//办理费——权益费用
@Column(name = "MARGIN_FEE")

+ 49
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderSendRequest.java Ver fichero

@@ -0,0 +1,49 @@
package cn.com.taiji.core.model.comm.protocol.ias.ass;

import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest;
import cn.com.taiji.core.model.comm.protocol.constraint.FixedLength;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;

/**
* @Author:ChenChao
* @Date:2025/9/16 10:07
* @Filename:AssOrderSendRequest
* @description: 售后发货信息
*/
@Getter
@Setter
public class AssOrderSendRequest extends AbstractSignTypeRequest<AssOrderSendResponse> {

public AssOrderSendRequest() {
super(AssServiceCmd.SENDINFO);
}

@NotBlank
private String openId;//发货人OpenId
@NotBlank
private String orderNo;//售后订单编号
@NotBlank
private String trackingNumber;//快递编号
@NotBlank
/*** 快递公司*/
private String courierCompany;//快递公司
@FixedLength(length = 20)
@NotBlank
private String cardId;//卡编号
@FixedLength(length = 16)
@NotBlank
private String obuId;//签编号
@NotBlank
private String consignee;// 收货人
@NotBlank
private String consigneeTel;// 收货人电话
@NotBlank
private String region;// 收货所在地区(省、市、区、街道)
private String address;// 收货详细地址
// @NotBlank
private String postCode;//邮政编码


}

+ 20
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssOrderSendResponse.java Ver fichero

@@ -0,0 +1,20 @@
package cn.com.taiji.core.model.comm.protocol.ias.ass;

import cn.com.taiji.core.entity.dict.log.OperateType;
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse;
import lombok.Getter;
import lombok.Setter;

/**
* @Author:ChenChao
* @Date:2025/9/16 10:12
* @Filename:AssOrderSendResponse
* @description:
*/
@Getter
@Setter
public class AssOrderSendResponse extends AbstractSignTypeResponse {
private String id;//售后表id(返给调用者记录日志)

private OperateType type;//操作类型(返给调用者记录日志)
}

+ 1
- 1
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/ass/AssServiceCmd.java Ver fichero

@@ -18,7 +18,7 @@ public enum AssServiceCmd implements SignServiceCommand {
CANCLEPAY("注销违约金支付", DeviceCancelPayRequest.class){},
CANCLEPAYQUERY("注销违约金支付查询", DeviceCancelPayQueryRequest.class){},
PAYINFO("售后支付信息接收", AssOrderPayInfoRequest.class){},
// SENDINFO("发货信息", CancelApplyRequest.class){},
SENDINFO("发货信息", AssOrderSendRequest.class){},
LOSS("挂失/解除挂失", DeviceLossRequest.class){},
VEHICLECHANGE("车辆信息更改申请", VehicleChangeApllyRequest.class),
VEHICLEINFOCHANGE("车辆信息更改", VehicleInfoChangeRequest.class),

+ 3
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueProductPayRepo.java Ver fichero

@@ -30,6 +30,9 @@ public interface IssueProductPayRepo extends AbstractJpaRepo<IssueProductPay, St
@Query("delete from IssueProductPay where proId = ?1")
int deleteByProId(String proId);

//通过费用类别,费用类型,产品ID查询
IssueProductPay findByFeeCategoryAndAndFeeTypeAndReleaseId(FeeCategory feeCategory,String feeType,String releaseId);

List<IssueProductPay> findByFeeCategoryAndReleaseId(FeeCategory feeCategory,String releaseId);

List<IssueProductPay> findByReleaseId(String releaseId);

+ 7
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/api/ass/VehicleChangeController.java Ver fichero

@@ -6,6 +6,7 @@ import cn.com.taiji.iaw.api.MyValidController;
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO;
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO;
import cn.com.taiji.iaw.dto.ass.vehicleChange.*;
import cn.com.taiji.iaw.dto.issue.order.OrderCommDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyReqDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyResDTO;
import cn.com.taiji.iaw.manager.ass.VehicleChangeManger;
@@ -79,6 +80,12 @@ public class VehicleChangeController extends MyValidController {
// todo 发货 managew写

// todo 确认收货
@ApiOperation(value = "确认收货")
@PostMapping(value = "/orderReceiveGoods")
public ApiResponse<?> processReceiveGoods(@Valid @RequestBody OrderCommDTO reqDto) throws ManagerException {
manager.orderReceiveGoods(reqDto);
return ApiResponse.success().setMessage("收货成功");
}

// @ApiOperation("设备升级")
// @PostMapping("/deviceUp")

+ 3
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeManger.java Ver fichero

@@ -4,6 +4,7 @@ import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO;
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO;
import cn.com.taiji.iaw.dto.ass.vehicleChange.*;
import cn.com.taiji.iaw.dto.issue.order.OrderCommDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyReqDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyResDTO;

@@ -27,4 +28,6 @@ public interface VehicleChangeManger {
VehicleChangePayQyResDTO payQuery(VehicleChangePayQyReqDTO reqDto) throws ManagerException;

PayApplyResDTO payApply(PayApplyReqDTO reqDto) throws ManagerException;

void orderReceiveGoods(OrderCommDTO reqDto) throws ManagerException;
}

+ 37
- 0
zhywpt-app-iaw/src/main/java/cn/com/taiji/iaw/manager/ass/VehicleChangeMangerImpl.java Ver fichero

@@ -12,11 +12,14 @@ import cn.com.taiji.core.entity.dict.ass.AssOrderStatus;
import cn.com.taiji.core.entity.dict.ass.AssOrderStep;
import cn.com.taiji.core.entity.dict.ass.AssOrderType;
import cn.com.taiji.core.entity.dict.basic.SourceType;
import cn.com.taiji.core.entity.dict.issue.IssueOrderStep;
import cn.com.taiji.core.entity.dict.issue.OrderPayStatus;
import cn.com.taiji.core.entity.dict.issue.OrderType;
import cn.com.taiji.core.entity.dict.issue.ShippingStatus;
import cn.com.taiji.core.entity.dict.log.OperateType;
import cn.com.taiji.core.entity.issue.IssueOrderPay;
import cn.com.taiji.core.entity.issue.IssueOrderPost;
import cn.com.taiji.core.entity.issue.IssueOrderinfo;
import cn.com.taiji.core.entity.user.AccountInfo;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.manager.tools.issue.QdCallUtil;
@@ -35,10 +38,12 @@ import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderPayRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoPostRepo;
import cn.com.taiji.core.repo.jpa.user.StaffRepo;
import cn.com.taiji.iaw.dto.ass.sign.ResignCheckResDTO;
import cn.com.taiji.iaw.dto.ass.sign.ResignResponseDTO;
import cn.com.taiji.iaw.dto.ass.vehicleChange.*;
import cn.com.taiji.iaw.dto.issue.order.OrderCommDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyReqDTO;
import cn.com.taiji.iaw.dto.issue.order.PayApplyResDTO;
import cn.com.taiji.iaw.manager.AbstractIawManager;
@@ -49,6 +54,7 @@ import cn.com.taiji.iaw.model.ass.releasePlate.OwnerInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;

@@ -77,6 +83,8 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic
private StaffRepo staffRepo;
@Autowired
private IssueOrderPayRepo issueOrderPayRepo;
@Autowired
private IssueOrderinfoPostRepo issueOrderinfoPostRepo;



@@ -216,6 +224,35 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic
return copyProperties(response, new PayApplyResDTO());
}

@Override
public void orderReceiveGoods(OrderCommDTO reqDto) throws ManagerException {
AssOrderinfo assOrderinfo = checkAssOrder(reqDto.getOrderNo());
if (AssOrderStep.WAITING_RECEIVE != assOrderinfo.getOrderStep()) {
throw new ManagerException("当前订单阶段{" + assOrderinfo.getOrderStep().getStep() + "}不可收货");
}
List<IssueOrderPost> postList = issueOrderinfoPostRepo.findByOrderNoList(reqDto.getOrderNo(), OrderType.ISSUE);
if (isEmpty(postList)) {
throw new ManagerException("当前订单没有发货,无法进行收货");
}
LocalDateTime now = LocalDateTime.now();
//更新申请表
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(reqDto.getOrderNo());
vehicleInfoChange.setShippingStatus(ShippingStatus.RECEIVED);
vehicleInfoChange.setUpdateTime(now);
assVehicleInfoChangeRepo.merge(vehicleInfoChange);
//更新售后表
assOrderinfo.setOrderStep(AssOrderStep.WAITING_ACTIVE);
assOrderinfo.setUpdateTime(now);
assOrderinfoRepo.merge(assOrderinfo);
//更新发货表
String openId = findOpenIdByToken(reqDto.getAccessToken());
IssueOrderPost issueOrderPost = postList.get(0);
issueOrderPost.setReceivingTime(now);
issueOrderPost.setReceiveOpId(openId);
issueOrderinfoPostRepo.merge(issueOrderPost);
sysPersistOperateLog(OperateType.CHANGE_VEHICLE_RECE,assOrderinfo.getId(),reqDto.getOrderSource(), openId,"车辆信息修改确认收货");
}

@Override
public ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException {
AssOrderinfo assOrderinfo = checkAssOrder(dto.getOrderNo());

+ 7
- 0
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/api/ass/AssOrderinfoController.java Ver fichero

@@ -7,6 +7,7 @@ import cn.com.taiji.managew.api.MyValidController;
import cn.com.taiji.managew.dto.ass.AssOrderCancelDTO;
import cn.com.taiji.managew.dto.ass.AssOrderinfoPageRequestDTO;
import cn.com.taiji.managew.dto.ass.AssReviewRequestDTO;
import cn.com.taiji.managew.dto.issueOrder.OrderDeliverGoodsReqDTO;
import cn.com.taiji.managew.manager.ass.AssOrderinfoManager;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -52,6 +53,12 @@ public class AssOrderinfoController extends MyValidController {
manager.cancel(req);
return ApiResponse.success();
}
@ApiOperation("售后订单发货")
@PostMapping("/orderSend")
public ApiResponse<?> orderSend(@Valid @RequestBody OrderDeliverGoodsReqDTO req) throws ManagerException {
manager.orderSend(req);
return ApiResponse.success();
}


}

+ 6
- 0
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/dto/product/product/ProductAddRequestDto.java Ver fichero

@@ -149,5 +149,11 @@ public class ProductAddRequestDto extends AbstractStaffBizRequestDTO {
"使用费或办理费必填,并且只能填写一种");
validator.validField("releaseId",!releaseId.matches("\\d+"),"请输入数字类型");
// validator.validField("",promotionMode==2 && !needPay,"线下推广模式需要支付");

if (needPay && ObjectUtil.isNotEmpty(processingFeeList)){
for (ProcessingFee processingFee : processingFeeList) {
validator.validField("",processingFee.getAmount()<=0,"办理费不可<=0");
}
}
}
}

+ 3
- 0
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/ass/AssOrderinfoManager.java Ver fichero

@@ -6,6 +6,7 @@ import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.managew.dto.ass.AssOrderCancelDTO;
import cn.com.taiji.managew.dto.ass.AssOrderinfoPageRequestDTO;
import cn.com.taiji.managew.dto.ass.AssReviewRequestDTO;
import cn.com.taiji.managew.dto.issueOrder.OrderDeliverGoodsReqDTO;

/**
* @Auther: humh
@@ -20,4 +21,6 @@ public interface AssOrderinfoManager {
void review(AssReviewRequestDTO req) throws ManagerException;

void cancel(AssOrderCancelDTO req) throws ManagerException;

void orderSend(OrderDeliverGoodsReqDTO req) throws ManagerException;
}

+ 12
- 4
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/ass/AssOrderinfoManagerImpl.java Ver fichero

@@ -1,20 +1,19 @@
package cn.com.taiji.managew.manager.ass;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.common.model.dao.Pagination;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.dict.log.OperateType;
import cn.com.taiji.core.entity.user.Staff;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AbstractAssResponse;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderAuditRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderAuditResponse;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderCancelRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.*;
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo;
import cn.com.taiji.core.repo.jpa.user.StaffRepo;
import cn.com.taiji.core.repo.request.ass.AssOrderinfoPageRequest;
import cn.com.taiji.managew.dto.ass.AssOrderCancelDTO;
import cn.com.taiji.managew.dto.ass.AssOrderinfoPageRequestDTO;
import cn.com.taiji.managew.dto.ass.AssReviewRequestDTO;
import cn.com.taiji.managew.dto.issueOrder.OrderDeliverGoodsReqDTO;
import cn.com.taiji.managew.manager.AbstractManagewManager;
import cn.com.taiji.managew.model.MyFinals;
import cn.com.taiji.managew.model.ass.AssOrderInfoModel;
@@ -69,6 +68,15 @@ public class AssOrderinfoManagerImpl extends AbstractManagewManager implements A
sysPersistOperateLog(OperateType.ORDER_CANCEL,req.getOrderNo(),req.getOrderSource(),findOpenIdByToken(req.getAccessToken()),"订单取消");
}

@Override
public void orderSend(OrderDeliverGoodsReqDTO req) throws ManagerException {
AssOrderSendRequest request = copyProperties(req,new AssOrderSendRequest());
String openId = findOpenIdByToken(req.getAccessToken());
request.setOpenId(openId);
AssOrderSendResponse response = jsonPostRepeat(request);
sysPersistOperateLog(response.getType(),response.getId(),req.getOrderSource(), openId,response.getType().getValue());
}

private AssOrderInfoModel toModel(AssOrderinfo orderInfo) {
AssOrderInfoModel model = new AssOrderInfoModel();
copyProperties(orderInfo, model);

+ 11
- 0
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/product/ProductManagerImpl.java Ver fichero

@@ -99,6 +99,8 @@ public class ProductManagerImpl extends AbstractManagewManager implements Produc
break;
case CHANGEALL:
issueProduct.setChangeAllFee(afterSaleFee.getAmount());
case REPAIROBU:
issueProduct.setRepairObuFee(afterSaleFee.getAmount());
}
});
}
@@ -267,6 +269,8 @@ public class ProductManagerImpl extends AbstractManagewManager implements Produc
break;
case CHANGEALL:
issueProduct.setChangeAllFee(afterSaleFee.getAmount());
case REPAIROBU:
issueProduct.setRepairObuFee(afterSaleFee.getAmount());
}
});
} else {
@@ -389,6 +393,13 @@ public class ProductManagerImpl extends AbstractManagewManager implements Produc
afterSaleFee.setAmount(issueProduct.getChangeAllFee());
afterSaleFeeList.add(afterSaleFee);
}
//增补OBU费用
if (issueProduct.getRepairObuFee() != null) {
AfterSaleFee afterSaleFee = new AfterSaleFee();
afterSaleFee.setProductAfterType(ProductAfterType.REPAIROBU);
afterSaleFee.setAmount(issueProduct.getRepairObuFee());
afterSaleFeeList.add(afterSaleFee);
}
return afterSaleFeeList;
}


+ 10
- 0
zhywpt-app-managew/src/main/java/cn/com/taiji/managew/manager/product/PromotionManagerImpl.java Ver fichero

@@ -225,6 +225,16 @@ public class PromotionManagerImpl extends AbstractManagewManager implements Prom
afterSaleFeeModel.setReleaseId(promotion.getReleaseId());
afterSaleFeeModelList.add(afterSaleFeeModel);
}
// 售后增补OBU费
Long repairObuFee = issueProduct.getRepairObuFee();
if (repairObuFee != null) {
AfterSaleFeeModel afterSaleFeeModel = new AfterSaleFeeModel();
afterSaleFeeModel.setFeeType(ProductAfterType.REPAIROBU);
afterSaleFeeModel.setFee(repairObuFee);
payAfterMap.map(m -> m.get(ProductAfterType.REPAIROBU.name())).ifPresent(m -> copyProperties(m, afterSaleFeeModel));
afterSaleFeeModel.setReleaseId(promotion.getReleaseId());
afterSaleFeeModelList.add(afterSaleFeeModel);
}
//之所以判断下,再赋值,因为如果afterSaleFeeModelList是空集合,就返给前端null,而不是空集合对象
if (CollectionUtil.isNotEmpty(afterSaleFeeModelList)) {
responseDTO.setAfterSaleFees(afterSaleFeeModelList);

+ 1
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/dict/DataType.java Ver fichero

@@ -45,6 +45,7 @@ public enum DataType {
ASSORDER_AUDIT("assOrderAudit", IasServiceType.ASS, AssServiceCmd.ORDERAUDIT),
ASSORDER_CANCEL("assOrderCancel", IasServiceType.ASS, AssServiceCmd.ORDERCANCEL),
ASSORDER_PAYINFO("assOrderPayInfo", IasServiceType.ASS, AssServiceCmd.PAYINFO),
ASSORDER_SENDINFO("assOrderSendInfo", IasServiceType.ASS, AssServiceCmd.SENDINFO),


;

+ 7
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/AbstractIasManager.java Ver fichero

@@ -25,6 +25,8 @@ import cn.com.taiji.core.repo.jpa.basic.QtkCustomerInfoRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkServicehallRepo;
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo;
import cn.com.taiji.core.repo.jpa.comm.CommonPayConfigRepo;
import cn.com.taiji.core.repo.jpa.invw.InvwCardDetailsRepo;
import cn.com.taiji.core.repo.jpa.invw.InvwObuDetailsRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderPayRepo;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderRefundRepo;
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo;
@@ -72,6 +74,11 @@ public abstract class AbstractIasManager<T extends AbstractSignTypeRequest<?>> e
@Autowired
protected AssAgencyConfigRepo assAgencyConfigRepo;

@Autowired
protected InvwCardDetailsRepo invwCardDetailsRepo;
@Autowired
protected InvwObuDetailsRepo invwObuDetailsRepo;

public AbstractIasManager(DataType dataType) {
super(dataType);
}

+ 138
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/AssOrderSendManager.java Ver fichero

@@ -0,0 +1,138 @@
package cn.com.taiji.ias.manager.ass;


import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.dict.ass.AssOrderStep;
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus;
import cn.com.taiji.core.entity.dict.issue.OrderType;
import cn.com.taiji.core.entity.dict.log.OperateType;
import cn.com.taiji.core.entity.invw.InvwCardDetails;
import cn.com.taiji.core.entity.invw.InvwObuDetails;
import cn.com.taiji.core.entity.issue.IssueOrderPost;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderSendRequest;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderSendResponse;
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder;
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoPostRepo;
import cn.com.taiji.ias.dict.DataType;
import cn.com.taiji.ias.manager.ass.vehicleChange.VehicleChangeSendManagew;
import cn.com.taiji.ias.model.ServiceLogEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.Objects;

/**
* @Author:ChenChao
* @Date:2025/9/16 9:58
* @Filename:AssOrderSendManager
* @description:
*/
@Service
public class AssOrderSendManager extends AbstractAssManager<AssOrderSendRequest>{

public AssOrderSendManager() {
super(DataType.ASSORDER_SENDINFO);
}
private static final String CARD_DETAILS = "cardDetails";
private static final String OBU_DETAILS = "obuDetails";
@Autowired
private IssueOrderinfoPostRepo issueOrderinfoPostRepo;
@Autowired
private VehicleChangeSendManagew vehicleChangeSendManagew;

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

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

}

@Override
protected void businessValidateInternal(ErrorMsgBuilder builder, AssOrderSendRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
AssOrderinfo assOrderinfo = checkOrder(req.getOrderNo());
if (AssOrderStep.WAITING_RECEIVE != assOrderinfo.getOrderStep()) {
throw newBusinessException("当前申请单处于'"+assOrderinfo.getOrderStep().getStep()+"'不是待收货状态");
}
// 查询卡 临时代码
InvwCardDetails cardDetails = invwCardDetailsRepo.findByCardIdAndStatus(req.getCardId(), InvDeviceStatus.NEW);
// InvwCardDetails cardDetails = invwCardDetailsRepo.findByCardId(card);
if (cardDetails == null) {
throw newBusinessException("当前ETC卡不在库存中");
}
// 查询签 临时
InvwObuDetails obuDetails = invwObuDetailsRepo.findByObuIdAndStatus(req.getObuId(),InvDeviceStatus.NEW);
// InvwObuDetails obuDetails = invwObuDetailsRepo.findByObuId(obuId);
if (obuDetails == null) {
throw newBusinessException("当前OBU不在库存中");
}
// 校验卡签版本号一致
if (!Objects.equals(cardDetails.getVersion(), obuDetails.getVersion())) {
throw newBusinessException("卡签版本号不一致,请核验卡签版本");
}
dataStream.put(ORDER, assOrderinfo);
dataStream.put(CARD_DETAILS, cardDetails);
dataStream.put(OBU_DETAILS, obuDetails);
}

//自己更新自己的订单和业务表
@Override
protected void persistInternal(AssOrderSendRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException {
InvwCardDetails cardDetails = (InvwCardDetails) dataStream.get(CARD_DETAILS);
InvwObuDetails obuDetails = (InvwObuDetails) dataStream.get(OBU_DETAILS);
AssOrderinfo orderinfo = (AssOrderinfo)dataStream.get(ORDER);
// 保存发货表并更新库存
savePost(req, cardDetails, obuDetails);
switch (orderinfo.getOrderType()){
case VEHICLE_UPDATE:
vehicleChangeSendManagew.send(orderinfo, req);
break;
default:
throw newBusinessException("订单类型未定义");
}
}

private void savePost(AssOrderSendRequest req, InvwCardDetails cardDetails, InvwObuDetails obuDetails) {
LocalDateTime now = LocalDateTime.now();
IssueOrderPost issueOrderPost = new IssueOrderPost();
issueOrderPost.setOrderType(OrderType.AFTERSALE);
issueOrderPost.setOrderNo(req.getOrderNo());
issueOrderPost.setDeliveryTime(now);
issueOrderPost.setConsignorId(req.getOpenId());
issueOrderPost.setConsignorTime(now);
issueOrderPost.setTrackingNumber(req.getTrackingNumber());
issueOrderPost.setCourierCompany(req.getCourierCompany());
issueOrderPost.setConsignee(req.getConsignee());
issueOrderPost.setConsigneeTel(req.getConsigneeTel());
issueOrderPost.setRegion(req.getRegion());
issueOrderPost.setAddress(req.getAddress());
issueOrderPost.setPostCode(req.getPostCode());
issueOrderPost.setCardId(req.getCardId());
issueOrderPost.setObuId(req.getObuId());
issueOrderinfoPostRepo.persist(issueOrderPost);

// 更新库存
cardDetails.setStatus(InvDeviceStatus.OUT);
obuDetails.setStatus(InvDeviceStatus.OUT);
invwCardDetailsRepo.merge(cardDetails);
invwObuDetailsRepo.merge(obuDetails);
}

@Override
protected AssOrderSendResponse getRes(AssOrderSendRequest req, ServiceLogEvent event, Map<String, Object> dataStream) throws ServiceHandleException, IOException {
AssOrderinfo order = (AssOrderinfo) dataStream.get(ORDER);
AssOrderSendResponse res = new AssOrderSendResponse();
switch (order.getOrderType()){
case VEHICLE_UPDATE:
res.setType(OperateType.CHANGE_VEHICLE_SEND);
break;
}
res.setId(order.getId());
return res;
}
}

+ 48
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/ass/vehicleChange/VehicleChangeSendManagew.java Ver fichero

@@ -0,0 +1,48 @@
package cn.com.taiji.ias.manager.ass.vehicleChange;

import cn.com.taiji.common.manager.net.http.ServiceHandleException;
import cn.com.taiji.core.entity.ass.AssOrderinfo;
import cn.com.taiji.core.entity.ass.AssVehicleInfoChange;
import cn.com.taiji.core.entity.dict.ass.AssOrderStep;
import cn.com.taiji.core.entity.dict.issue.ShippingStatus;
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssOrderSendRequest;
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError;
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo;
import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;

/**
* @Author:ChenChao
* @Date:2025/9/16 11:32
* @Filename:VehicleChangeSendManagew
* @description:
*/
@Service
public class VehicleChangeSendManagew {
@Autowired
private AssOrderinfoRepo orderinfoRepo;
@Autowired
private AssVehicleInfoChangeRepo vehicleInfoChangeRepo;
public void send(AssOrderinfo orderinfo, AssOrderSendRequest req) throws ServiceHandleException {
LocalDateTime now = LocalDateTime.now();
orderinfo.setOrderStep(AssOrderStep.WAITING_RECEIVE);
orderinfo.setUpdateTime(now);
orderinfoRepo.merge(orderinfo);
AssVehicleInfoChange vehicleInfoChange = vehicleInfoChangeRepo.findByOrderNo(req.getOrderNo());
if (vehicleInfoChange == null) throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("未查询到车辆变更信息!");
vehicleInfoChange.setCardId(req.getCardId());
vehicleInfoChange.setObuId(req.getObuId());
vehicleInfoChange.setConsignee(req.getConsignee());
vehicleInfoChange.setConsigneeTel(req.getConsigneeTel());
vehicleInfoChange.setRegion(req.getRegion());
vehicleInfoChange.setAddress(req.getAddress());
vehicleInfoChange.setPostCode(req.getPostCode());
vehicleInfoChange.setTransportIdNum(req.getTrackingNumber());
vehicleInfoChange.setCourierCompany(req.getCourierCompany());
vehicleInfoChange.setUpdateTime(now);
vehicleInfoChange.setShippingStatus(ShippingStatus.WAIT_RECEIVING);
vehicleInfoChangeRepo.merge(vehicleInfoChange);
}
}

Cargando…
Cancelar
Guardar