feat:对接一级口门车辆

koumen
dearLin 2026-04-14 15:01:54 +08:00
parent fef4ee37f1
commit 6eabea95a5
28 changed files with 1349 additions and 4 deletions

View File

@ -2,8 +2,6 @@ package com.zcloud.primeport;
import com.jjb.saas.base.starter.bootstart.JJBSpringbootApplication; import com.jjb.saas.base.starter.bootstart.JJBSpringbootApplication;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthContributorAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/** /**
* Spring Boot Starter * Spring Boot Starter
@ -18,3 +16,4 @@ public class Application {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);
} }
} }

View File

@ -0,0 +1,88 @@
package com.zcloud.primeport.web;
import com.zcloud.api.VehicleDockLogServiceI;
import com.zcloud.dto.VehicleDockLogAddCmd;
import com.zcloud.dto.VehicleDockLogPageQry;
import com.zcloud.dto.VehicleDockLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.VehicleDockLogCO;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* web-adapter
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Api(tags = "车辆对接记录")
@RequestMapping("/${application.gateway}/vehicleDockLog")
@RestController
@AllArgsConstructor
public class VehicleDockLogController {
private final VehicleDockLogServiceI vehicleDockLogService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<VehicleDockLogCO> add(@Validated @RequestBody VehicleDockLogAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return vehicleDockLogService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<VehicleDockLogCO> page(@RequestBody VehicleDockLogPageQry qry) {
return vehicleDockLogService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<VehicleDockLogCO> listAll() {
return MultiResponse.of(new ArrayList<VehicleDockLogCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<VehicleDockLogCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(vehicleDockLogService.queryById(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
vehicleDockLogService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam("ids") String ids) {
List<Long> idsList = Arrays.stream(ids.split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
vehicleDockLogService.removeBatch(idsList);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody VehicleDockLogUpdateCmd vehicleDockLogUpdateCmd) {
vehicleDockLogService.edit(vehicleDockLogUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -60,6 +60,7 @@ public class VehicleAuditUpdateExe {
TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent(); TodoListCompleteEvent todoListCompleteEvent = new TodoListCompleteEvent();
todoListCompleteEvent.setForeignSubsidiaryKey(vehicleAuditE.getId()); todoListCompleteEvent.setForeignSubsidiaryKey(vehicleAuditE.getId());
todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent); todoListEventPusherUtil.sendMessageCompleteEvent(todoListCompleteEvent);
} }
} }

View File

@ -0,0 +1,40 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.VehicleDockLogGateway;
import com.zcloud.primeport.domain.model.VehicleDockLogE;
import com.zcloud.primeport.dto.VehicleDockLogAddCmd;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Component
@AllArgsConstructor
public class VehicleDockLogAddExe {
private final VehicleDockLogGateway vehicleDockLogGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(VehicleDockLogAddCmd cmd) {
VehicleDockLogE vehicleDockLogE = new VehicleDockLogE();
BeanUtils.copyProperties(cmd, vehicleDockLogE);
boolean res = false;
try {
res = vehicleDockLogGateway.add(vehicleDockLogE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,41 @@
package com.zcloud.primeport.command;
import com.zcloud.primeport.domain.gateway.VehicleDockLogGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Component
@AllArgsConstructor
public class VehicleDockLogRemoveExe {
private final VehicleDockLogGateway vehicleDockLogGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = vehicleDockLogGateway.deletedVehicleDockLogById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(List<Long> ids) {
boolean res = vehicleDockLogGateway.deletedVehicleDockLogByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.primeport.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.primeport.domain.gateway.VehicleDockLogGateway;
import com.zcloud.primeport.domain.model.VehicleDockLogE;
import com.zcloud.primeport.dto.VehicleDockLogUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Component
@AllArgsConstructor
public class VehicleDockLogUpdateExe {
private final VehicleDockLogGateway vehicleDockLogGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(VehicleDockLogUpdateCmd vehicleDockLogUpdateCmd) {
VehicleDockLogE vehicleDockLogE = new VehicleDockLogE();
BeanUtils.copyProperties(vehicleDockLogUpdateCmd, vehicleDockLogE);
boolean res = vehicleDockLogGateway.update(vehicleDockLogE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -0,0 +1,26 @@
package com.zcloud.primeport.command.convertor;
import com.zcloud.primeport.dto.clientobject.VehicleDockLogCO;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Mapper(componentModel = "spring")
public interface VehicleDockLogCoConvertor {
/**
* @param vehicleDockLogDOs
* @return
*/
List<VehicleDockLogCO> converDOsToCOs(List<VehicleDockLogDO> vehicleDockLogDOs);
VehicleDockLogCO converDOToCO(VehicleDockLogDO vehicleDockLogDO);
}

