return ApiResponse.of(manager.view(dto)); | return ApiResponse.of(manager.view(dto)); | ||||
} | } | ||||
@ApiOperation("查看车辆设备(卡、签)") | |||||
@ApiOperation("查看车辆设备(卡、签、人信息)") | |||||
@PostMapping("/queryDevice") | @PostMapping("/queryDevice") | ||||
public ApiResponse<VehicleInfoQueryDeviceResponseDTO> queryDevice(@Valid @RequestBody VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException { | public ApiResponse<VehicleInfoQueryDeviceResponseDTO> queryDevice(@Valid @RequestBody VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException { | ||||
return ApiResponse.of(manager.queryDevice(dto)); | return ApiResponse.of(manager.queryDevice(dto)); | ||||
} | } | ||||
@ApiOperation("查看车辆(卡、人信息)") | |||||
@PostMapping("/queryCardInfoAndCustomerTel") | |||||
public ApiResponse<QueryCardInfoAndCustomerTelResponseDTO> queryCardInfoAndCustomerTel(@Valid @RequestBody QueryCardInfoAndCustomerTelRequestDTO dto) throws ManagerException { | |||||
return ApiResponse.of(manager.queryCardInfoAndCustomerTel(dto)); | |||||
} | |||||
import cn.com.taiji.common.model.BaseModel; | import cn.com.taiji.common.model.BaseModel; | ||||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.GetOriginListResModel; | import cn.com.taiji.core.model.comm.protocol.ias.province.model.GetOriginListResModel; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.Setter; | import lombok.Setter; | ||||
import java.math.BigDecimal; | |||||
import java.util.List; | import java.util.List; | ||||
@ApiModel(description = "省中心车辆通行流水查询返回") | @ApiModel(description = "省中心车辆通行流水查询返回") | ||||
public class QueryProvinceEtcTransactionFlowResponseDTO extends BaseModel { | public class QueryProvinceEtcTransactionFlowResponseDTO extends BaseModel { | ||||
@ApiModelProperty("金额合计") | |||||
private BigDecimal totalTollAmount; | |||||
@ApiModelProperty("通信次数") | |||||
private Integer transCount; | |||||
private List<GetOriginListResModel> modelList; | private List<GetOriginListResModel> modelList; | ||||
package cn.com.taiji.iaw.dto.comm; | |||||
import cn.com.taiji.core.dto.AbstractBizRequestDTO; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import lombok.experimental.Accessors; | |||||
import javax.validation.constraints.NotBlank; | |||||
@ApiModel(description = "查看车辆(卡、人信息)详情") | |||||
@Getter | |||||
@Setter | |||||
@Accessors(chain = true) | |||||
public class QueryCardInfoAndCustomerTelRequestDTO extends AbstractBizRequestDTO { | |||||
@ApiModelProperty(value = "车辆id,车牌号_车牌颜色") | |||||
@NotBlank(message = "车辆编号必传") | |||||
private String vehicleId; | |||||
} |
package cn.com.taiji.iaw.dto.comm; | |||||
import cn.com.taiji.common.model.BaseModel; | |||||
import cn.com.taiji.core.entity.dict.basic.CardStatus; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuStatus; | |||||
import cn.com.taiji.iaw.model.base.CardInfoModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
@Getter | |||||
@Setter | |||||
public class QueryCardInfoAndCustomerTelResponseDTO extends BaseModel { | |||||
@ApiModelProperty(value = "用户手机号") | |||||
private String customerTel; | |||||
List<CardInfoModel> cardInfoList; | |||||
} |
import cn.com.taiji.core.repo.request.ass.GetOriginListResPageRequest; | import cn.com.taiji.core.repo.request.ass.GetOriginListResPageRequest; | ||||
import cn.com.taiji.iaw.dto.ass.etcTransaction.*; | import cn.com.taiji.iaw.dto.ass.etcTransaction.*; | ||||
import cn.com.taiji.iaw.manager.AbstractIawManager; | import cn.com.taiji.iaw.manager.AbstractIawManager; | ||||
import cn.com.taiji.iaw.model.MyFinals; | |||||
import cn.com.taiji.iaw.model.etcTransaction.ProvinceEtcTransactionFlowExcelModel; | import cn.com.taiji.iaw.model.etcTransaction.ProvinceEtcTransactionFlowExcelModel; | ||||
import cn.com.taiji.iaw.tools.SourceTargetMapper; | import cn.com.taiji.iaw.tools.SourceTargetMapper; | ||||
import org.apache.commons.compress.utils.Lists; | import org.apache.commons.compress.utils.Lists; | ||||
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)); | .divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)); | ||||
modelList.add(model); | modelList.add(model); | ||||
} | } | ||||
BigDecimal totalTollAmount = modelList.stream() | |||||
.map(GetOriginListResModel::getTollAmount) // 假设有 getTollAmount() 方法 | |||||
.filter(amount -> amount != null) // 过滤掉 null 值 | |||||
.reduce(BigDecimal.ZERO, BigDecimal::add); | |||||
QueryProvinceEtcTransactionFlowResponseDTO responseDTO = new QueryProvinceEtcTransactionFlowResponseDTO(); | QueryProvinceEtcTransactionFlowResponseDTO responseDTO = new QueryProvinceEtcTransactionFlowResponseDTO(); | ||||
responseDTO.setTotalTollAmount(totalTollAmount); | |||||
responseDTO.setTransCount(modelList.size()); | |||||
responseDTO.setModelList(modelList); | responseDTO.setModelList(modelList); | ||||
return responseDTO; | return responseDTO; | ||||
} | } | ||||
VehicleInfoViewResponseDTO view(VehicleInfoViewRequestDTO dto) throws ManagerException; | VehicleInfoViewResponseDTO view(VehicleInfoViewRequestDTO dto) throws ManagerException; | ||||
VehicleInfoQueryDeviceResponseDTO queryDevice(VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException; | VehicleInfoQueryDeviceResponseDTO queryDevice(VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException; | ||||
QueryCardInfoAndCustomerTelResponseDTO queryCardInfoAndCustomerTel(QueryCardInfoAndCustomerTelRequestDTO dto) throws ManagerException; | |||||
} | } |
import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.common.model.dao.Pagination; | import cn.com.taiji.common.model.dao.Pagination; | ||||
import cn.com.taiji.common.pub.BeanTools; | |||||
import cn.com.taiji.common.pub.CollectionTools; | import cn.com.taiji.common.pub.CollectionTools; | ||||
import cn.com.taiji.core.entity.basic.QtkCardInfo; | import cn.com.taiji.core.entity.basic.QtkCardInfo; | ||||
import cn.com.taiji.core.entity.basic.QtkCustomerInfo; | import cn.com.taiji.core.entity.basic.QtkCustomerInfo; | ||||
import cn.com.taiji.core.entity.dict.basic.CardStatus; | import cn.com.taiji.core.entity.dict.basic.CardStatus; | ||||
import cn.com.taiji.core.entity.dict.basic.ObuStatus; | 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.basic.SourceType; | ||||
import cn.com.taiji.core.entity.user.Staff; | |||||
import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkCardInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkCustomerInfoRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkCustomerInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkObuInfoRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkObuInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; | import cn.com.taiji.core.repo.jpa.basic.QtkVehicleInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||||
import cn.com.taiji.core.repo.request.basic.QtkVehicleInfoPageRequest; | import cn.com.taiji.core.repo.request.basic.QtkVehicleInfoPageRequest; | ||||
import cn.com.taiji.iaw.dto.comm.*; | import cn.com.taiji.iaw.dto.comm.*; | ||||
import cn.com.taiji.iaw.manager.AbstractCommManager; | import cn.com.taiji.iaw.manager.AbstractCommManager; | ||||
import cn.com.taiji.iaw.manager.AbstractIawManager; | |||||
import cn.com.taiji.iaw.model.MyFinals; | import cn.com.taiji.iaw.model.MyFinals; | ||||
import cn.com.taiji.iaw.model.base.CardInfoModel; | |||||
import cn.com.taiji.iaw.tools.WxLoginUserUtil; | import cn.com.taiji.iaw.tools.WxLoginUserUtil; | ||||
import org.apache.commons.compress.utils.Lists; | import org.apache.commons.compress.utils.Lists; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.ArrayList; | |||||
import java.util.List; | import java.util.List; | ||||
* @version: 1.0 | * @version: 1.0 | ||||
*/ | */ | ||||
@Service | @Service | ||||
public class VehicleInfoManagerImpl extends AbstractCommManager implements VehicleInfoManager { | |||||
public class VehicleInfoManagerImpl extends AbstractIawManager implements VehicleInfoManager { | |||||
@Autowired | @Autowired | ||||
private QtkVehicleInfoRepo repo; | private QtkVehicleInfoRepo repo; | ||||
private QtkObuInfoRepo obuInfoRepo; | private QtkObuInfoRepo obuInfoRepo; | ||||
@Autowired | @Autowired | ||||
private QtkCustomerInfoRepo customerInfoRepo; | private QtkCustomerInfoRepo customerInfoRepo; | ||||
@Autowired | |||||
private StaffRepo staffRepo; | |||||
@Override | @Override | ||||
public Pagination page(VehicleInfoPageRequestDTO dto) throws ManagerException { | public Pagination page(VehicleInfoPageRequestDTO dto) throws ManagerException { | ||||
if (SourceType.SERVICE_HALL.equals(dto.getOrderSource())) { | if (SourceType.SERVICE_HALL.equals(dto.getOrderSource())) { | ||||
//判断是否是黔通智联 | //判断是否是黔通智联 | ||||
if (findAgencyIdByToken(dto.getAccessToken()).equals(MyFinals.QTZL_AGENCY_ID)){ | |||||
Staff staff = staffRepo.findByOpenId(findOpenIdByToken(dto.getAccessToken())); | |||||
if (staff == null){ | |||||
throw new ManagerException("为获取到当前员工账号!"); | |||||
} | |||||
if ("MANAGER".equals(staff.getIdentityType()) || MyFinals.QTZL_AGENCY_ID.equals(staff.getAgencyId())){ | |||||
cardInfos = cardInfoRepo.listByVehicleId(dto.getVehicleId()); | cardInfos = cardInfoRepo.listByVehicleId(dto.getVehicleId()); | ||||
obuInfos = obuInfoRepo.listByVehicleId(dto.getVehicleId()); | obuInfos = obuInfoRepo.listByVehicleId(dto.getVehicleId()); | ||||
}else { | }else { | ||||
else { | else { | ||||
cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | ||||
obuInfos = obuInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | obuInfos = obuInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | ||||
} | } | ||||
//处理卡签信息 | //处理卡签信息 | ||||
handleDevice(resDTO, cardInfos, obuInfos); | handleDevice(resDTO, cardInfos, obuInfos); | ||||
return resDTO; | return resDTO; | ||||
} | } | ||||
@Override | |||||
public QueryCardInfoAndCustomerTelResponseDTO queryCardInfoAndCustomerTel(QueryCardInfoAndCustomerTelRequestDTO dto) throws ManagerException { | |||||
//查询车辆信息 | |||||
QtkVehicleInfo vehicleInfo = repo.findByVehicleId(dto.getVehicleId()); | |||||
if (vehicleInfo == null) { | |||||
throw new ManagerException("未获取到车辆信息!"); | |||||
} | |||||
QueryCardInfoAndCustomerTelResponseDTO resDTO = new QueryCardInfoAndCustomerTelResponseDTO(); | |||||
//查询用户手机号 | |||||
QtkCustomerInfo customerInfo = customerInfoRepo.findByCustomerId(vehicleInfo.getCustomerId()); | |||||
resDTO.setCustomerTel(customerInfo.getCustomerTel()); | |||||
List<QtkCardInfo> cardInfos = Lists.newArrayList(); | |||||
if (SourceType.SERVICE_HALL.equals(dto.getOrderSource())) { | |||||
//判断是否是黔通智联 | |||||
Staff staff = staffRepo.findByOpenId(findOpenIdByToken(dto.getAccessToken())); | |||||
if (staff == null){ | |||||
throw new ManagerException("为获取到当前员工账号!"); | |||||
} | |||||
if ("MANAGER".equals(staff.getIdentityType()) || MyFinals.QTZL_AGENCY_ID.equals(staff.getAgencyId())){ | |||||
cardInfos = cardInfoRepo.listByVehicleId(dto.getVehicleId()); | |||||
}else { | |||||
cardInfos = cardInfoRepo.listByAgencyIdAndVehicleId(findAgencyIdByToken(dto.getAccessToken()),dto.getVehicleId()); | |||||
} | |||||
} | |||||
else { | |||||
cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | |||||
} | |||||
List<CardInfoModel> modelList = Lists.newArrayList(); | |||||
BeanTools.copyProperties(cardInfos, modelList); | |||||
resDTO.setCardInfoList(modelList); | |||||
return null; | |||||
} | |||||
private void handleDevice(VehicleInfoQueryDeviceResponseDTO resDTO,List<QtkCardInfo> cardInfos, List<QtkObuInfo> obuInfos) { | private void handleDevice(VehicleInfoQueryDeviceResponseDTO resDTO,List<QtkCardInfo> cardInfos, List<QtkObuInfo> obuInfos) { | ||||
//卡 | //卡 | ||||
if (!CollectionTools.isEmpty(cardInfos)){ | if (!CollectionTools.isEmpty(cardInfos)){ |
package cn.com.taiji.iaw.model.base; | |||||
import cn.com.taiji.common.model.BaseModel; | |||||
import cn.com.taiji.core.entity.dict.basic.CardStatus; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Getter; | |||||
import lombok.Setter; | |||||
@Getter | |||||
@Setter | |||||
@ApiModel(description = "卡信息") | |||||
public class CardInfoModel extends BaseModel { | |||||
@ApiModelProperty(value = "卡号") | |||||
private String cardId; | |||||
@ApiModelProperty(value = "卡类型") | |||||
private Integer cardType; | |||||
@ApiModelProperty(value = "卡状态") | |||||
private CardStatus cardStatus; | |||||
} |
import cn.com.taiji.core.entity.issue.IssueOrderinfo; | import cn.com.taiji.core.entity.issue.IssueOrderinfo; | ||||
import cn.com.taiji.core.entity.log.OperateLog; | import cn.com.taiji.core.entity.log.OperateLog; | ||||
import cn.com.taiji.core.entity.user.AccountInfo; | import cn.com.taiji.core.entity.user.AccountInfo; | ||||
import cn.com.taiji.core.entity.user.Staff; | |||||
import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; | import cn.com.taiji.core.repo.jpa.issue.IssueOrderinfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.log.OperateLogRepo; | import cn.com.taiji.core.repo.jpa.log.OperateLogRepo; | ||||
import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo; | import cn.com.taiji.core.repo.jpa.user.AccountInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||||
import cn.com.taiji.managew.model.MyFinals; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.web.context.request.RequestContextHolder; | import org.springframework.web.context.request.RequestContextHolder; | ||||
import org.springframework.web.context.request.ServletRequestAttributes; | import org.springframework.web.context.request.ServletRequestAttributes; | ||||
private AccountInfoRepo accountInfoRepo; | private AccountInfoRepo accountInfoRepo; | ||||
@Autowired | @Autowired | ||||
protected IssueOrderinfoRepo issueOrderinfoRepo; | protected IssueOrderinfoRepo issueOrderinfoRepo; | ||||
@Autowired | |||||
protected StaffRepo staffRepo; | |||||
protected Boolean isManager(String openId, String agencyId) throws ManagerException { | |||||
Staff staff = staffRepo.findByOpenId(openId); | |||||
if (staff == null){ | |||||
throw new ManagerException("为获取到当前员工账号!"); | |||||
} | |||||
if ("MANAGER".equals(staff.getIdentityType()) || MyFinals.QTZL_AGENCY_ID.equals(agencyId)){ | |||||
return true; | |||||
} | |||||
return false; | |||||
} | |||||
//异步记录操作日志 | //异步记录操作日志 | ||||
protected void sysPersistOperateLog(OperateType operateType, String operatorDataId, SourceType source, | protected void sysPersistOperateLog(OperateType operateType, String operatorDataId, SourceType source, |
import cn.com.taiji.managew.dto.ass.AssOrderinfoPageRequestDTO; | import cn.com.taiji.managew.dto.ass.AssOrderinfoPageRequestDTO; | ||||
import cn.com.taiji.managew.dto.ass.AssReviewRequestDTO; | import cn.com.taiji.managew.dto.ass.AssReviewRequestDTO; | ||||
import cn.com.taiji.managew.manager.AbstractManagewManager; | import cn.com.taiji.managew.manager.AbstractManagewManager; | ||||
import cn.com.taiji.managew.model.MyFinals; | |||||
import cn.com.taiji.managew.model.ass.AssOrderInfoModel; | import cn.com.taiji.managew.model.ass.AssOrderInfoModel; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
throw new ManagerException("为获取到当前员工账号!"); | throw new ManagerException("为获取到当前员工账号!"); | ||||
} | } | ||||
pageRequest.setAgencyId(staff.getAgencyId()); | pageRequest.setAgencyId(staff.getAgencyId()); | ||||
if (isManager(findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()))){ | |||||
if ("MANAGER".equals(staff.getIdentityType()) || MyFinals.QTZL_AGENCY_ID.equals(staff.getAgencyId())){ | |||||
pageRequest.setAgencyId(null); | pageRequest.setAgencyId(null); | ||||
} | } | ||||
return repo.page(pageRequest).convertResult(this::toModel); | return repo.page(pageRequest).convertResult(this::toModel); |
import cn.com.taiji.core.repo.request.ass.AssRefundApplyInfoPageRequest; | import cn.com.taiji.core.repo.request.ass.AssRefundApplyInfoPageRequest; | ||||
import cn.com.taiji.managew.dto.ass.etcTransaction.*; | import cn.com.taiji.managew.dto.ass.etcTransaction.*; | ||||
import cn.com.taiji.managew.manager.AbstractManagewManager; | import cn.com.taiji.managew.manager.AbstractManagewManager; | ||||
import cn.com.taiji.managew.model.MyFinals; | |||||
import org.apache.commons.compress.utils.Lists; | import org.apache.commons.compress.utils.Lists; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import java.time.format.DateTimeFormatter; | import java.time.format.DateTimeFormatter; | ||||
import java.util.Arrays; | import java.util.Arrays; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* @Auther: humh | * @Auther: humh | ||||
throw new ManagerException("为获取到当前员工账号!"); | throw new ManagerException("为获取到当前员工账号!"); | ||||
} | } | ||||
pageRequest.setAgencyId(staff.getAgencyId()); | pageRequest.setAgencyId(staff.getAgencyId()); | ||||
if (isManager(findOpenIdByToken(dto.getAccessToken()), findAgencyIdByToken(dto.getAccessToken()))){ | |||||
if ("MANAGER".equals(staff.getIdentityType()) || MyFinals.QTZL_AGENCY_ID.equals(staff.getAgencyId())){ | |||||
pageRequest.setAgencyId(null); | pageRequest.setAgencyId(null); | ||||
} | } | ||||
return refundApplyInfoRepo.page(pageRequest); | return refundApplyInfoRepo.page(pageRequest); |