@@ -1,12 +1,10 @@ | |||
package cn.com.taiji.core.entity.ass; | |||
import cn.com.taiji.core.entity.AbstractStringPropertyUUIDEntity; | |||
import cn.com.taiji.core.entity.dict.ass.CancelOrderStep; | |||
import cn.com.taiji.core.entity.dict.basic.CardStatus; | |||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||
import cn.com.taiji.core.entity.dict.basic.IdType; | |||
import cn.com.taiji.core.entity.dict.basic.ObuStatus; | |||
import cn.com.taiji.core.entity.dict.issue.RefundOperateType; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
@@ -16,7 +14,7 @@ import javax.validation.constraints.NotNull; | |||
import java.time.LocalDateTime; | |||
/** | |||
* 设备更换 | |||
* 设备注销 | |||
*/ | |||
@Getter | |||
@Setter |
@@ -149,6 +149,8 @@ public enum OperateType { | |||
CHANGE_VEHICLE_RECE("车辆信息修改确认收货"), | |||
CHANGE_VEHICLE_PAYQUERY("车辆信息修改支付查询"), | |||
CHANGE_VEHICLE_PAYAPPLY("车辆信息修改支付申请"), | |||
CHANGE_VEHICLE_SIGNQUERY("车辆信息修改签约查询"), | |||
CHANGE_VEHICLE_SIGNPARAM("车辆信息修改获取签约参数"), | |||
//客户信息修改 | |||
CUSTOMER_INFO_CHANGE_APPLY_SELF("个人客户信息修改申请"), | |||
CUSTOMER_INFO_CHANGE_APPLY_UNIT("单位客户信息修改申请"), |
@@ -0,0 +1,8 @@ | |||
package cn.com.taiji.core.repo.jpa.ass; | |||
import cn.com.taiji.common.repo.jpa.AbstractJpaRepo; | |||
import cn.com.taiji.core.entity.ass.AssDeviceReplace; | |||
public interface AssDeviceReplaceRepo extends AbstractJpaRepo<AssDeviceReplace, String> { | |||
} |
@@ -16,6 +16,8 @@ public interface MsgwSendDetailsRepo extends AbstractJpaRepo<MsgwSendDetails, St | |||
@Query("from MsgwSendDetails where applyId=?1 and sendResult=?2") | |||
List<MsgwSendDetails> findByApplyIdAndSendResult(String applyId, MessageResult messageResult); | |||
@Query("from MsgwSendDetails where applyId=?1") | |||
List<MsgwSendDetails> findByApplyId(String applyId); | |||
@Query("SELECT count(*) FROM MsgwSendDetails m WHERE 1 = 1 " + | |||
"AND (:messageType IS NULL OR m.messageType = :messageType) " + |
@@ -0,0 +1,35 @@ | |||
package cn.com.taiji.iaw.api.ass; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.web.ApiResponse; | |||
import cn.com.taiji.iaw.api.MyValidController; | |||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyRequestDTO; | |||
import cn.com.taiji.iaw.dto.ass.obuSupply.AssObuSupplyApplyResponseDTO; | |||
import cn.com.taiji.iaw.manager.ass.AssObuSupplyManager; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.web.bind.annotation.PostMapping; | |||
import org.springframework.web.bind.annotation.RequestBody; | |||
import org.springframework.web.bind.annotation.RequestMapping; | |||
import org.springframework.web.bind.annotation.RestController; | |||
import javax.validation.Valid; | |||
@Api(tags = {"增补OBU"}) | |||
@RestController | |||
@RequestMapping("/api/deviceReplace") | |||
public class AssDeviceReplaceController extends MyValidController { | |||
@Autowired | |||
private AssObuSupplyManager manager; | |||
// @ApiOperation("增补OBU提交申请") | |||
// @PostMapping("/apply") | |||
// public ApiResponse<AssObuSupplyApplyResponseDTO> apply(@Valid @RequestBody AssObuSupplyApplyRequestDTO dto) throws ManagerException { | |||
// return ApiResponse.of(manager.apply(dto)); | |||
// } | |||
} |
@@ -7,8 +7,6 @@ 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; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
@@ -52,25 +50,6 @@ public class VehicleChangeController extends MyValidController { | |||
VehicleChangeViewResDTO resDTO = manager.beforeReview(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
@ApiOperation(value = "8.支付查询") | |||
@PostMapping(value = "/payQuery") | |||
public ApiResponse<VehicleChangePayQyResDTO> payQuery(@Valid @RequestBody VehicleChangePayQyReqDTO reqDto) throws ManagerException { | |||
VehicleChangePayQyResDTO res = manager.payQuery(reqDto); | |||
return ApiResponse.of(res); | |||
} | |||
@ApiOperation("签约参数获取") | |||
@PostMapping("/sign") | |||
public ApiResponse<ResignResponseDTO> sign(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException { | |||
ResignResponseDTO resDTO = manager.sign(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
@ApiOperation("签约检测") | |||
@PostMapping("/signCheck") | |||
public ApiResponse<ResignCheckResDTO> signCheck(@Valid @RequestBody VehicleChangeSignReqDTO dto) throws ManagerException { | |||
ResignCheckResDTO resDTO = manager.signCheck(dto); | |||
return ApiResponse.of(resDTO); | |||
} | |||
// todo 发货 managew写 | |||
// todo 确认收货 |
@@ -11,7 +11,9 @@ import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
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.CardStatus; | |||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||
import cn.com.taiji.core.entity.dict.basic.ObuStatus; | |||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
import cn.com.taiji.core.entity.dict.issue.FeeCategory; | |||
import cn.com.taiji.core.entity.dict.issue.OrderPayType; | |||
@@ -32,6 +34,7 @@ import cn.com.taiji.core.repo.jpa.issue.IssueProductPayRepo; | |||
import cn.com.taiji.core.repo.jpa.issue.IssueProductRepo; | |||
import cn.com.taiji.iaw.dto.ass.obuSupply.*; | |||
import cn.com.taiji.iaw.manager.AbstractIawManager; | |||
import cn.com.taiji.iaw.manager.comm.VehicleInfoManager; | |||
import cn.com.taiji.iaw.manager.comm.VehicleInfoManagerImpl; | |||
import cn.com.taiji.iaw.model.MyFinals; | |||
import cn.com.taiji.iaw.model.base.VehicleInfoQueryDeviceModel; | |||
@@ -60,7 +63,7 @@ public class AssObuSupplyManagerImpl extends AbstractIawManager implements AssOb | |||
@Autowired | |||
private QtkVehicleInfoRepo vehicleInfoRepo; | |||
@Autowired | |||
private VehicleInfoManagerImpl vehicleInfoManagerImpl; | |||
private VehicleInfoManager vehicleInfoManager; | |||
@Autowired | |||
private QtkCustomerInfoRepo customerInfoRepo; | |||
@Autowired | |||
@@ -213,11 +216,14 @@ public class AssObuSupplyManagerImpl extends AbstractIawManager implements AssOb | |||
} | |||
} | |||
VehicleInfoQueryDeviceModel model = vehicleInfoManagerImpl.getDevice(dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()), vehicleInfo); | |||
VehicleInfoQueryDeviceModel model = vehicleInfoManager.getDevice(dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()), vehicleInfo); | |||
if (model == null){ | |||
throw new ManagerException("没有获取到正常状态的卡,不能进行增补OBU"); | |||
} | |||
if (!StringUtils.isEmpty(model.getObuId())){ | |||
if (model.getCardStatus() != CardStatus.ZC){ | |||
throw new ManagerException("没有获取到正常状态的卡,不能进行增补OBU"); | |||
} | |||
if (model.getObuStatus() == ObuStatus.ZC){ | |||
throw new ManagerException("查询到该车辆有正常状态的OBU,无需增补OBU"); | |||
} | |||
@@ -17,16 +17,9 @@ import cn.com.taiji.iaw.dto.issue.order.PayApplyResDTO; | |||
public interface VehicleChangeManger { | |||
VehicleChangeViewResDTO beforeReview(VehicleChangeViewReqDTO dto) throws ManagerException; | |||
ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException; | |||
ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException; | |||
VehicleChangeApplyResDTO apply(VehicleChangeApplyReqDTO dto) throws ManagerException; | |||
VehicleChangeProResDTO proSelect(VehicleChangeProReqDTO dto) throws ManagerException; | |||
VehicleChangePayQyResDTO payQuery(VehicleChangePayQyReqDTO reqDto) throws ManagerException; | |||
void orderReceiveGoods(OrderCommDTO reqDto) throws ManagerException; | |||
} |
@@ -174,35 +174,6 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic | |||
resDTO.setTap(assOrderinfo.getAuditReason()+"请仔细核对新车和旧车区别,决定是否审核通过"); | |||
return resDTO; | |||
} | |||
@Override | |||
public VehicleChangePayQyResDTO payQuery(VehicleChangePayQyReqDTO reqDto) throws ManagerException { | |||
VehicleChangePayQyResDTO resDTO = new VehicleChangePayQyResDTO(); | |||
AssOrderinfo orderinfo = checkAssOrder(reqDto.getOrderNo()); | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(orderinfo.getOrderNo()); | |||
List<IssueOrderPay> issueOrderPays = payTools.paymentDetections(orderinfo.getOrderNo(), OrderType.AFTERSALE); | |||
//是否存在未支付的 | |||
boolean b = issueOrderPays.stream().anyMatch(pay -> !pay.getPayStatus().equals(OrderPayStatus.SUCCESS)); | |||
if (!b) { | |||
//已支付 | |||
orderinfo.setOrderStep(AssOrderStep.WAITING_SIGN); | |||
assOrderinfoRepo.merge(orderinfo); | |||
resDTO.setPaymentStatus(1); | |||
//通知渠道 | |||
asyCallBackQd(orderinfo.getOrderNo(), vehicleInfoChange.getCallAgencyId(), notifyChannel(orderinfo, vehicleInfoChange)); | |||
}else { | |||
List<OrderPayQueryModel> collect = issueOrderPays.stream().map(p -> { | |||
OrderPayQueryModel model = copyProperties(p, new OrderPayQueryModel()); | |||
model.setOrderPayId(p.getId()); | |||
return model; | |||
}).collect(Collectors.toList()); | |||
resDTO.setOrderNo(orderinfo.getOrderNo()); | |||
resDTO.setPaymentStatus(0); | |||
resDTO.setSumFee(vehicleInfoChange.getAmount()); | |||
resDTO.setDatas(collect); | |||
} | |||
issueOrderPayRepo.saveAll(issueOrderPays); | |||
return resDTO; | |||
} | |||
@Override | |||
public void orderReceiveGoods(OrderCommDTO reqDto) throws ManagerException { | |||
@@ -233,92 +204,7 @@ public class VehicleChangeMangerImpl extends AbstractIawManager implements Vehic | |||
// sysPersistOperateLog(OperateType.CHANGE_VEHICLE_RECE,assOrderinfo.getId(),reqDto.getOrderSource(), openId,"车辆信息修改确认收货"); | |||
} | |||
@Override | |||
public ResignCheckResDTO signCheck(VehicleChangeSignReqDTO dto) throws ManagerException { | |||
// AssOrderinfo assOrderinfo = checkAssOrder(dto.getOrderNo()); | |||
// AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); | |||
// String productId = vehicleInfoChange.getProductId(); | |||
// if (!hasText(productId)) { | |||
// QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); | |||
// //业务进行到这里,一定有正常的卡信息,这里抛异常提示 | |||
// if (cardInfo == null) throw new ManagerException("车辆信息变更无法进行签约"); | |||
// productId = cardInfo.getPackageId(); | |||
// } | |||
// AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); | |||
// ResignRequest request = new ResignRequest(); | |||
// request.setWxOpenId(dto.getSubOpenId()); | |||
// request.setProductId(productId); | |||
// //校验新车牌 | |||
// request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); | |||
// request.setName(accountInfo.getUserName()); | |||
// request.setIdNum(accountInfo.getIdNum()); | |||
// request.setFlag(1); | |||
// SignQueryResponse response = jsonPostRepeat(request); | |||
// ResignCheckResDTO resignCheckResDTO = copyProperties(response, new ResignCheckResDTO()); | |||
// //签约成功,检测是否需要升级设备,是订单改带升级,否结束订单 | |||
// if (!resignCheckResDTO.getUserState().equals("UNAUTHORIZED")) { | |||
// //需要升级的,肯定没有选择产品(更换渠道) | |||
// //不需要升级的分两种情况: | |||
// //1、有产品,代表其更换渠道了,需要判断需不需要发货,不需要发货,签约完侯就是待激活 | |||
// //2、没有产品,就结束了 | |||
// AssDeviceUpgrade orderType = assDeviceUpgradeRepo.findByOrderNoAndOrderType(dto.getOrderNo(), AssOrderType.VEHICLE_UPDATE); | |||
// if (orderType != null) { | |||
// assOrderinfo.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
// }else { | |||
// if (hasText(vehicleInfoChange.getProductId())) { | |||
// if (ShippingStatus.WAIT_SHIPPING == vehicleInfoChange.getShippingStatus()) { | |||
// assOrderinfo.setOrderStep(AssOrderStep.WAITING_SEND); | |||
// }else { | |||
// assOrderinfo.setOrderStep(AssOrderStep.WAITING_ACTIVE); | |||
// } | |||
// }else { | |||
// assOrderinfo.setOrderStep(AssOrderStep.COMPLETED); | |||
// assOrderinfo.setOrderStatus(AssOrderStatus.FINISHED); | |||
// } | |||
// } | |||
// assOrderinfoRepo.merge(assOrderinfo); | |||
// //通知渠道 | |||
// asyCallBackQd(assOrderinfo.getOrderNo(), vehicleInfoChange.getCallAgencyId(), notifyChannel(assOrderinfo, vehicleInfoChange)); | |||
// | |||
// } | |||
// return resignCheckResDTO; | |||
return null; | |||
} | |||
@Override | |||
public ResignResponseDTO sign(VehicleChangeSignReqDTO dto) throws ManagerException { | |||
AssOrderinfo assOrderinfo = checkAssOrder(dto.getOrderNo()); | |||
if (AssOrderStep.WAITING_SIGN != assOrderinfo.getOrderStep()) { | |||
throw new ManagerException("当前阶段'"+assOrderinfo.getOrderStep().getStep()+"'不可签约"); | |||
} | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(dto.getOrderNo()); | |||
String productId = vehicleInfoChange.getProductId(); | |||
String agencyId = vehicleInfoChange.getAccountId(); | |||
if (!hasText(productId)) { | |||
QtkCardInfo cardInfo = qtkCardInfoRepo.findByVehicleIdAndCardStatus(assOrderinfo.getCardId()); | |||
if (cardInfo == null) throw new ManagerException("未找到卡信息,车辆信息变更无法进行签约"); | |||
productId = cardInfo.getPackageId(); | |||
agencyId = cardInfo.getAgencyId(); | |||
} | |||
ResignResponseDTO responseDTO = new ResignResponseDTO(); | |||
//渠道订单没有渠道配置或签约地址默认和黔通签约 | |||
AssAgencyConfig agencyConfig = assAgencyConfigRepo.findByAgencyId(agencyId); | |||
if (agencyConfig != null && !agencyConfig.getQtSign()){ | |||
responseDTO.setChannelSignAppId(agencyConfig.getChannelSignAppId()); | |||
responseDTO.setChannelSignUrl(agencyConfig.getChannelSignUrl()); | |||
} | |||
AccountInfo accountInfo = findAccountInfoByToken(dto.getAccessToken()); | |||
ResignRequest request = new ResignRequest(); | |||
request.setWxOpenId(dto.getSubOpenId()); | |||
request.setProductId(productId); | |||
//新车牌签约 | |||
request.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); | |||
request.setName(accountInfo.getUserName()); | |||
request.setIdNum(accountInfo.getIdNum()); | |||
request.setFlag(2); | |||
SignQueryResponse response = jsonPostRepeat(request); | |||
return copyProperties(response, responseDTO); | |||
} | |||
private AssOrderinfo checkAssOrder(String orderNo) throws ManagerException { | |||
AssOrderinfo assOrderinfo = assOrderinfoRepo.findByOrderNo(orderNo); |
@@ -2,7 +2,10 @@ package cn.com.taiji.iaw.manager.comm; | |||
import cn.com.taiji.common.manager.ManagerException; | |||
import cn.com.taiji.common.model.dao.Pagination; | |||
import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
import cn.com.taiji.core.entity.dict.basic.SourceType; | |||
import cn.com.taiji.iaw.dto.comm.*; | |||
import cn.com.taiji.iaw.model.base.VehicleInfoQueryDeviceModel; | |||
/** | |||
@@ -20,4 +23,6 @@ public interface VehicleInfoManager { | |||
VehicleInfoQueryDeviceResponseDTO queryDevice(VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException; | |||
QueryCardInfoAndCustomerTelResponseDTO queryCardInfoAndCustomerTel(QueryCardInfoAndCustomerTelRequestDTO dto) throws ManagerException; | |||
VehicleInfoQueryDeviceModel getDevice(SourceType sourceType, String openId, String agencyId, QtkVehicleInfo vehicleInfo) throws ManagerException; | |||
} |
@@ -172,7 +172,10 @@ public class VehicleInfoManagerImpl extends AbstractIawManager implements Vehicl | |||
QtkCardInfo qtkCardInfo = cardInfos.stream() | |||
.filter(cardInfo -> cardInfo.getCardStatus() == CardStatus.ZC) | |||
.findFirst() | |||
.orElse(cardInfos.isEmpty() ? null : cardInfos.get(0)); | |||
.orElseGet(() -> cardInfos.stream() | |||
.filter(cardInfo -> cardInfo.getCardStatus() == CardStatus.KGS) | |||
.findFirst() | |||
.orElse(cardInfos.isEmpty() ? null : cardInfos.get(0))); | |||
copyProperties(qtkCardInfo , model); | |||
} | |||
@@ -181,7 +184,10 @@ public class VehicleInfoManagerImpl extends AbstractIawManager implements Vehicl | |||
QtkObuInfo qtkObuInfo = obuInfos.stream() | |||
.filter(obuInfo -> obuInfo.getObuStatus() == ObuStatus.ZC) | |||
.findFirst() | |||
.orElse(obuInfos.isEmpty() ? null : obuInfos.get(0)); | |||
.orElseGet(() -> obuInfos.stream() | |||
.filter(obuInfo -> obuInfo.getObuStatus() == ObuStatus.BQGS) | |||
.findFirst() | |||
.orElse(obuInfos.isEmpty() ? null : obuInfos.get(0))); | |||
copyProperties(qtkObuInfo , model,"cardId"); | |||
} | |||
return model; |
@@ -21,7 +21,7 @@ import java.util.Map; | |||
@Setter | |||
@Getter | |||
@ApiModel(description = "卡设备导出") | |||
public class InvwCardDetailsExportRequestDTO extends AbstractStaffBizPageRequestDTO { | |||
public class InvwCardDetailsExportRequestDTO extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "起始卡号") | |||
private String startId; |
@@ -1,6 +1,7 @@ | |||
package cn.com.taiji.invw.dto.obu; | |||
import cn.com.taiji.core.dto.AbstractStaffBizPageRequestDTO; | |||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | |||
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
@@ -17,7 +18,7 @@ import lombok.Setter; | |||
@Setter | |||
@Getter | |||
@ApiModel(description = "签设备导出") | |||
public class InvwObuDetailsExportRequestDTO extends AbstractStaffBizPageRequestDTO { | |||
public class InvwObuDetailsExportRequestDTO extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "起始签号") | |||
private String startId; |
@@ -1,6 +1,5 @@ | |||
package cn.com.taiji.invw.model.obu; | |||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||
import cn.com.taiji.core.entity.dict.basic.DeviceVersion; | |||
import cn.com.taiji.core.entity.dict.basic.ObuType; | |||
import cn.com.taiji.core.entity.dict.invw.InvDeviceStatus; | |||
@@ -45,23 +44,23 @@ public class InvwObuDetailsExcelModel { | |||
@ExcelProperty(value = "签型号", index = 3, converter = EasyExcelEnumConverter.class) | |||
private DeviceVersion version; | |||
@ColumnWidth(10) | |||
@ExcelProperty(value = "卡号", index = 4) | |||
private String cardId; | |||
@ColumnWidth(10) | |||
@ExcelProperty(value = "卡类型", index = 5) | |||
private CardType cardType; | |||
// @ColumnWidth(10) | |||
// @ExcelProperty(value = "卡号", index = 4) | |||
// private String cardId; | |||
// | |||
// @ColumnWidth(10) | |||
// @ExcelProperty(value = "卡类型", index = 5, converter = EasyExcelEnumConverter.class) | |||
// private CardType cardType; | |||
@ColumnWidth(10) | |||
@ExcelProperty(value = "仓库编号", index = 6) | |||
@ExcelProperty(value = "仓库编号", index = 4) | |||
private String storeCode; | |||
@ColumnWidth(10) | |||
@ExcelProperty(value = "仓库名称", index = 7) | |||
@ExcelProperty(value = "仓库名称", index = 5) | |||
private String storeName; | |||
@ColumnWidth(10) | |||
@ExcelProperty(value = "设备状态", index = 8, converter = EasyExcelEnumConverter.class) | |||
@ExcelProperty(value = "设备状态", index = 6, converter = EasyExcelEnumConverter.class) | |||
private InvDeviceStatus status; | |||
} |
@@ -50,4 +50,4 @@ app: | |||
# 自定义服务地址map,key为服务名、value为服务地址。如果配置了服务地址,接口调用时请求到该地址,如果没配置,默认请求到gateway | |||
serviceAddr: | |||
sample: http://127.0.0.1:8086 | |||
issues: http://127.0.0.1:9071 | |||
# issues: http://127.0.0.1:9071 |
@@ -0,0 +1,17 @@ | |||
package cn.com.taiji.msgw.dto; | |||
import javax.validation.constraints.NotBlank; | |||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
@Getter | |||
@Setter | |||
public class MessageSendApplyViewAllRequestDto extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "applyId",required = true) | |||
@NotBlank(message = "applyId不能为空") | |||
private String applyId; | |||
} |
@@ -0,0 +1,17 @@ | |||
package cn.com.taiji.msgw.dto; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import cn.com.taiji.core.entity.msgw.MsgwSendApply; | |||
import cn.com.taiji.core.entity.msgw.MsgwSendDetails; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
@Getter | |||
@Setter | |||
public class MessageSendApplyViewAllResponseDto extends BaseEntity { | |||
private MsgwSendApply sendApply; | |||
private List<MsgwSendDetails> sendDetails; | |||
} |
@@ -11,7 +11,8 @@ import lombok.Setter; | |||
@Setter | |||
public class MessageSendDetailsRequestDto extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "子表id",required = true) | |||
@NotBlank(message = "id不能为空") | |||
private String id; | |||
@ApiModelProperty(value = "detailsId") | |||
private String detailsId; | |||
@ApiModelProperty(value = "applyId") | |||
private String applyId; | |||
} |
@@ -1,13 +1,17 @@ | |||
package cn.com.taiji.msgw.dto; | |||
import cn.com.taiji.common.entity.BaseEntity; | |||
import cn.com.taiji.core.entity.msgw.MsgwSendApply; | |||
import cn.com.taiji.core.entity.msgw.MsgwSendDetails; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.util.List; | |||
@Getter | |||
@Setter | |||
public class MessageSendDetailsResponseDto extends BaseEntity { | |||
private MsgwSendDetails sendDetails; | |||
private MsgwSendApply sendApply; | |||
private List<MsgwSendDetails> sendDetails; | |||
} |
@@ -6,6 +6,7 @@ import java.util.List; | |||
import java.util.Map; | |||
import cn.com.taiji.common.pub.BeanTools; | |||
import cn.com.taiji.core.entity.msgw.MsgwSendApply; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WxMiniSendMessageResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.WxMpSendMessageResponse; | |||
import cn.com.taiji.core.model.comm.protocol.ias.message.HltSendShortResponse; | |||
@@ -211,9 +212,18 @@ public class MessageWaitSendManagerImpl extends AbstractCommManager implements M | |||
@Override | |||
public MessageSendDetailsResponseDto view(MessageSendDetailsRequestDto request) { | |||
MsgwSendDetails sendDetails = sendDetailsRepo.findById(request.getId()).orElse(null); | |||
MessageSendDetailsResponseDto response = new MessageSendDetailsResponseDto(); | |||
response.setSendDetails(sendDetails); | |||
List<MsgwSendDetails> list = new ArrayList<>(); | |||
if (request.getApplyId() != null){ | |||
MsgwSendApply apply = sendApplyRepo.findById(request.getApplyId()).orElse(null); | |||
response.setSendApply(apply); | |||
list = sendDetailsRepo.findByApplyId(request.getApplyId()); | |||
response.setSendDetails(list); | |||
}else { | |||
MsgwSendDetails sendDetails = sendDetailsRepo.findById(request.getDetailsId()).orElse(null); | |||
list.add(sendDetails); | |||
response.setSendDetails(list); | |||
} | |||
return response; | |||
} | |||
@@ -10,6 +10,7 @@ import cn.com.taiji.core.model.comm.protocol.ias.ass.AssSignParamResponse; | |||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.manager.ass.assSign.AssSignChangeManager; | |||
import cn.com.taiji.ias.manager.ass.assSign.AssVehicleChangeManager; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
@@ -30,6 +31,8 @@ public class AssOrderSignParamManager extends AbstractAssManager<AssSignParamReq | |||
@Autowired | |||
private AssSignChangeManager assSignChangeManager; | |||
@Autowired | |||
private AssVehicleChangeManager assVehicleChangeManager; | |||
@Override | |||
protected String getDataId(AssSignParamRequest req) { | |||
return ""; | |||
@@ -60,6 +63,10 @@ public class AssOrderSignParamManager extends AbstractAssManager<AssSignParamReq | |||
response = assSignChangeManager.getParam(accountInfo, assOrderinfo); | |||
response.setOperateType(OperateType.SIGN_CHANGE_SIGNPARAM); | |||
break; | |||
case VEHICLE_UPDATE: | |||
response = assVehicleChangeManager.getParam(accountInfo, assOrderinfo); | |||
response.setOperateType(OperateType.CHANGE_VEHICLE_SIGNPARAM); | |||
break; | |||
} | |||
return response; | |||
} |
@@ -9,6 +9,7 @@ import cn.com.taiji.core.model.comm.protocol.ias.ass.AssSignQueryResponse; | |||
import cn.com.taiji.core.model.comm.protocol.valid.ErrorMsgBuilder; | |||
import cn.com.taiji.ias.dict.DataType; | |||
import cn.com.taiji.ias.manager.ass.assSign.AssSignChangeManager; | |||
import cn.com.taiji.ias.manager.ass.assSign.AssVehicleChangeManager; | |||
import cn.com.taiji.ias.model.ServiceLogEvent; | |||
import org.apache.kafka.common.protocol.types.Field; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
@@ -31,6 +32,8 @@ public class AssOrderSignQueryManager extends AbstractAssManager<AssSignQueryReq | |||
@Autowired | |||
private AssSignChangeManager assSignChangeManager; | |||
@Autowired | |||
private AssVehicleChangeManager assVehicleChangeManager; | |||
@Override | |||
protected String getDataId(AssSignQueryRequest req) { | |||
@@ -62,6 +65,9 @@ public class AssOrderSignQueryManager extends AbstractAssManager<AssSignQueryReq | |||
case PLATE_INFO_CHANGE://签约信息变更 | |||
userState = assSignChangeManager.check(accountInfo,orderinfo,req); | |||
break; | |||
case VEHICLE_UPDATE://车辆信息变更 | |||
userState = assVehicleChangeManager.check(accountInfo,orderinfo,req); | |||
break; | |||
// case todo | |||
} | |||
dataStream.put(SIGN,userState); | |||
@@ -79,6 +85,9 @@ public class AssOrderSignQueryManager extends AbstractAssManager<AssSignQueryReq | |||
case PLATE_INFO_CHANGE://签约信息变更 | |||
response.setOperateType(OperateType.SING_CHANGE_SIGNQUERY); | |||
break; | |||
case VEHICLE_UPDATE://车辆信息变更 | |||
response.setOperateType(OperateType.CHANGE_VEHICLE_SIGNQUERY); | |||
break; | |||
} | |||
return response; | |||
} |
@@ -120,7 +120,7 @@ public abstract class AbsAssSignManager { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("产品编号不存在"); | |||
} | |||
String vehicleId = getVehicleId(orderinfo,dataStream); | |||
if (StringUtils.hasText(vehicleId)) { | |||
if (!StringUtils.hasText(vehicleId)) { | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("车辆编号不存在"); | |||
} | |||
return getRequest(accountInfo, productId, vehicleId,flag); |
@@ -0,0 +1,84 @@ | |||
package cn.com.taiji.ias.manager.ass.assSign; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.common.pub.TimeTools; | |||
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.model.comm.protocol.ats.model.AssOrderChannelNoticeModel; | |||
import cn.com.taiji.core.model.comm.protocol.ats.model.VehicleChangeModel; | |||
import cn.com.taiji.core.model.comm.protocol.ias.ass.AssSignQueryRequest; | |||
import cn.com.taiji.core.repo.jpa.ass.AssOrderinfoRepo; | |||
import cn.com.taiji.core.repo.jpa.ass.AssVehicleInfoChangeRepo; | |||
import cn.com.taiji.ias.manager.ass.AssCommonUtil; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.util.Map; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/9/24 22:16 | |||
* @Filename:AssVehicleChangeManager | |||
* @description: | |||
*/ | |||
@Service | |||
public class AssVehicleChangeManager extends AbsAssSignManager{ | |||
private static final String CARCHANGE = "carChange"; | |||
@Autowired | |||
private AssVehicleInfoChangeRepo assVehicleInfoChangeRepo; | |||
@Autowired | |||
private AssOrderinfoRepo orderInfoRepo; | |||
@Autowired | |||
private AssCommonUtil assCommonUtil; | |||
@Override | |||
public String getAgencyId(AssOrderinfo orderinfo, Map<String, Object> dataStream) throws ServiceHandleException { | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(orderinfo.getOrderNo()); | |||
dataStream.put(CARCHANGE,vehicleInfoChange); | |||
return vehicleInfoChange.getAccountId(); | |||
} | |||
@Override | |||
public String getProductId(AssOrderinfo orderinfo, Map<String, Object> dataStream) throws ServiceHandleException { | |||
AssVehicleInfoChange infoChange = (AssVehicleInfoChange) dataStream.get(CARCHANGE); | |||
return infoChange.getProductId(); | |||
} | |||
@Override | |||
public String getVehicleId(AssOrderinfo orderinfo, Map<String, Object> dataStream) { | |||
AssVehicleInfoChange infoChange = (AssVehicleInfoChange) dataStream.get(CARCHANGE); | |||
return infoChange.getVehiclePlate() + "_" + infoChange.getVehiclePlateColor(); | |||
} | |||
@Override | |||
public void persistHandle(AssOrderinfo orderinfo, AssSignQueryRequest req, Map<String, Object> dataStream) { | |||
AssVehicleInfoChange infoChange = (AssVehicleInfoChange) dataStream.get(CARCHANGE); | |||
orderinfo.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
orderInfoRepo.merge(orderinfo); | |||
//通知渠道 | |||
assCommonUtil.asyCallBackQd(orderinfo.getOrderNo(), infoChange.getCallAgencyId(), notifyChannel(orderinfo, infoChange)); | |||
} | |||
//车辆信息变更渠道通知内容 | |||
public AssOrderChannelNoticeModel notifyChannel(AssOrderinfo assOrderinfo, AssVehicleInfoChange vehicleInfoChange) { | |||
//通知渠道 | |||
AssOrderChannelNoticeModel callModel = new AssOrderChannelNoticeModel(); | |||
callModel.setOrderNo(assOrderinfo.getOrderNo()); | |||
callModel.setOrderType(assOrderinfo.getOrderType().getCode()); | |||
callModel.setOrderStatus(assOrderinfo.getOrderStatus().getCode()); | |||
callModel.setReason(assOrderinfo.getCancelReason()); | |||
if (assOrderinfo.getCancelTime() != null) { | |||
callModel.setCancelTime(assOrderinfo.getCancelTime().format(TimeTools.ISO_LOCAL_DATE_TIME)); | |||
} | |||
callModel.setApplyTime(assOrderinfo.getApplyTime().format(TimeTools.ISO_LOCAL_DATE_TIME)); | |||
VehicleChangeModel vehicleChangeModel = new VehicleChangeModel(); | |||
vehicleChangeModel.setOrderStep(assOrderinfo.getOrderStep().getCode()); | |||
vehicleChangeModel.setVehicleId(vehicleInfoChange.getVehiclePlate()+"_"+vehicleInfoChange.getVehiclePlateColor()); | |||
vehicleChangeModel.setOldVehicleId(assOrderinfo.getVehicleId()); | |||
vehicleChangeModel.setFeeVehicleType(vehicleInfoChange.getType()); | |||
vehicleChangeModel.setOldFeeVehicleType(vehicleInfoChange.getOldType()); | |||
callModel.setVehicleChangeInfo(vehicleChangeModel); | |||
return callModel; | |||
} | |||
} |
@@ -36,7 +36,7 @@ import java.util.Map; | |||
@Service | |||
public class VehicleChangeReviewManagew extends AbstractCommManager { | |||
public static final String CAR_CHANGE = "carChange"; | |||
public static final String CAR_CHANGE = "carChange";//主体审核用到 | |||
@Autowired | |||
private AssVehicleInfoChangeRepo assVehicleInfoChangeRepo; | |||
@@ -85,27 +85,31 @@ public class VehicleChangeReviewManagew extends AbstractCommManager { | |||
//通过处理 | |||
private void tg(AssOrderAuditRequest request, AssOrderinfo order, Staff staff, Map<String, Object> dataStream) throws ServiceHandleException { | |||
AssVehicleInfoChange vehicleInfoChange = assVehicleInfoChangeRepo.findByOrderNo(request.getOrderNo()); | |||
QtkVehicleInfo oldVehicle = qtkVehicleInfoRepo.findByVehicleId(order.getVehicleId()); | |||
Boolean flag = false;//是否需要升级设备 | |||
//车牌变更(只有记账卡,才有支付签约问题) | |||
if (order.getCardType() == CardType.CHARGE_CARD && vehicleInfoChange.getChangeType()) { | |||
//有产品说明渠道不支持更换车牌,选择产品进行支付签约 | |||
if (hasText(vehicleInfoChange.getProductId())) { | |||
order.setOrderStep(AssOrderStep.WAITING_PAY); | |||
//车牌变更 | |||
if (vehicleInfoChange.getChangeType()) { | |||
flag = true; | |||
//(只有记账卡,才有支付签约问题) | |||
if (order.getCardType() == CardType.CHARGE_CARD) { | |||
//有产品说明渠道不支持更换车牌,选择产品进行支付签约 | |||
if (hasText(vehicleInfoChange.getProductId())) { | |||
order.setOrderStep(AssOrderStep.WAITING_PAY); | |||
}else { | |||
order.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
} | |||
}else { | |||
//渠道支持(包括必须支持,如:储值卡的直接变更)车牌发生变化需要重新签约 | |||
order.setOrderStep(AssOrderStep.WAITING_SIGN); | |||
flag = true; | |||
order.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
} | |||
} | |||
//车辆信息变更(车型发生变化,需要设备升级,如果需要选择产品重新发行,就没有升级的步骤) | |||
QtkVehicleInfo oldVehicle = qtkVehicleInfoRepo.findByVehicleId(order.getVehicleId()); | |||
if (!hasText(vehicleInfoChange.getProductId()) && !vehicleInfoChange.getType().equals(oldVehicle.getType())) { | |||
//收费车型发生改变,升级设备 | |||
if (!flag) {//如果flag 为true 说明前面需要签约,不可再改变订单阶段(升级设备的是交给签约判断),为false则阶段是升级设备 | |||
if (!flag){ | |||
//车牌没有发生变更,才需要走此逻辑(看车型变化是否需要设备升级) | |||
if (!vehicleInfoChange.getType().equals(oldVehicle.getType())) { | |||
order.setOrderStep(AssOrderStep.WAITING_UPGRADE); | |||
flag = true; | |||
} | |||
flag = true; | |||
} | |||
if (flag){ | |||
//下黑6 | |||
CardInRequest cardInRequest = new CardInRequest(); | |||
@@ -121,6 +125,9 @@ public class VehicleChangeReviewManagew extends AbstractCommManager { | |||
//设备需升级写入表 | |||
inDeviceUpTable(order,vehicleInfoChange); | |||
}else { | |||
order.setOrderStep(AssOrderStep.COMPLETED); | |||
order.setOrderStatus(AssOrderStatus.FINISHED); | |||
} | |||
//变更车辆信息 | |||
changeVehicle(oldVehicle,vehicleInfoChange); |