View File

@ -0,0 +1,52 @@
package com.zcloud.primeport.command.query;
import com.zcloud.primeport.command.convertor.VehicleDockLogCoConvertor;
import com.zcloud.primeport.dto.VehicleDockLogPageQry;
import com.zcloud.primeport.dto.clientobject.VehicleDockLogCO;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import com.zcloud.primeport.persistence.repository.VehicleDockLogRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Component
@AllArgsConstructor
public class VehicleDockLogQueryExe {
private final VehicleDockLogRepository vehicleDockLogRepository;
private final VehicleDockLogCoConvertor vehicleDockLogCoConvertor;
/**
* id
*
* @param id
* @return
*/
public VehicleDockLogCO queryById(Long id) {
return vehicleDockLogCoConvertor.converDOToCO(vehicleDockLogRepository.getById(id));
}
/**
*
*
* @param vehicleDockLogPageQry
* @return
*/
public PageResponse<VehicleDockLogCO> execute(VehicleDockLogPageQry vehicleDockLogPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(vehicleDockLogPageQry);
PageResponse<VehicleDockLogDO> pageResponse = vehicleDockLogRepository.listPage(params);
List<VehicleDockLogCO> examCenterCOS = vehicleDockLogCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -56,8 +56,6 @@ public class OauthUtil {
private String iccImgInspectUrl; private String iccImgInspectUrl;
@Value("${icc.request.getDepartmentIdUrl}") @Value("${icc.request.getDepartmentIdUrl}")
private String iccDepartmentIdUrl; private String iccDepartmentIdUrl;
@Value("${icc.request.getDepartmentIdListUrl}")
private String iccDepartmentIdListUrl;
/** /**
* RestTemplate * RestTemplate

View File

@ -0,0 +1,108 @@
package com.zcloud.primeport.mjDevice;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.primeport.mjDevice.dto.OneLevelCarRemoveDto;
import com.zcloud.primeport.mjDevice.dto.OneLevelCarSaveDto;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
/**
*
*
*/
@Component
public class OneLevelCarUtil {
public static RestTemplate restTemplateOneLevelCarDock;
private static Integer dockFlag;
private static String prefix;
@Resource
public void setrestTemplateOneLevelCarDock(RestTemplate restTemplateOneLevelCarDock) {
OneLevelCarUtil.restTemplateOneLevelCarDock = restTemplateOneLevelCarDock;
}
@Value("${kmmj.dockflag}")
public void setDockFlag(Integer dockFlag) {
OneLevelCarUtil.dockFlag = dockFlag;
}
@Value("${oneLevelCar.prefix}")
public void setDockFlag(String prefix) {
OneLevelCarUtil.prefix = prefix;
}
/**
*
*
*
*/
public static void internalVehicleSave(OneLevelCarSaveDto oneLevelCarSaveDto) {
if (dockFlag.equals(1)) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(oneLevelCarSaveDto));
HttpEntity<JSONObject> httpEntity = new HttpEntity<>(jsonObject, new HttpHeaders());
ResponseEntity<JSONObject> exchange = restTemplateOneLevelCarDock.exchange(
prefix+"/HD_QHD_IGATE_1.0/webresources/login/CTruck/qaSaveInternal",
HttpMethod.POST, httpEntity, JSONObject.class);
}
}
/**
*
*
*/
public static void internalVehicleRemove(OneLevelCarRemoveDto carRemoveDto) {
if (dockFlag.equals(1)) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(carRemoveDto));
HttpEntity<JSONObject> httpEntity = new HttpEntity<>(jsonObject, new HttpHeaders());
ResponseEntity<JSONObject> exchange = restTemplateOneLevelCarDock.exchange(
prefix+"/HD_QHD_IGATE_1.0/webresources/login/CTruck/qaDeleteInternal",
HttpMethod.POST, httpEntity, JSONObject.class);
}
}
/**
*
*
*
*/
public static void tmpVehicleRemove() {
// restTemplateOneLevelCarDock.exchange();
}
/**
*
*
*
*/
public static void tmpVehicleSave() {
// restTemplateOneLevelCarDock.exchange();
}
/**
*
*
*
*/
public static void blackVehicleSave() {
// restTemplateOneLevelCarDock.exchange();
}
/**
*
*
*
*/
public static void blackVehicleRemove() {
// restTemplateOneLevelCarDock.exchange();
}
}

