@@ -44,12 +44,18 @@ public class VehicleInfoController extends MyValidController { | |||
return ApiResponse.of(manager.view(dto)); | |||
} | |||
@ApiOperation("查看车辆设备(卡、签)") | |||
@ApiOperation("查看车辆设备(卡、签、人信息)") | |||
@PostMapping("/queryDevice") | |||
public ApiResponse<VehicleInfoQueryDeviceResponseDTO> queryDevice(@Valid @RequestBody VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException { | |||
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)); | |||
} | |||
@@ -3,9 +3,11 @@ package cn.com.taiji.iaw.dto.ass.etcTransaction; | |||
import cn.com.taiji.common.model.BaseModel; | |||
import cn.com.taiji.core.model.comm.protocol.ias.province.model.GetOriginListResModel; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Getter; | |||
import lombok.Setter; | |||
import java.math.BigDecimal; | |||
import java.util.List; | |||
@@ -21,6 +23,11 @@ import java.util.List; | |||
@ApiModel(description = "省中心车辆通行流水查询返回") | |||
public class QueryProvinceEtcTransactionFlowResponseDTO extends BaseModel { | |||
@ApiModelProperty("金额合计") | |||
private BigDecimal totalTollAmount; | |||
@ApiModelProperty("通信次数") | |||
private Integer transCount; | |||
private List<GetOriginListResModel> modelList; | |||
@@ -0,0 +1,22 @@ | |||
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; | |||
} |
@@ -0,0 +1,23 @@ | |||
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; | |||
} |
@@ -28,7 +28,6 @@ import cn.com.taiji.core.repo.request.ass.AssRefundApplyInfoPageRequest; | |||
import cn.com.taiji.core.repo.request.ass.GetOriginListResPageRequest; | |||
import cn.com.taiji.iaw.dto.ass.etcTransaction.*; | |||
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.tools.SourceTargetMapper; | |||
import org.apache.commons.compress.utils.Lists; | |||
@@ -95,9 +94,14 @@ public class AssRefundApplyInfoManagerImpl extends AbstractIawManager implements | |||
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)); | |||
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(); | |||
responseDTO.setTotalTollAmount(totalTollAmount); | |||
responseDTO.setTransCount(modelList.size()); | |||
responseDTO.setModelList(modelList); | |||
return responseDTO; | |||
} | |||
@@ -18,4 +18,6 @@ public interface VehicleInfoManager { | |||
VehicleInfoViewResponseDTO view(VehicleInfoViewRequestDTO dto) throws ManagerException; | |||
VehicleInfoQueryDeviceResponseDTO queryDevice(VehicleInfoQueryDeviceRequestDTO dto) throws ManagerException; | |||
QueryCardInfoAndCustomerTelResponseDTO queryCardInfoAndCustomerTel(QueryCardInfoAndCustomerTelRequestDTO dto) throws ManagerException; | |||
} |
@@ -2,6 +2,7 @@ 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.common.pub.BeanTools; | |||
import cn.com.taiji.common.pub.CollectionTools; | |||
import cn.com.taiji.core.entity.basic.QtkCardInfo; | |||
import cn.com.taiji.core.entity.basic.QtkCustomerInfo; | |||
@@ -10,19 +11,24 @@ import cn.com.taiji.core.entity.basic.QtkVehicleInfo; | |||
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.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.QtkCustomerInfoRepo; | |||
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.user.StaffRepo; | |||
import cn.com.taiji.core.repo.request.basic.QtkVehicleInfoPageRequest; | |||
import cn.com.taiji.iaw.dto.comm.*; | |||
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.base.CardInfoModel; | |||
import cn.com.taiji.iaw.tools.WxLoginUserUtil; | |||
import org.apache.commons.compress.utils.Lists; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.util.ArrayList; | |||
import java.util.List; | |||
@@ -34,7 +40,7 @@ import java.util.List; | |||
* @version: 1.0 | |||
*/ | |||
@Service | |||
public class VehicleInfoManagerImpl extends AbstractCommManager implements VehicleInfoManager { | |||
public class VehicleInfoManagerImpl extends AbstractIawManager implements VehicleInfoManager { | |||
@Autowired | |||
private QtkVehicleInfoRepo repo; | |||
@@ -46,6 +52,8 @@ public class VehicleInfoManagerImpl extends AbstractCommManager implements Vehic | |||
private QtkObuInfoRepo obuInfoRepo; | |||
@Autowired | |||
private QtkCustomerInfoRepo customerInfoRepo; | |||
@Autowired | |||
private StaffRepo staffRepo; | |||
@Override | |||
public Pagination page(VehicleInfoPageRequestDTO dto) throws ManagerException { | |||
@@ -94,7 +102,11 @@ public class VehicleInfoManagerImpl extends AbstractCommManager implements Vehic | |||
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()); | |||
obuInfos = obuInfoRepo.listByVehicleId(dto.getVehicleId()); | |||
}else { | |||
@@ -105,7 +117,6 @@ public class VehicleInfoManagerImpl extends AbstractCommManager implements Vehic | |||
else { | |||
cardInfos = cardInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | |||
obuInfos = obuInfoRepo.listByCustomerIdAndVehicleId(vehicleInfo.getCustomerId(), dto.getVehicleId()); | |||
} | |||
//处理卡签信息 | |||
handleDevice(resDTO, cardInfos, obuInfos); | |||
@@ -113,6 +124,40 @@ public class VehicleInfoManagerImpl extends AbstractCommManager implements Vehic | |||
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) { | |||
//卡 | |||
if (!CollectionTools.isEmpty(cardInfos)){ |
@@ -0,0 +1,23 @@ | |||
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; | |||
} |
@@ -8,12 +8,9 @@ import cn.com.taiji.core.entity.dict.log.OperateType; | |||
import cn.com.taiji.core.entity.issue.IssueOrderinfo; | |||
import cn.com.taiji.core.entity.log.OperateLog; | |||
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.log.OperateLogRepo; | |||
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.web.context.request.RequestContextHolder; | |||
import org.springframework.web.context.request.ServletRequestAttributes; | |||
@@ -34,19 +31,6 @@ public abstract class AbstractManagewManager extends AbstractCommManager { | |||
private AccountInfoRepo accountInfoRepo; | |||
@Autowired | |||
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, |
@@ -16,6 +16,7 @@ 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.manager.AbstractManagewManager; | |||
import cn.com.taiji.managew.model.MyFinals; | |||
import cn.com.taiji.managew.model.ass.AssOrderInfoModel; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
@@ -43,7 +44,7 @@ public class AssOrderinfoManagerImpl extends AbstractManagewManager implements A | |||
throw new ManagerException("为获取到当前员工账号!"); | |||
} | |||
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); | |||
} | |||
return repo.page(pageRequest).convertResult(this::toModel); |
@@ -19,6 +19,7 @@ import cn.com.taiji.core.repo.jpa.user.StaffRepo; | |||
import cn.com.taiji.core.repo.request.ass.AssRefundApplyInfoPageRequest; | |||
import cn.com.taiji.managew.dto.ass.etcTransaction.*; | |||
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.lang3.StringUtils; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
@@ -31,7 +32,6 @@ import java.time.LocalDateTime; | |||
import java.time.format.DateTimeFormatter; | |||
import java.util.Arrays; | |||
import java.util.List; | |||
import java.util.stream.Collectors; | |||
/** | |||
* @Auther: humh | |||
@@ -61,7 +61,7 @@ public class AssRefundApplyInfoManagerImpl extends AbstractManagewManager implem | |||
throw new ManagerException("为获取到当前员工账号!"); | |||
} | |||
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); | |||
} | |||
return refundApplyInfoRepo.page(pageRequest); |