View File

@ -0,0 +1,96 @@
package com.zcloud.primeport.mjDevice;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.ssl.TrustStrategy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpResponse;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.ResponseErrorHandler;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.time.Duration;
@Configuration
public class RestTemplateConfig {
//启动时需要实例化该类的一个实例
@Autowired
private RestTemplateBuilder builder;
//使用RestTemplateBuilder来实例化RestTemplate对象,Spring已经默认注入了RestTemplateBuilder实例
@Bean
public RestTemplate restTemplateDock(){
builder.setConnectTimeout(Duration.ofSeconds(5));
builder.setReadTimeout(Duration.ofSeconds(5));
return builder.build();
}
@Bean
public RestTemplate restTemplateOneLevelCarDock(){
builder.setConnectTimeout(Duration.ofSeconds(5));
builder.setReadTimeout(Duration.ofSeconds(5));
return builder.build();
}
@Bean
public RestTemplate restTemplateHbsy(HttpComponentsClientHttpRequestFactory httpsFactory) {
RestTemplate restTemplate = new RestTemplate(httpsFactory);
restTemplate.setErrorHandler(new ResponseErrorHandler() {
@Override
public boolean hasError(ClientHttpResponse response) throws IOException {
return false;
}
@Override
public void handleError(ClientHttpResponse response) throws IOException {
}
});
return restTemplate;
}
@Bean("httpsFactory")
public HttpComponentsClientHttpRequestFactory httpComponentsClientHttpRequestFactory() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
CloseableHttpClient httpClient = client();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
factory.setConnectTimeout(20000);
return factory;
}
private CloseableHttpClient client() throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
HttpClientBuilder builder = HttpClientBuilder.create();
// 无条件信任ssl证书
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
return true;
}
}).build();
builder.setSSLContext(sslContext);
NoopHostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE;
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(sslContext, hostnameVerifier);
Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.getSocketFactory()).register("https", sslConnectionSocketFactory).build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
connectionManager.setMaxTotal(200);
connectionManager.setDefaultMaxPerRoute(100);
builder.setConnectionManager(connectionManager);
return builder.build();
}
}

View File

@ -0,0 +1,86 @@
package com.zcloud.primeport.mjDevice.dto;
import com.zcloud.primeport.domain.enums.MenuEnum;
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public enum CarEnum {
WHITE("2", "white"),
BLUE("0", "blue"),
YELLOW("1", "yellow"),
GREEN("4", "green"),
BLACK("3", "black"),
OTHER_CARD("5", "other_card"),
WXP("WXP", "WXP"),
QH("QH", "QH"),
XK("XK", "XK"),
ZK("ZK", "ZK"),
DK("DK", "DK"),
BG("BG", "BG"),
TZ("TZ", "TZ"),
ZX("ZX", "ZX"),
JSXH("JSXH", "JSXH"),
MV("MV", "MV"),
IW("IW", "IW"),
CR("CR", "CR"),
CC("CC", "CC"),
Z7("Z7", "Z7"),
WXP_BLUE("WXP_BLUE", "WXP_BLUE"),
QHD_GQ_DGQ_XGQ("0", "QHD_GQ_DGQ-QHD_GQ_XGQ"),
QHD_GQ_DGQ("1", "QHD_GQ_DGQ"),
QHD_GQ_XGQ("2", "QHD_GQ_XGQ"),
// WXP 危险品(黄牌)
// QH 轻型货车
// XK 小型客车
// ZK 中型客车
// DK 大型客车
// BG 重型半挂牵引
// TZ 特种作业车
// ZX 重型自卸货车
// JSXH 集疏港小型货车
// MV 7座以下轿车
// IW 7座以上轿车
// CR 面包车
// CC 皮卡
// Z7 水泥罐车
// WXP_BLUE 危险品(蓝牌)
ZGDW_LSCLGLJL_RECORD("/primeport/container/stakeholder/firstLevelDoor/portEntryApproval/temporaryVisitor/temporaryVehicleRecords/list", "zgdw-lsclgljl-record");
private final String path;
private final String menuKey;
private static final Map<String, CarEnum> PATH_MAP =
Arrays.stream(values()).collect(Collectors.toMap(CarEnum::getPath, Function.identity()));
CarEnum(String path, String menuKey) {
this.path = path;
this.menuKey = menuKey;
}
public String getPath() {
return path;
}
public String getMenuKey() {
return menuKey;
}
/**
* path
*/
public static CarEnum getByPath(String path) {
return PATH_MAP.get(path);
}
/**
* pathmenuKey
*/
public static String getMenuKeyByPath(String path) {
CarEnum entry = PATH_MAP.get(path);
return entry != null ? entry.getMenuKey() : null;
}
}

View File

@ -0,0 +1,14 @@
package com.zcloud.primeport.mjDevice.dto;
import lombok.Data;
/*
*
* */
@Data
public class OneLevelCarRemoveDto {
// 车牌号
private String truckNo;
// 车牌颜色 代码0蓝牌1黄牌2白牌3黑牌4新能源5其他
private String truckCardColor;
}

View File

@ -0,0 +1,65 @@
package com.zcloud.primeport.mjDevice.dto;
import lombok.Data;
/*
*
* */
@Data
public class OneLevelCarSaveDto {
// 车牌号
private String truckNo;
// 车牌颜色 代码
//0 蓝牌
//1 黄牌
//2 白牌
//3 黑牌
//4 新能源
//5 其他
private String truckCardColor;
// 车辆类型 代码
// WXP 危险品(黄牌)
//QH 轻型货车
//XK 小型客车
//ZK 中型客车
//DK 大型客车
//BG 重型半挂牵引
//TZ 特种作业车
//ZX 重型自卸货车
//JSXH 集疏港小型货车
//MV 7座以下轿车
//IW 7座以上轿车
//CR 面包车
//CC 皮卡
//Z7 水泥罐车
//WXP_BLUE 危险品(蓝牌)
private String truckTypCod;
// 所属单位 汉字
private String truckTeamNam;
// 通行港区 传入代码 0-全部 1-东港区 2-西港区
private String portId;
// 运全路 传入代码 0 不可以1 可以
private String yqlCheckFlag;
// 有效期 格式为yyyy-MM-dd 例子2025-05-01
private String validDte;
// 司机名称 司机名称字符串
private String driverNam;
// 司机联系方式 司机联系方式字符串
private String linkTel;
// 行驶证号 字符串
private String truckCard;
// 车辆识别号 字符串
private String vin;
// 申请类别 代码
//1 公务用车
//2 生产用车
//3 政府部门
//4 职工私家车
//5 客户私家车
private String truckAppTypCod;
// 创建人 创建人的字符串
private String recNam;
// 创建时间 格式yyyy-MM-dd HH:mm 例子2025-04-01 12:25
private String recTim;
}

View File

@ -0,0 +1,67 @@
package com.zcloud.primeport.service;
import com.zcloud.api.VehicleDockLogServiceI;
import com.zcloud.command.VehicleDockLogAddExe;
import com.zcloud.command.VehicleDockLogRemoveExe;
import com.zcloud.command.VehicleDockLogUpdateExe;
import com.zcloud.command.query.VehicleDockLogQueryExe;
import com.zcloud.dto.VehicleDockLogAddCmd;
import com.zcloud.dto.VehicleDockLogPageQry;
import com.zcloud.dto.VehicleDockLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.VehicleDockLogCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* web-app
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Service
@AllArgsConstructor
public class VehicleDockLogServiceImpl implements VehicleDockLogServiceI {
private final VehicleDockLogAddExe vehicleDockLogAddExe;
private final VehicleDockLogUpdateExe vehicleDockLogUpdateExe;
private final VehicleDockLogRemoveExe vehicleDockLogRemoveExe;
private final VehicleDockLogQueryExe vehicleDockLogQueryExe;
@Override
public VehicleDockLogCO queryById(Long id) {
return vehicleDockLogQueryExe.queryById(id);
}
@Override
public PageResponse<VehicleDockLogCO> listPage(VehicleDockLogPageQry qry) {
return vehicleDockLogQueryExe.execute(qry);
}
@Override
public SingleResponse add(VehicleDockLogAddCmd cmd) {
vehicleDockLogAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(VehicleDockLogUpdateCmd vehicleDockLogUpdateCmd) {
vehicleDockLogUpdateExe.execute(vehicleDockLogUpdateCmd);
}
@Override
public void remove(Long id) {
vehicleDockLogRemoveExe.execute(id);
}
@Override
public void removeBatch(List<Long> ids) {
vehicleDockLogRemoveExe.execute(ids);
}
}

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.api;
import com.zcloud.primeport.dto.VehicleDockLogAddCmd;
import com.zcloud.primeport.dto.VehicleDockLogPageQry;
import com.zcloud.primeport.dto.VehicleDockLogUpdateCmd;
import com.zcloud.primeport.dto.clientobject.VehicleDockLogCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import java.util.List;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
public interface VehicleDockLogServiceI {
VehicleDockLogCO queryById(Long id);
PageResponse<VehicleDockLogCO> listPage(VehicleDockLogPageQry qry);
SingleResponse<VehicleDockLogCO> add(VehicleDockLogAddCmd cmd);
void edit(VehicleDockLogUpdateCmd cmd);
void remove(Long id);
void removeBatch(List<Long> ids);
}

View File

@ -0,0 +1,92 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-14 14:53:28
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VehicleDockLogAddCmd extends Command {
@ApiModelProperty(value = "1一级口门2二级口门", name = "level", required = true)
@NotEmpty(message = "1一级口门2二级口门不能为空")
private String level;
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车", name = "vehicleBelongType", required = true)
@NotEmpty(message = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车不能为空")
private String vehicleBelongType;
@ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
@NotEmpty(message = "车牌号不能为空")
private String licenceNo;
@ApiModelProperty(value = "申请人名称", name = "applyName", required = true)
@NotEmpty(message = "申请人名称不能为空")
private String applyName;
@ApiModelProperty(value = "申请时间", name = "applyTime", required = true)
@NotEmpty(message = "申请时间不能为空")
private String applyTime;
@ApiModelProperty(value = "审批人名称", name = "auditName", required = true)
@NotEmpty(message = "审批人名称不能为空")
private String auditName;
@ApiModelProperty(value = "审批时间", name = "auditTime", required = true)
@NotEmpty(message = "审批时间不能为空")
private String auditTime;
@ApiModelProperty(value = "港区名称0全部1东港2西港", name = "portArea", required = true)
@NotEmpty(message = "港区名称0全部1东港2西港不能为空")
private String portArea;
@ApiModelProperty(value = "有效期", name = "validDte", required = true)
@NotEmpty(message = "有效期不能为空")
private String validDte;
@ApiModelProperty(value = "车牌颜色", name = "truckCardColor", required = true)
@NotEmpty(message = "车牌颜色不能为空")
private String truckCardColor;
@ApiModelProperty(value = "车辆类型", name = "truckTypCod", required = true)
@NotEmpty(message = "车辆类型不能为空")
private String truckTypCod;
@ApiModelProperty(value = "运全路 0 不可以1 可以", name = "yqlCheckFlag", required = true)
@NotEmpty(message = "运全路 0 不可以1 可以不能为空")
private String yqlCheckFlag;
@ApiModelProperty(value = "司机名称", name = "driverNam", required = true)
@NotEmpty(message = "司机名称不能为空")
private String driverNam;
@ApiModelProperty(value = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车", name = "truckAppTypCod", required = true)
@NotEmpty(message = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车不能为空")
private String truckAppTypCod;
@ApiModelProperty(value = "对接状态 1没对接2已对接", name = "dockFlag", required = true)
@NotEmpty(message = "对接状态 1没对接2已对接不能为空")
private String dockFlag;
@ApiModelProperty(value = "1对接失败2对接成功", name = "dockStatus", required = true)
@NotEmpty(message = "1对接失败2对接成功不能为空")
private String dockStatus;
@ApiModelProperty(value = "对接失败原因", name = "reasonsRefusal", required = true)
@NotEmpty(message = "对接失败原因不能为空")
private String reasonsRefusal;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Data
public class VehicleDockLogPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeLevel;
}

View File

@ -0,0 +1,78 @@
package com.zcloud.primeport.dto;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VehicleDockLogUpdateCmd extends Command {
@ApiModelProperty(value = "${column.comment}", name = "id", required = true)
@NotNull(message = "${column.comment}不能为空")
private Long id;
@ApiModelProperty(value = "1一级口门2二级口门", name = "level", required = true)
@NotEmpty(message = "1一级口门2二级口门不能为空")
private String level;
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车", name = "vehicleBelongType", required = true)
@NotEmpty(message = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车不能为空")
private String vehicleBelongType;
@ApiModelProperty(value = "车牌号", name = "licenceNo", required = true)
@NotEmpty(message = "车牌号不能为空")
private String licenceNo;
@ApiModelProperty(value = "申请人名称", name = "applyName", required = true)
@NotEmpty(message = "申请人名称不能为空")
private String applyName;
@ApiModelProperty(value = "申请时间", name = "applyTime", required = true)
@NotEmpty(message = "申请时间不能为空")
private String applyTime;
@ApiModelProperty(value = "审批人名称", name = "auditName", required = true)
@NotEmpty(message = "审批人名称不能为空")
private String auditName;
@ApiModelProperty(value = "审批时间", name = "auditTime", required = true)
@NotEmpty(message = "审批时间不能为空")
private String auditTime;
@ApiModelProperty(value = "港区名称0全部1东港2西港", name = "portArea", required = true)
@NotEmpty(message = "港区名称0全部1东港2西港不能为空")
private String portArea;
@ApiModelProperty(value = "有效期", name = "validDte", required = true)
@NotEmpty(message = "有效期不能为空")
private String validDte;
@ApiModelProperty(value = "车牌颜色", name = "truckCardColor", required = true)
@NotEmpty(message = "车牌颜色不能为空")
private String truckCardColor;
@ApiModelProperty(value = "车辆类型", name = "truckTypCod", required = true)
@NotEmpty(message = "车辆类型不能为空")
private String truckTypCod;
@ApiModelProperty(value = "运全路 0 不可以1 可以", name = "yqlCheckFlag", required = true)
@NotEmpty(message = "运全路 0 不可以1 可以不能为空")
private String yqlCheckFlag;
@ApiModelProperty(value = "司机名称", name = "driverNam", required = true)
@NotEmpty(message = "司机名称不能为空")
private String driverNam;
@ApiModelProperty(value = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车", name = "truckAppTypCod", required = true)
@NotEmpty(message = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车不能为空")
private String truckAppTypCod;
@ApiModelProperty(value = "对接状态 1没对接2已对接", name = "dockFlag", required = true)
@NotEmpty(message = "对接状态 1没对接2已对接不能为空")
private String dockFlag;
@ApiModelProperty(value = "1对接失败2对接成功", name = "dockStatus", required = true)
@NotEmpty(message = "1对接失败2对接成功不能为空")
private String dockStatus;
@ApiModelProperty(value = "对接失败原因", name = "reasonsRefusal", required = true)
@NotEmpty(message = "对接失败原因不能为空")
private String reasonsRefusal;
}

View File

@ -0,0 +1,110 @@
package com.zcloud.primeport.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.sql.Date;
/**
* web-client
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Data
public class VehicleDockLogCO extends ClientObject {
private Long id;
//1一级口门2二级口门
@ApiModelProperty(value = "1一级口门2二级口门")
private String level;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车")
private String vehicleBelongType;
//车牌号
@ApiModelProperty(value = "车牌号")
private String licenceNo;
//申请人名称
@ApiModelProperty(value = "申请人名称")
private String applyName;
//申请时间
@ApiModelProperty(value = "申请时间")
private String applyTime;
//审批人名称
@ApiModelProperty(value = "审批人名称")
private String auditName;
//审批时间
@ApiModelProperty(value = "审批时间")
private String auditTime;
//港区名称0全部1东港2西港
@ApiModelProperty(value = "港区名称0全部1东港2西港")
private String portArea;
//有效期
@ApiModelProperty(value = "有效期")
private String validDte;
//车牌颜色
@ApiModelProperty(value = "车牌颜色")
private String truckCardColor;
//车辆类型
@ApiModelProperty(value = "车辆类型")
private String truckTypCod;
//运全路 0 不可以1 可以
@ApiModelProperty(value = "运全路 0 不可以1 可以")
private String yqlCheckFlag;
//司机名称
@ApiModelProperty(value = "司机名称")
private String driverNam;
//申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车
@ApiModelProperty(value = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车")
private String truckAppTypCod;
//对接状态 1没对接2已对接
@ApiModelProperty(value = "对接状态 1没对接2已对接")
private String dockFlag;
//1对接失败2对接成功
@ApiModelProperty(value = "1对接失败2对接成功")
private String dockStatus;
//对接失败原因
@ApiModelProperty(value = "对接失败原因")
private String reasonsRefusal;
//删除标识
@ApiModelProperty(value = "删除标识")
private String deleteEnum;
//创建时间
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
//更新时间
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date updateTime;
//创建人ID
@ApiModelProperty(value = "创建人ID")
private Long createId;
//更新人ID
@ApiModelProperty(value = "更新人ID")
private Long updateId;
//环境标识
@ApiModelProperty(value = "环境标识")
private String env;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//更新人姓名
@ApiModelProperty(value = "更新人姓名")
private String updateName;
//租户ID
@ApiModelProperty(value = "租户ID")
private Long tenantId;
//组织ID
@ApiModelProperty(value = "组织ID")
private Long orgId;
//版本号
@ApiModelProperty(value = "版本号")
private Integer version;
//备注
@ApiModelProperty(value = "备注")
private String remarks;
}

View File

@ -0,0 +1,32 @@
package com.zcloud.primeport.domain.gateway;
import com.zcloud.primeport.domain.model.VehicleDockLogE;
import java.util.List;
/**
* web-domain
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
public interface VehicleDockLogGateway {
/**
*
*/
Boolean add(VehicleDockLogE vehicleDockLogE);
/**
*
*/
Boolean update(VehicleDockLogE vehicleDockLogE);
/**
*
*/
Boolean deletedVehicleDockLogById(Long id);
Boolean deletedVehicleDockLogByIds(List<Long> id);
}

View File

@ -0,0 +1,51 @@
package com.zcloud.primeport.domain.model;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* web-domain
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Data
public class VehicleDockLogE extends BaseE {
//1一级口门2二级口门
private String level;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车
private String vehicleBelongType;
//车牌号
private String licenceNo;
//申请人名称
private String applyName;
//申请时间
private String applyTime;
//审批人名称
private String auditName;
//审批时间
private String auditTime;
//港区名称0全部1东港2西港
private String portArea;
//有效期
private String validDte;
//车牌颜色
private String truckCardColor;
//车辆类型
private String truckTypCod;
//运全路 0 不可以1 可以
private String yqlCheckFlag;
//司机名称
private String driverNam;
//申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车
private String truckAppTypCod;
//对接状态 1没对接2已对接
private String dockFlag;
//1对接失败2对接成功
private String dockStatus;
//对接失败原因
private String reasonsRefusal;
}

View File

@ -0,0 +1,51 @@
package com.zcloud.primeport.gatewayimpl;
import com.zcloud.primeport.domain.gateway.VehicleDockLogGateway;
import com.zcloud.primeport.domain.model.VehicleDockLogE;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import com.zcloud.primeport.persistence.repository.VehicleDockLogRepository;
import lombok.AllArgsConstructor;
import com.zcloud.gbscommon.utils.Tools;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Service
@AllArgsConstructor
public class VehicleDockLogGatewayImpl implements VehicleDockLogGateway {
private final VehicleDockLogRepository vehicleDockLogRepository;
@Override
public Boolean add(VehicleDockLogE vehicleDockLogE) {
VehicleDockLogDO d = new VehicleDockLogDO();
BeanUtils.copyProperties(vehicleDockLogE, d);
vehicleDockLogRepository.save(d);
return true;
}
@Override
public Boolean update(VehicleDockLogE vehicleDockLogE) {
VehicleDockLogDO d = new VehicleDockLogDO();
BeanUtils.copyProperties(vehicleDockLogE, d);
vehicleDockLogRepository.updateById(d);
return true;
}
@Override
public Boolean deletedVehicleDockLogById(Long id) {
return vehicleDockLogRepository.removeById(id);
}
@Override
public Boolean deletedVehicleDockLogByIds(List<Long> ids) {
return vehicleDockLogRepository.removeByIds(ids);
}
}

View File

@ -0,0 +1,74 @@
package com.zcloud.primeport.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-14 14:53:29
*/
@Data
@TableName("vehicle_dock_log")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class VehicleDockLogDO extends BaseDO {
//1一级口门2二级口门
@ApiModelProperty(value = "1一级口门2二级口门")
private String level;
//车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车
@ApiModelProperty(value = "车辆所属类型 1-股份员工车辆2-股份单位车辆3-分公司员工车辆4-分公司单位车辆 5-相关方车辆, 6:临时车辆7检查部门车辆8驻港单位员工车辆9驻港单位公车")
private String vehicleBelongType;
//车牌号
@ApiModelProperty(value = "车牌号")
private String licenceNo;
//申请人名称
@ApiModelProperty(value = "申请人名称")
private String applyName;
//申请时间
@ApiModelProperty(value = "申请时间")
private String applyTime;
//审批人名称
@ApiModelProperty(value = "审批人名称")
private String auditName;
//审批时间
@ApiModelProperty(value = "审批时间")
private String auditTime;
//港区名称0全部1东港2西港
@ApiModelProperty(value = "港区名称0全部1东港2西港")
private String portArea;
//有效期
@ApiModelProperty(value = "有效期")
private String validDte;
//车牌颜色
@ApiModelProperty(value = "车牌颜色")
private String truckCardColor;
//车辆类型
@ApiModelProperty(value = "车辆类型")
private String truckTypCod;
//运全路 0 不可以1 可以
@ApiModelProperty(value = "运全路 0 不可以1 可以")
private String yqlCheckFlag;
//司机名称
@ApiModelProperty(value = "司机名称")
private String driverNam;
//申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车
@ApiModelProperty(value = "申请类别1 公务用车2 生产用车3 政府部门4 职工私家车5客户私家车")
private String truckAppTypCod;
//对接状态 1没对接2已对接
@ApiModelProperty(value = "对接状态 1没对接2已对接")
private String dockFlag;
//1对接失败2对接成功
@ApiModelProperty(value = "1对接失败2对接成功")
private String dockStatus;
//对接失败原因
@ApiModelProperty(value = "对接失败原因")
private String reasonsRefusal;
}

View File

@ -0,0 +1,17 @@
package com.zcloud.primeport.persistence.mapper;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Mapper
public interface VehicleDockLogMapper extends BaseMapper<VehicleDockLogDO> {
}

View File

@ -0,0 +1,18 @@
package com.zcloud.primeport.persistence.repository;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
public interface VehicleDockLogRepository extends BaseRepository<VehicleDockLogDO> {
PageResponse<VehicleDockLogDO> listPage(Map<String, Object> params);
}

View File

@ -0,0 +1,39 @@
package com.zcloud.primeport.persistence.repository.impl;
import com.zcloud.primeport.persistence.dataobject.VehicleDockLogDO;
import com.zcloud.primeport.persistence.mapper.VehicleDockLogMapper;
import com.zcloud.primeport.persistence.repository.VehicleDockLogRepository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* web-infrastructure
*
* @Author dearLin
* @Date 2026-04-14 14:53:30
*/
@Service
@RequiredArgsConstructor
public class VehicleDockLogRepositoryImpl extends BaseRepositoryImpl<VehicleDockLogMapper, VehicleDockLogDO> implements VehicleDockLogRepository {
private final VehicleDockLogMapper vehicleDockLogMapper;
@Override
public PageResponse<VehicleDockLogDO> listPage(Map<String, Object> params) {
IPage<VehicleDockLogDO> iPage = new Query<VehicleDockLogDO>().getPage(params);
QueryWrapper<VehicleDockLogDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<VehicleDockLogDO> result = vehicleDockLogMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.primeport.persistence.mapper.VehicleDockLogMapper">
</mapper>