Compare commits

...

2 Commits

Author SHA1 Message Date
031026 4f581ee30a Merge remote-tracking branch 'origin/master' 2024-06-17 22:29:52 +08:00
031026 e644f5be3a refactor(重构电子围栏) 2024-06-17 22:29:45 +08:00
36 changed files with 1377 additions and 901 deletions

View File

@ -34,16 +34,10 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId> <artifactId>spring-webmvc</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-company-common</artifactId> <artifactId>muyu-company-common</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -1,23 +1,18 @@
package com.muyu.clw.common.many.datasource; package com.muyu.clw.common.many.datasource;
import com.alibaba.druid.pool.DruidDataSource;
import com.muyu.clw.common.many.datasource.domain.model.DataSourceInfo; import com.muyu.clw.common.many.datasource.domain.model.DataSourceInfo;
import com.muyu.clw.common.many.remote.RemoteEnterpriseService; import com.muyu.clw.common.many.remote.RemoteEnterpriseService;
import com.muyu.clw.common.saas.domain.model.EntInfo; import com.muyu.clw.common.saas.domain.model.EntInfo;
import com.muyu.clw.common.many.datasource.factory.DruidDataSourceFactory; import com.muyu.clw.common.many.datasource.factory.DruidDataSourceFactory;
import com.muyu.clw.common.many.datasource.role.DynamicDataSource; import com.muyu.clw.common.many.datasource.role.DynamicDataSource;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.SpringUtils;
import com.muyu.domain.Enterprise; import com.muyu.domain.Enterprise;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;

View File

@ -33,15 +33,6 @@ public class DruidDataSourceFactory {
druidDataSource.setConnectionErrorRetryAttempts(0); druidDataSource.setConnectionErrorRetryAttempts(0);
druidDataSource.setMaxActive(20); // 设置最大活动连接数为 20 druidDataSource.setMaxActive(20); // 设置最大活动连接数为 20
// try {
// Thread.sleep(4000);
// druidDataSource.getConnection();
// log.info("{}->数据库连接成功", dataSourceInfo.getKey());
//
// } catch (Exception e) {
// log.error("数据库连接失败: {}", e.getMessage());
// throw new RuntimeException("数据库连接失败", e);
// }
return druidDataSource; return druidDataSource;
} }
} }

View File

@ -1,84 +1,130 @@
package com.muyu.many.domain; package com.muyu.many.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.many.domain.req.FenceEditReq;
import com.muyu.many.domain.req.FenceQueryReq;
import com.muyu.many.domain.req.FenceSaveReq;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/** /**
* fence * fence
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
public class Fence extends BaseEntity @Data
{ @SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("fence")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Fence", description = "电子围栏")
public class Fence extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id */ /** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id; private Long id;
/** 电子围栏名称 */ /** 围栏名称 */
@Excel(name = "电子围栏名称") @Excel(name = "围栏名称")
private String name; @ApiModelProperty(name = "围栏名称", value = "围栏名称")
private String fenceName;
/** 围栏类型 */ /** 围栏组ID */
@Excel(name = "围栏类型") @Excel(name = "围栏组ID")
private String fenceType; @ApiModelProperty(name = "围栏组ID", value = "围栏组ID")
private Long groupId;
/** 经纬度信息 */ /** 围栏经纬度 */
@Excel(name = "经纬度信息") @Excel(name = "围栏经纬度")
@ApiModelProperty(name = "围栏经纬度", value = "围栏经纬度")
private String longitudeAndLatitude; private String longitudeAndLatitude;
public void setId(Long id) /** 围栏备注 */
{ @Excel(name = "围栏备注")
this.id = id; @ApiModelProperty(name = "围栏备注", value = "围栏备注")
private String fenceNote;
/** 半径 */
@Excel(name = "半径")
@ApiModelProperty(name = "半径", value = "半径")
private BigDecimal radius;
/** 驶入,驶出 */
@Excel(name = "驶入,驶出")
@ApiModelProperty(name = "驶入,驶出", value = "驶入,驶出")
private String driveOutIn;
/** 是否删除 */
@Excel(name = "是否删除")
@ApiModelProperty(name = "是否删除", value = "是否删除")
private Long isDelete;
/** 围栏状态 */
@Excel(name = "围栏状态")
@ApiModelProperty(name = "围栏状态", value = "围栏状态")
private Long fenceState;
/**
*
*/
public static Fence queryBuild( FenceQueryReq fenceQueryReq){
return Fence.builder()
.fenceName(fenceQueryReq.getFenceName())
.groupId(fenceQueryReq.getGroupId())
.longitudeAndLatitude(fenceQueryReq.getLongitudeAndLatitude())
.fenceNote(fenceQueryReq.getFenceNote())
.radius(fenceQueryReq.getRadius())
.driveOutIn(fenceQueryReq.getDriveOutIn())
.isDelete(fenceQueryReq.getIsDelete())
.fenceState(fenceQueryReq.getFenceState())
.build();
} }
public Long getId() /**
{ *
return id; */
} public static Fence saveBuild(FenceSaveReq fenceSaveReq){
public void setName(String name) return Fence.builder()
{ .fenceName(fenceSaveReq.getFenceName())
this.name = name; .groupId(fenceSaveReq.getGroupId())
.longitudeAndLatitude(fenceSaveReq.getLongitudeAndLatitude())
.fenceNote(fenceSaveReq.getFenceNote())
.radius(fenceSaveReq.getRadius())
.driveOutIn(fenceSaveReq.getDriveOutIn())
.isDelete(fenceSaveReq.getIsDelete())
.fenceState(fenceSaveReq.getFenceState())
.build();
} }
public String getName() /**
{ *
return name; */
} public static Fence editBuild(Long id, FenceEditReq fenceEditReq){
public void setFenceType(String fenceType) return Fence.builder()
{ .id(id)
this.fenceType = fenceType; .fenceName(fenceEditReq.getFenceName())
.groupId(fenceEditReq.getGroupId())
.longitudeAndLatitude(fenceEditReq.getLongitudeAndLatitude())
.fenceNote(fenceEditReq.getFenceNote())
.radius(fenceEditReq.getRadius())
.driveOutIn(fenceEditReq.getDriveOutIn())
.isDelete(fenceEditReq.getIsDelete())
.fenceState(fenceEditReq.getFenceState())
.build();
} }
public String getFenceType()
{
return fenceType;
}
public void setLongitudeAndLatitude(String longitudeAndLatitude)
{
this.longitudeAndLatitude = longitudeAndLatitude;
}
public String getLongitudeAndLatitude()
{
return longitudeAndLatitude;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("name", getName())
.append("fenceType", getFenceType())
.append("longitudeAndLatitude", getLongitudeAndLatitude())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
} }

View File

@ -0,0 +1,73 @@
package com.muyu.many.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.many.domain.req.GroupEditReq;
import com.muyu.many.domain.req.GroupQueryReq;
import com.muyu.many.domain.req.GroupSaveReq;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("`group`")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Group", description = "围栏组")
public class Group extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 围栏组名称 */
@Excel(name = "围栏组名称")
@ApiModelProperty(name = "围栏组名称", value = "围栏组名称")
private String groupName;
/**
*
*/
public static Group queryBuild( GroupQueryReq groupQueryReq){
return Group.builder()
.groupName(groupQueryReq.getGroupName())
.build();
}
/**
*
*/
public static Group saveBuild(GroupSaveReq groupSaveReq){
return Group.builder()
.groupName(groupSaveReq.getGroupName())
.build();
}
/**
*
*/
public static Group editBuild(Long id, GroupEditReq groupEditReq){
return Group.builder()
.id(id)
.groupName(groupEditReq.getGroupName())
.build();
}
}

View File

@ -1,258 +1,190 @@
package com.muyu.many.domain; package com.muyu.many.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.many.domain.req.VehicleEditReq;
import com.muyu.many.domain.req.VehicleQueryReq;
import com.muyu.many.domain.req.VehicleSaveReq;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
/** /**
* vehicle * vehicle
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
public class Vehicle extends BaseEntity @Data
{ @SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("vehicle")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Vehicle", description = "车辆")
public class Vehicle extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 车辆id */ /** 车辆id */
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(name = "车辆id", value = "车辆id")
private Long id; private Long id;
/** 车辆vin */ /** 车辆vin */
@Excel(name = "车辆vin") @Excel(name = "车辆vin")
@ApiModelProperty(name = "车辆vin", value = "车辆vin")
private String vin; private String vin;
/** 品牌 */ /** 品牌 */
@Excel(name = "品牌") @Excel(name = "品牌")
@ApiModelProperty(name = "品牌", value = "品牌")
private String brand; private String brand;
/** 型号 */ /** 型号 */
@Excel(name = "型号") @Excel(name = "型号")
@ApiModelProperty(name = "型号", value = "型号")
private String model; private String model;
/** 生产日期 */ /** 生产日期 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "生产日期", value = "生产日期")
private Date productionDate; private Date productionDate;
/** 车身类型 */ /** 车身类型 */
@Excel(name = "车身类型") @Excel(name = "车身类型")
@ApiModelProperty(name = "车身类型", value = "车身类型")
private String bodyType; private String bodyType;
/** 车身颜色 */ /** 车身颜色 */
@Excel(name = "车身颜色") @Excel(name = "车身颜色")
@ApiModelProperty(name = "车身颜色", value = "车身颜色")
private String color; private String color;
/** 发动机排量 */ /** 发动机排量 */
@Excel(name = "发动机排量") @Excel(name = "发动机排量")
@ApiModelProperty(name = "发动机排量", value = "发动机排量")
private BigDecimal engineCapacity; private BigDecimal engineCapacity;
/** 燃油类型 */ /** 燃油类型 */
@Excel(name = "燃油类型") @Excel(name = "燃油类型")
@ApiModelProperty(name = "燃油类型", value = "燃油类型")
private String fuelType; private String fuelType;
/** 变速器类型 */ /** 变速器类型 */
@Excel(name = "变速器类型") @Excel(name = "变速器类型")
@ApiModelProperty(name = "变速器类型", value = "变速器类型")
private String transmission; private String transmission;
/** 驱动方式 */ /** 驱动方式 */
@Excel(name = "驱动方式") @Excel(name = "驱动方式")
@ApiModelProperty(name = "驱动方式", value = "驱动方式")
private String driveType; private String driveType;
/** 行驶里程 */ /** 行驶里程 */
@Excel(name = "行驶里程") @Excel(name = "行驶里程")
@ApiModelProperty(name = "行驶里程", value = "行驶里程")
private BigDecimal mileage; private BigDecimal mileage;
/** 注册日期 */ /** 注册日期 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "注册日期", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "注册日期", value = "注册日期")
private Date registrationDate; private Date registrationDate;
/** 车牌号码 */ /** 车牌号码 */
@Excel(name = "车牌号码") @Excel(name = "车牌号码")
@ApiModelProperty(name = "车牌号码", value = "车牌号码")
private String licenseNumber; private String licenseNumber;
/** 持有者 */
@Excel(name = "持有者")
private String holder;
/** 车辆类型 */ /** 车辆类型 */
@Excel(name = "车辆类型") @Excel(name = "车辆类型")
@ApiModelProperty(name = "车辆类型", value = "车辆类型")
private String vehicleType; private String vehicleType;
public void setId(Long id) /** 电子围栏ID */
{ @Excel(name = "电子围栏ID")
this.id = id; @ApiModelProperty(name = "电子围栏ID", value = "电子围栏ID")
private Long fenceId;
/**
*
*/
public static Vehicle queryBuild( VehicleQueryReq vehicleQueryReq){
return Vehicle.builder()
.vin(vehicleQueryReq.getVin())
.brand(vehicleQueryReq.getBrand())
.model(vehicleQueryReq.getModel())
.productionDate(vehicleQueryReq.getProductionDate())
.bodyType(vehicleQueryReq.getBodyType())
.color(vehicleQueryReq.getColor())
.engineCapacity(vehicleQueryReq.getEngineCapacity())
.fuelType(vehicleQueryReq.getFuelType())
.transmission(vehicleQueryReq.getTransmission())
.driveType(vehicleQueryReq.getDriveType())
.mileage(vehicleQueryReq.getMileage())
.registrationDate(vehicleQueryReq.getRegistrationDate())
.licenseNumber(vehicleQueryReq.getLicenseNumber())
.vehicleType(vehicleQueryReq.getVehicleType())
.fenceId(vehicleQueryReq.getFenceId())
.build();
} }
public Long getId() /**
{ *
return id; */
} public static Vehicle saveBuild(VehicleSaveReq vehicleSaveReq){
public void setVin(String vin) return Vehicle.builder()
{ .vin(vehicleSaveReq.getVin())
this.vin = vin; .brand(vehicleSaveReq.getBrand())
.model(vehicleSaveReq.getModel())
.productionDate(vehicleSaveReq.getProductionDate())
.bodyType(vehicleSaveReq.getBodyType())
.color(vehicleSaveReq.getColor())
.engineCapacity(vehicleSaveReq.getEngineCapacity())
.fuelType(vehicleSaveReq.getFuelType())
.transmission(vehicleSaveReq.getTransmission())
.driveType(vehicleSaveReq.getDriveType())
.mileage(vehicleSaveReq.getMileage())
.registrationDate(vehicleSaveReq.getRegistrationDate())
.licenseNumber(vehicleSaveReq.getLicenseNumber())
.vehicleType(vehicleSaveReq.getVehicleType())
.fenceId(vehicleSaveReq.getFenceId())
.build();
} }
public String getVin() /**
{ *
return vin; */
} public static Vehicle editBuild(Long id, VehicleEditReq vehicleEditReq){
public void setBrand(String brand) return Vehicle.builder()
{ .id(id)
this.brand = brand; .vin(vehicleEditReq.getVin())
.brand(vehicleEditReq.getBrand())
.model(vehicleEditReq.getModel())
.productionDate(vehicleEditReq.getProductionDate())
.bodyType(vehicleEditReq.getBodyType())
.color(vehicleEditReq.getColor())
.engineCapacity(vehicleEditReq.getEngineCapacity())
.fuelType(vehicleEditReq.getFuelType())
.transmission(vehicleEditReq.getTransmission())
.driveType(vehicleEditReq.getDriveType())
.mileage(vehicleEditReq.getMileage())
.registrationDate(vehicleEditReq.getRegistrationDate())
.licenseNumber(vehicleEditReq.getLicenseNumber())
.vehicleType(vehicleEditReq.getVehicleType())
.fenceId(vehicleEditReq.getFenceId())
.build();
} }
public String getBrand()
{
return brand;
}
public void setModel(String model)
{
this.model = model;
}
public String getModel()
{
return model;
}
public void setProductionDate(Date productionDate)
{
this.productionDate = productionDate;
}
public Date getProductionDate()
{
return productionDate;
}
public void setBodyType(String bodyType)
{
this.bodyType = bodyType;
}
public String getBodyType()
{
return bodyType;
}
public void setColor(String color)
{
this.color = color;
}
public String getColor()
{
return color;
}
public void setEngineCapacity(BigDecimal engineCapacity)
{
this.engineCapacity = engineCapacity;
}
public BigDecimal getEngineCapacity()
{
return engineCapacity;
}
public void setFuelType(String fuelType)
{
this.fuelType = fuelType;
}
public String getFuelType()
{
return fuelType;
}
public void setTransmission(String transmission)
{
this.transmission = transmission;
}
public String getTransmission()
{
return transmission;
}
public void setDriveType(String driveType)
{
this.driveType = driveType;
}
public String getDriveType()
{
return driveType;
}
public void setMileage(BigDecimal mileage)
{
this.mileage = mileage;
}
public BigDecimal getMileage()
{
return mileage;
}
public void setRegistrationDate(Date registrationDate)
{
this.registrationDate = registrationDate;
}
public Date getRegistrationDate()
{
return registrationDate;
}
public void setLicenseNumber(String licenseNumber)
{
this.licenseNumber = licenseNumber;
}
public String getLicenseNumber()
{
return licenseNumber;
}
public void setHolder(String holder)
{
this.holder = holder;
}
public String getHolder()
{
return holder;
}
public void setVehicleType(String vehicleType)
{
this.vehicleType = vehicleType;
}
public String getVehicleType()
{
return vehicleType;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("vin", getVin())
.append("brand", getBrand())
.append("model", getModel())
.append("productionDate", getProductionDate())
.append("bodyType", getBodyType())
.append("color", getColor())
.append("engineCapacity", getEngineCapacity())
.append("fuelType", getFuelType())
.append("transmission", getTransmission())
.append("driveType", getDriveType())
.append("mileage", getMileage())
.append("registrationDate", getRegistrationDate())
.append("licenseNumber", getLicenseNumber())
.append("holder", getHolder())
.append("vehicleType", getVehicleType())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
} }

View File

@ -0,0 +1,58 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* fence
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "FenceEditReq", description = "电子围栏")
public class FenceEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 围栏名称 */
@ApiModelProperty(name = "围栏名称", value = "围栏名称")
private String fenceName;
/** 围栏组ID */
@ApiModelProperty(name = "围栏组ID", value = "围栏组ID")
private Long groupId;
/** 围栏经纬度 */
@ApiModelProperty(name = "围栏经纬度", value = "围栏经纬度")
private String longitudeAndLatitude;
/** 围栏备注 */
@ApiModelProperty(name = "围栏备注", value = "围栏备注")
private String fenceNote;
/** 半径 */
@ApiModelProperty(name = "半径", value = "半径")
private BigDecimal radius;
/** 驶入,驶出 */
@ApiModelProperty(name = "驶入,驶出", value = "驶入,驶出")
private String driveOutIn;
/** 是否删除 */
@ApiModelProperty(name = "是否删除", value = "是否删除")
private Long isDelete;
/** 围栏状态 */
@ApiModelProperty(name = "围栏状态", value = "围栏状态")
private Long fenceState;
}

View File

@ -0,0 +1,58 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* fence
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "FenceQueryReq", description = "电子围栏")
public class FenceQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 围栏名称 */
@ApiModelProperty(name = "围栏名称", value = "围栏名称")
private String fenceName;
/** 围栏组ID */
@ApiModelProperty(name = "围栏组ID", value = "围栏组ID")
private Long groupId;
/** 围栏经纬度 */
@ApiModelProperty(name = "围栏经纬度", value = "围栏经纬度")
private String longitudeAndLatitude;
/** 围栏备注 */
@ApiModelProperty(name = "围栏备注", value = "围栏备注")
private String fenceNote;
/** 半径 */
@ApiModelProperty(name = "半径", value = "半径")
private BigDecimal radius;
/** 驶入,驶出 */
@ApiModelProperty(name = "驶入,驶出", value = "驶入,驶出")
private String driveOutIn;
/** 是否删除 */
@ApiModelProperty(name = "是否删除", value = "是否删除")
private Long isDelete;
/** 围栏状态 */
@ApiModelProperty(name = "围栏状态", value = "围栏状态")
private Long fenceState;
}

View File

@ -0,0 +1,71 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* fence
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "FenceSaveReq", description = "电子围栏")
public class FenceSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 围栏名称 */
@ApiModelProperty(name = "围栏名称", value = "围栏名称")
private String fenceName;
/** 围栏组ID */
@ApiModelProperty(name = "围栏组ID", value = "围栏组ID")
private Long groupId;
/** 围栏经纬度 */
@ApiModelProperty(name = "围栏经纬度", value = "围栏经纬度")
private String longitudeAndLatitude;
/** 围栏备注 */
@ApiModelProperty(name = "围栏备注", value = "围栏备注")
private String fenceNote;
/** 半径 */
@ApiModelProperty(name = "半径", value = "半径")
private BigDecimal radius;
/** 驶入,驶出 */
@ApiModelProperty(name = "驶入,驶出", value = "驶入,驶出")
private String driveOutIn;
/** 是否删除 */
@ApiModelProperty(name = "是否删除", value = "是否删除")
private Long isDelete;
/** 围栏状态 */
@ApiModelProperty(name = "围栏状态", value = "围栏状态")
private Long fenceState;
}

View File

@ -0,0 +1,29 @@
package com.muyu.many.domain.req;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupEditReq", description = "围栏组")
public class GroupEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 围栏组名称 */
@ApiModelProperty(name = "围栏组名称", value = "围栏组名称")
private String groupName;
}

View File

@ -0,0 +1,29 @@
package com.muyu.many.domain.req;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupQueryReq", description = "围栏组")
public class GroupQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 围栏组名称 */
@ApiModelProperty(name = "围栏组名称", value = "围栏组名称")
private String groupName;
}

View File

@ -0,0 +1,35 @@
package com.muyu.many.domain.req;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* group
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "GroupSaveReq", description = "围栏组")
public class GroupSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
@ApiModelProperty(name = "主键", value = "主键")
private Long id;
/** 围栏组名称 */
@ApiModelProperty(name = "围栏组名称", value = "围栏组名称")
private String groupName;
}

View File

@ -0,0 +1,90 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* vehicle
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "VehicleEditReq", description = "车辆")
public class VehicleEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 车辆vin */
@ApiModelProperty(name = "车辆vin", value = "车辆vin")
private String vin;
/** 品牌 */
@ApiModelProperty(name = "品牌", value = "品牌")
private String brand;
/** 型号 */
@ApiModelProperty(name = "型号", value = "型号")
private String model;
/** 生产日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "生产日期", value = "生产日期")
private Date productionDate;
/** 车身类型 */
@ApiModelProperty(name = "车身类型", value = "车身类型")
private String bodyType;
/** 车身颜色 */
@ApiModelProperty(name = "车身颜色", value = "车身颜色")
private String color;
/** 发动机排量 */
@ApiModelProperty(name = "发动机排量", value = "发动机排量")
private BigDecimal engineCapacity;
/** 燃油类型 */
@ApiModelProperty(name = "燃油类型", value = "燃油类型")
private String fuelType;
/** 变速器类型 */
@ApiModelProperty(name = "变速器类型", value = "变速器类型")
private String transmission;
/** 驱动方式 */
@ApiModelProperty(name = "驱动方式", value = "驱动方式")
private String driveType;
/** 行驶里程 */
@ApiModelProperty(name = "行驶里程", value = "行驶里程")
private BigDecimal mileage;
/** 注册日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "注册日期", value = "注册日期")
private Date registrationDate;
/** 车牌号码 */
@ApiModelProperty(name = "车牌号码", value = "车牌号码")
private String licenseNumber;
/** 车辆类型 */
@ApiModelProperty(name = "车辆类型", value = "车辆类型")
private String vehicleType;
/** 电子围栏ID */
@ApiModelProperty(name = "电子围栏ID", value = "电子围栏ID")
private Long fenceId;
}

View File

@ -0,0 +1,90 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* vehicle
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "VehicleQueryReq", description = "车辆")
public class VehicleQueryReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 车辆vin */
@ApiModelProperty(name = "车辆vin", value = "车辆vin")
private String vin;
/** 品牌 */
@ApiModelProperty(name = "品牌", value = "品牌")
private String brand;
/** 型号 */
@ApiModelProperty(name = "型号", value = "型号")
private String model;
/** 生产日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "生产日期", value = "生产日期")
private Date productionDate;
/** 车身类型 */
@ApiModelProperty(name = "车身类型", value = "车身类型")
private String bodyType;
/** 车身颜色 */
@ApiModelProperty(name = "车身颜色", value = "车身颜色")
private String color;
/** 发动机排量 */
@ApiModelProperty(name = "发动机排量", value = "发动机排量")
private BigDecimal engineCapacity;
/** 燃油类型 */
@ApiModelProperty(name = "燃油类型", value = "燃油类型")
private String fuelType;
/** 变速器类型 */
@ApiModelProperty(name = "变速器类型", value = "变速器类型")
private String transmission;
/** 驱动方式 */
@ApiModelProperty(name = "驱动方式", value = "驱动方式")
private String driveType;
/** 行驶里程 */
@ApiModelProperty(name = "行驶里程", value = "行驶里程")
private BigDecimal mileage;
/** 注册日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "注册日期", value = "注册日期")
private Date registrationDate;
/** 车牌号码 */
@ApiModelProperty(name = "车牌号码", value = "车牌号码")
private String licenseNumber;
/** 车辆类型 */
@ApiModelProperty(name = "车辆类型", value = "车辆类型")
private String vehicleType;
/** 电子围栏ID */
@ApiModelProperty(name = "电子围栏ID", value = "电子围栏ID")
private Long fenceId;
}

View File

@ -0,0 +1,110 @@
package com.muyu.many.domain.req;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.experimental.SuperBuilder;
import io.swagger.annotations.*;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* vehicle
*
* @author wan
* @date 2024-06-17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "VehicleSaveReq", description = "车辆")
public class VehicleSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 车辆id */
@ApiModelProperty(name = "车辆id", value = "车辆id")
private Long id;
/** 车辆vin */
@ApiModelProperty(name = "车辆vin", value = "车辆vin")
private String vin;
/** 品牌 */
@ApiModelProperty(name = "品牌", value = "品牌")
private String brand;
/** 型号 */
@ApiModelProperty(name = "型号", value = "型号")
private String model;
/** 生产日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "生产日期", value = "生产日期")
private Date productionDate;
/** 车身类型 */
@ApiModelProperty(name = "车身类型", value = "车身类型")
private String bodyType;
/** 车身颜色 */
@ApiModelProperty(name = "车身颜色", value = "车身颜色")
private String color;
/** 发动机排量 */
@ApiModelProperty(name = "发动机排量", value = "发动机排量")
private BigDecimal engineCapacity;
/** 燃油类型 */
@ApiModelProperty(name = "燃油类型", value = "燃油类型")
private String fuelType;
/** 变速器类型 */
@ApiModelProperty(name = "变速器类型", value = "变速器类型")
private String transmission;
/** 驱动方式 */
@ApiModelProperty(name = "驱动方式", value = "驱动方式")
private String driveType;
/** 行驶里程 */
@ApiModelProperty(name = "行驶里程", value = "行驶里程")
private BigDecimal mileage;
/** 注册日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(name = "注册日期", value = "注册日期")
private Date registrationDate;
/** 车牌号码 */
@ApiModelProperty(name = "车牌号码", value = "车牌号码")
private String licenseNumber;
/** 车辆类型 */
@ApiModelProperty(name = "车辆类型", value = "车辆类型")
private String vehicleType;
/** 电子围栏ID */
@ApiModelProperty(name = "电子围栏ID", value = "电子围栏ID")
private Long fenceId;
}

View File

@ -28,5 +28,10 @@
<artifactId>muyu-modules-many-common</artifactId> <artifactId>muyu-modules-many-common</artifactId>
<version>3.6.3</version> <version>3.6.3</version>
</dependency> </dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-company-common</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -23,12 +23,6 @@
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> </dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel --> <!-- SpringCloud Alibaba Sentinel -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
@ -54,35 +48,18 @@
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
</dependency> </dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope --> <!-- MuYu Common DataScope -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId> <artifactId>muyu-common-datascope</artifactId>
</dependency> </dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-log</artifactId>
</dependency>
<!-- MuYu Common Swagger --> <!-- MuYu Common Swagger -->
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-common-swagger</artifactId> <artifactId>muyu-common-swagger</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.20</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
@ -109,18 +86,24 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.amqp</groupId> <groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId> <artifactId>spring-rabbit</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.muyu</groupId> <groupId>com.muyu</groupId>
<artifactId>muyu-modules-many-remote</artifactId> <artifactId>muyu-modules-many-common</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-modules-many-common</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-log</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@ -1,52 +1,59 @@
package com.muyu.authentication.controller; package com.muyu.authentication.controller;
import com.muyu.authentication.service.IFenceService; import java.util.List;
import com.muyu.common.core.domain.Result; import javax.servlet.http.HttpServletResponse;
import com.muyu.authentication.service.FenceService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.many.domain.Fence; import com.muyu.many.domain.Fence;
import com.muyu.many.domain.req.FenceEditReq;
import com.muyu.many.domain.req.FenceQueryReq;
import com.muyu.many.domain.req.FenceSaveReq;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* Controller * Controller
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
@Api(tags = "电子围栏")
@RestController @RestController
@RequestMapping("/fence") @RequestMapping("/fence")
public class FenceController extends BaseController public class FenceController extends BaseController {
{
@Autowired @Autowired
private IFenceService fenceService; private FenceService fenceService;
/** /**
* *
*/ */
@ApiOperation("获取电子围栏列表")
@GetMapping("/list") @GetMapping("/list")
public Result<TableDataInfo<Fence>> list(Fence fence,@RequestHeader("ent_code")String headerValue) public Result<TableDataInfo<Fence>> list(FenceQueryReq fenceQueryReq) {
{
startPage(); startPage();
List<Fence> list = fenceService.selectFenceList(fence,headerValue); List<Fence> list = fenceService.list(Fence.queryBuild(fenceQueryReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return getDataTable(list); return getDataTable(list);
} }
/** /**
* *
*/ */
@ApiOperation("导出电子围栏列表")
@Log(title = "电子围栏", businessType = BusinessType.EXPORT) @Log(title = "电子围栏", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, Fence fence,@RequestHeader("ent_code")String headerValue) public void export(HttpServletResponse response, Fence fence) {
{ List<Fence> list = fenceService.list(fence);
List<Fence> list = fenceService.selectFenceList(fence,headerValue); DynamicDataSourceHolder.removeDynamicDataSourceKey();
ExcelUtil<Fence> util = new ExcelUtil<Fence>(Fence.class); ExcelUtil<Fence> util = new ExcelUtil<Fence>(Fence.class);
util.exportExcel(response, list, "电子围栏数据"); util.exportExcel(response, list, "电子围栏数据");
} }
@ -54,10 +61,13 @@ public class FenceController extends BaseController
/** /**
* *
*/ */
@ApiOperation("获取电子围栏详细信息")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result getInfo(@PathVariable("id") Long id,@RequestHeader("ent_code")String headerValue) @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
{ public Result<Fence> getInfo(@PathVariable("id") Long id) {
return success(fenceService.selectFenceById(id,headerValue)); Fence byId = fenceService.getById(id);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return Result.success(byId);
} }
/** /**
@ -65,19 +75,23 @@ public class FenceController extends BaseController
*/ */
@Log(title = "电子围栏", businessType = BusinessType.INSERT) @Log(title = "电子围栏", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public Result add(@RequestBody Fence fence,@RequestHeader("ent_code")String headerValue) @ApiOperation("新增电子围栏")
{ public Result<String> add(@RequestBody FenceSaveReq fenceSaveReq) {
return toAjax(fenceService.insertFence(fence,headerValue)); boolean save = fenceService.save(Fence.saveBuild(fenceSaveReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(save);
} }
/** /**
* *
*/ */
@Log(title = "电子围栏", businessType = BusinessType.UPDATE) @Log(title = "电子围栏", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping("/{id}")
public Result edit(@RequestBody Fence fence,@RequestHeader("ent_code")String headerValue) @ApiOperation("修改电子围栏")
{ public Result<String> edit(@PathVariable Long id, @RequestBody FenceEditReq fenceEditReq) {
return toAjax(fenceService.updateFence(fence,headerValue)); boolean b = fenceService.updateById(Fence.editBuild(id, fenceEditReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
} }
/** /**
@ -85,8 +99,11 @@ public class FenceController extends BaseController
*/ */
@Log(title = "电子围栏", businessType = BusinessType.DELETE) @Log(title = "电子围栏", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result remove(@PathVariable Long[] ids,@RequestHeader("ent_code")String headerValue) @ApiOperation("删除电子围栏")
{ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
return toAjax(fenceService.deleteFenceByIds(ids,headerValue)); public Result<String> remove(@PathVariable List<Long> ids) {
boolean b = fenceService.removeBatchByIds(ids);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
} }
} }

View File

@ -0,0 +1,117 @@
package com.muyu.authentication.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.muyu.authentication.service.GroupService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.many.domain.Group;
import com.muyu.many.domain.req.GroupEditReq;
import com.muyu.many.domain.req.GroupQueryReq;
import com.muyu.many.domain.req.GroupSaveReq;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions;
/**
* Controller
*
* @author wan
* @date 2024-06-17
*/
@Api(tags = "围栏组")
@RestController
@RequestMapping("/group")
public class GroupController extends BaseController {
@Autowired
private GroupService groupService;
/**
*
*/
@ApiOperation("获取围栏组列表")
@GetMapping("/list")
public Result<TableDataInfo<Group>> list(GroupQueryReq groupQueryReq) {
startPage();
List<Group> list = groupService.list(Group.queryBuild(groupQueryReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return getDataTable(list);
}
/**
*
*/
@ApiOperation("导出围栏组列表")
@Log(title = "围栏组", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Group group) {
List<Group> list = groupService.list(group);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
ExcelUtil<Group> util = new ExcelUtil<Group>(Group.class);
util.exportExcel(response, list, "围栏组数据");
}
/**
*
*/
@ApiOperation("获取围栏组详细信息")
@GetMapping(value = "/{id}")
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
public Result<Group> getInfo(@PathVariable("id") Long id) {
Group byId = groupService.getById(id);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return Result.success(byId);
}
/**
*
*/
@Log(title = "围栏组", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("新增围栏组")
public Result<String> add(@RequestBody GroupSaveReq groupSaveReq) {
boolean save = groupService.save(Group.saveBuild(groupSaveReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(save);
}
/**
*
*/
@Log(title = "围栏组", businessType = BusinessType.UPDATE)
@PutMapping("/{id}")
@ApiOperation("修改围栏组")
public Result<String> edit(@PathVariable Long id, @RequestBody GroupEditReq groupEditReq) {
boolean b = groupService.updateById(Group.editBuild(id, groupEditReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
}
/**
*
*/
@Log(title = "围栏组", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
@ApiOperation("删除围栏组")
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
public Result<String> remove(@PathVariable List<Long> ids) {
boolean b = groupService.removeBatchByIds(ids);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
}
}

View File

@ -23,9 +23,9 @@ public class ManyEnterpriseController {
private ManyEnterpriseService manyEnterpriseService; private ManyEnterpriseService manyEnterpriseService;
@PostMapping("/AllList") @PostMapping("/AllList")
public Result<List<Enterprise>> AllList(@RequestHeader("ent_code") String headerValue){ public Result<List<Enterprise>> AllList(){
return Result.success( return Result.success(
manyEnterpriseService.AllList(headerValue) manyEnterpriseService.AllList()
); );
} }

View File

@ -1,52 +1,67 @@
package com.muyu.authentication.controller; package com.muyu.authentication.controller;
import com.muyu.authentication.service.IVehicleService; import java.util.List;
import com.muyu.common.core.domain.Result; import javax.servlet.http.HttpServletResponse;
import com.muyu.authentication.service.VehicleService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.many.domain.Vehicle;
import com.muyu.many.domain.req.VehicleEditReq;
import com.muyu.many.domain.req.VehicleQueryReq;
import com.muyu.many.domain.req.VehicleSaveReq;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.log.annotation.Log; import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType; import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.many.domain.Vehicle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* Controller * Controller
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
@Api(tags = "车辆")
@RestController @RestController
@RequestMapping("/vehicle") @RequestMapping("/vehicle")
public class VehicleController extends BaseController public class VehicleController extends BaseController {
{
@Autowired @Autowired
private IVehicleService vehicleService; private VehicleService vehicleService;
/** /**
* *
*/ */
@ApiOperation("获取车辆列表")
@GetMapping("/list") @GetMapping("/list")
public Result<TableDataInfo<Vehicle>> list(Vehicle vehicle,@RequestHeader("ent_code") String entCode) public Result<TableDataInfo<Vehicle>> list(VehicleQueryReq vehicleQueryReq) {
{
startPage(); startPage();
List<Vehicle> list = vehicleService.selectVehicleList(vehicle, entCode); List<Vehicle> list = vehicleService.list(Vehicle.queryBuild(vehicleQueryReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return getDataTable(list); return getDataTable(list);
} }
/** /**
* *
*/ */
@ApiOperation("导出车辆列表")
@Log(title = "车辆", businessType = BusinessType.EXPORT) @Log(title = "车辆", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, Vehicle vehicle,@RequestHeader("ent_code") String entCode) public void export(HttpServletResponse response, Vehicle vehicle) {
{ List<Vehicle> list = vehicleService.list(vehicle);
List<Vehicle> list = vehicleService.selectVehicleList(vehicle, entCode); DynamicDataSourceHolder.removeDynamicDataSourceKey();
ExcelUtil<Vehicle> util = new ExcelUtil<Vehicle>(Vehicle.class); ExcelUtil<Vehicle> util = new ExcelUtil<Vehicle>(Vehicle.class);
util.exportExcel(response, list, "车辆数据"); util.exportExcel(response, list, "车辆数据");
} }
@ -54,10 +69,13 @@ public class VehicleController extends BaseController
/** /**
* *
*/ */
@ApiOperation("获取车辆详细信息")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public Result getInfo(@PathVariable("id") Long id,@RequestHeader("ent_code") String entCode) @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = Long.class)
{ public Result<Vehicle> getInfo(@PathVariable("id") Long id) {
return success(vehicleService.selectVehicleById(id,entCode)); Vehicle byId = vehicleService.getById(id);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return Result.success(byId);
} }
/** /**
@ -65,19 +83,23 @@ public class VehicleController extends BaseController
*/ */
@Log(title = "车辆", businessType = BusinessType.INSERT) @Log(title = "车辆", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public Result add(@RequestBody Vehicle vehicle,@RequestHeader("ent_code") String entCode) @ApiOperation("新增车辆")
{ public Result<String> add(@RequestBody VehicleSaveReq vehicleSaveReq) {
return toAjax(vehicleService.insertVehicle(vehicle,entCode)); boolean save = vehicleService.save(Vehicle.saveBuild(vehicleSaveReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(save);
} }
/** /**
* *
*/ */
@Log(title = "车辆", businessType = BusinessType.UPDATE) @Log(title = "车辆", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping("/{id}")
public Result edit(@RequestBody Vehicle vehicle,@RequestHeader("ent_code") String entCode) @ApiOperation("修改车辆")
{ public Result<String> edit(@PathVariable Long id, @RequestBody VehicleEditReq vehicleEditReq) {
return toAjax(vehicleService.updateVehicle(vehicle,entCode)); boolean b = vehicleService.updateById(Vehicle.editBuild(id, vehicleEditReq));
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
} }
/** /**
@ -85,8 +107,11 @@ public class VehicleController extends BaseController
*/ */
@Log(title = "车辆", businessType = BusinessType.DELETE) @Log(title = "车辆", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public Result remove(@PathVariable Long[] ids,@RequestHeader("ent_code") String entCode) @ApiOperation("删除车辆")
{ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
return toAjax(vehicleService.deleteVehicleByIds(ids,entCode)); public Result<String> remove(@PathVariable List<Long> ids) {
boolean b = vehicleService.removeBatchByIds(ids);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
} }
} }

View File

@ -1,64 +1,15 @@
package com.muyu.authentication.mapper; package com.muyu.authentication.mapper;
import com.muyu.many.domain.Fence;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.many.domain.Fence;
/** /**
* Mapper * Mapper
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
public interface FenceMapper public interface FenceMapper extends BaseMapper<Fence> {
{
/**
*
*
* @param id
* @return
*/
public Fence selectFenceById(Long id);
/**
*
*
* @param fence
* @return
*/
public List<Fence> selectFenceList(Fence fence);
/**
*
*
* @param fence
* @return
*/
public int insertFence(Fence fence);
/**
*
*
* @param fence
* @return
*/
public int updateFence(Fence fence);
/**
*
*
* @param id
* @return
*/
public int deleteFenceById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteFenceByIds(Long[] ids);
} }

View File

@ -0,0 +1,15 @@
package com.muyu.authentication.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.many.domain.Group;
/**
* Mapper
*
* @author wan
* @date 2024-06-17
*/
public interface GroupMapper extends BaseMapper<Group> {
}

View File

@ -1,64 +1,15 @@
package com.muyu.authentication.mapper; package com.muyu.authentication.mapper;
import com.muyu.many.domain.Vehicle;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.many.domain.Vehicle;
/** /**
* Mapper * Mapper
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
public interface VehicleMapper public interface VehicleMapper extends BaseMapper<Vehicle> {
{
/**
*
*
* @param id
* @return
*/
public Vehicle selectVehicleById(Long id);
/**
*
*
* @param vehicle
* @return
*/
public List<Vehicle> selectVehicleList(Vehicle vehicle);
/**
*
*
* @param vehicle
* @return
*/
public int insertVehicle(Vehicle vehicle);
/**
*
*
* @param vehicle
* @return
*/
public int updateVehicle(Vehicle vehicle);
/**
*
*
* @param id
* @return
*/
public int deleteVehicleById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteVehicleByIds(Long[] ids);
} }

View File

@ -0,0 +1,23 @@
package com.muyu.authentication.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.many.domain.Fence;
import java.util.List;
/**
* Service
*
* @author wan
* @date 2024-06-17
*/
public interface FenceService extends IService<Fence> {
/**
*
*
* @param fence
* @return
*/
public List<Fence> list(Fence fence);
}

View File

@ -0,0 +1,23 @@
package com.muyu.authentication.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.many.domain.Group;
import java.util.List;
/**
* Service
*
* @author wan
* @date 2024-06-17
*/
public interface GroupService extends IService<Group> {
/**
*
*
* @param group
* @return
*/
public List<Group> list(Group group);
}

View File

@ -1,64 +0,0 @@
package com.muyu.authentication.service;
import com.muyu.many.domain.Fence;
import java.util.List;
/**
* Service
*
* @author wan
* @date 2024-05-31
*/
public interface IFenceService
{
/**
*
*
* @param id
* @return
*/
public Fence selectFenceById(Long id,String headerValue);
/**
*
*
* @param fence
* @return
*/
public List<Fence> selectFenceList(Fence fence,String headerValue);
/**
*
*
* @param fence
* @return
*/
public int insertFence(Fence fence,String headerValue);
/**
*
*
* @param fence
* @return
*/
public int updateFence(Fence fence,String headerValue);
/**
*
*
* @param ids
* @return
*/
public int deleteFenceByIds(Long[] ids,String headerValue);
/**
*
*
* @param id
* @return
*/
public int deleteFenceById(Long id,String headerValue);
}

View File

@ -12,7 +12,7 @@ import java.util.List;
*/ */
public interface ManyEnterpriseService extends IService<Enterprise> { public interface ManyEnterpriseService extends IService<Enterprise> {
List<Enterprise> AllList(String headerValue); List<Enterprise> AllList();
} }

View File

@ -0,0 +1,23 @@
package com.muyu.authentication.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.many.domain.Vehicle;
import java.util.List;
/**
* Service
*
* @author wan
* @date 2024-06-17
*/
public interface VehicleService extends IService<Vehicle> {
/**
*
*
* @param vehicle
* @return
*/
public List<Vehicle> list(Vehicle vehicle);
}

View File

@ -1,10 +1,13 @@
package com.muyu.authentication.service.impl; package com.muyu.authentication.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.authentication.mapper.FenceMapper; import com.muyu.authentication.mapper.FenceMapper;
import com.muyu.authentication.service.IFenceService; import com.muyu.authentication.service.FenceService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder; import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.utils.DateUtils; import com.muyu.common.core.utils.ObjUtils;
import com.muyu.many.domain.Fence; import com.muyu.many.domain.Fence;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -14,28 +17,11 @@ import java.util.List;
* Service * Service
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
@Slf4j
@Service @Service
public class FenceServiceImpl implements IFenceService public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements FenceService {
{
@Autowired
private FenceMapper fenceMapper;
/**
*
*
* @param id
* @return
*/
@Override
public Fence selectFenceById(Long id,String headerValue)
{
getMany(headerValue);
Fence fence = fenceMapper.selectFenceById(id);
getManyDelete();
return fence;
}
/** /**
* *
@ -44,86 +30,44 @@ public class FenceServiceImpl implements IFenceService
* @return * @return
*/ */
@Override @Override
public List<Fence> selectFenceList(Fence fence,String headerValue) public List<Fence> list(Fence fence) {
{
getMany(headerValue);
List<Fence> fences = fenceMapper.selectFenceList(fence);
getManyDelete();
return fences;
LambdaQueryWrapper<Fence> queryWrapper = new LambdaQueryWrapper<>();
if (ObjUtils.notNull(fence.getFenceName())){
queryWrapper.like(Fence::getFenceName, fence.getFenceName());
} }
/** if (ObjUtils.notNull(fence.getGroupId())){
* queryWrapper.eq(Fence::getGroupId, fence.getGroupId());
*
* @param fence
* @return
*/
@Override
public int insertFence(Fence fence,String headerValue)
{
getMany(headerValue);
fence.setCreateTime(DateUtils.getNowDate());
int i = fenceMapper.insertFence(fence);
getManyDelete();
return i;
} }
/** if (ObjUtils.notNull(fence.getLongitudeAndLatitude())){
* queryWrapper.eq(Fence::getLongitudeAndLatitude, fence.getLongitudeAndLatitude());
*
* @param fence
* @return
*/
@Override
public int updateFence(Fence fence,String headerValue)
{
getMany(headerValue);
fence.setUpdateTime(DateUtils.getNowDate());
int i = fenceMapper.updateFence(fence);
getManyDelete();
return i;
} }
/** if (ObjUtils.notNull(fence.getFenceNote())){
* queryWrapper.eq(Fence::getFenceNote, fence.getFenceNote());
*
* @param ids
* @return
*/
@Override
public int deleteFenceByIds(Long[] ids,String headerValue)
{
getMany(headerValue);
int i = fenceMapper.deleteFenceByIds(ids);
getManyDelete();
return i;
} }
/** if (ObjUtils.notNull(fence.getRadius())){
* queryWrapper.eq(Fence::getRadius, fence.getRadius());
*
* @param id
* @return
*/
@Override
public int deleteFenceById(Long id,String headerValue)
{
getMany(headerValue);
int i = fenceMapper.deleteFenceById(id);
getManyDelete();
return i;
} }
public void getMany(String entCode){ if (ObjUtils.notNull(fence.getDriveOutIn())){
//切换数据库 切换到从数据库 queryWrapper.eq(Fence::getDriveOutIn, fence.getDriveOutIn());
DynamicDataSourceHolder.setDynamicDataSourceKey(entCode);
} }
public void getManyDelete (){
//切换数据库 切换到从数据库 if (ObjUtils.notNull(fence.getIsDelete())){
DynamicDataSourceHolder.removeDynamicDataSourceKey(); queryWrapper.eq(Fence::getIsDelete, fence.getIsDelete());
}
if (ObjUtils.notNull(fence.getFenceState())){
queryWrapper.eq(Fence::getFenceState, fence.getFenceState());
}
return list(queryWrapper);
} }
} }

View File

@ -0,0 +1,40 @@
package com.muyu.authentication.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.authentication.mapper.GroupMapper;
import com.muyu.authentication.service.GroupService;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.many.domain.Group;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Service
*
* @author wan
* @date 2024-06-17
*/
@Slf4j
@Service
public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements GroupService {
/**
*
*
* @param group
* @return
*/
@Override
public List<Group> list(Group group) {
LambdaQueryWrapper<Group> queryWrapper = new LambdaQueryWrapper<>();
if (ObjUtils.notNull(group.getGroupName())){
queryWrapper.like(Group::getGroupName, group.getGroupName());
}
return list(queryWrapper);
}
}

View File

@ -27,9 +27,8 @@ public class ManyEnterpriseServiceImpl extends ServiceImpl<ManyEnterpriseMapper,
private ManyEnterpriseMapper manyEnterpriseMapper; private ManyEnterpriseMapper manyEnterpriseMapper;
@Override @Override
public List<Enterprise> AllList(String headerValue) { public List<Enterprise> AllList() {
//切换数据库 切换到从数据库
DynamicDataSourceHolder.setDynamicDataSourceKey(headerValue);
List<Enterprise> enterprises = manyEnterpriseMapper.selectList(null); List<Enterprise> enterprises = manyEnterpriseMapper.selectList(null);
DynamicDataSourceHolder.removeDynamicDataSourceKey(); DynamicDataSourceHolder.removeDynamicDataSourceKey();
return enterprises; return enterprises;

View File

@ -1,127 +1,101 @@
package com.muyu.authentication.service.impl; package com.muyu.authentication.service.impl;
import com.muyu.authentication.mapper.VehicleMapper;
import com.muyu.authentication.service.IVehicleService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.utils.DateUtils;
import com.muyu.many.domain.Vehicle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.UUID;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.authentication.mapper.VehicleMapper;
import com.muyu.authentication.service.VehicleService;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.many.domain.Vehicle;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
/** /**
* Service * Service
* *
* @author wan * @author wan
* @date 2024-05-31 * @date 2024-06-17
*/ */
@Slf4j
@Service @Service
public class VehicleServiceImpl implements IVehicleService public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> implements VehicleService {
{
@Autowired
private VehicleMapper vehicleMapper;
/**
*
*
* @param id
* @return
*/
@Override
public Vehicle selectVehicleById(Long id, String entCode)
{
getMany(entCode);
Vehicle vehicle = vehicleMapper.selectVehicleById(id);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return vehicle;
}
/** /**
* *
* *
* @param vehicle * @param vehicle
* @param entCode
* @return * @return
*/ */
@Override @Override
public List<Vehicle> selectVehicleList(Vehicle vehicle, String entCode) public List<Vehicle> list(Vehicle vehicle) {
{ LambdaQueryWrapper<Vehicle> queryWrapper = new LambdaQueryWrapper<>();
getMany(entCode);
List<Vehicle> vehicles = vehicleMapper.selectVehicleList(vehicle);
DynamicDataSourceHolder.removeDynamicDataSourceKey(); if (ObjUtils.notNull(vehicle.getVin())){
return vehicles; queryWrapper.eq(Vehicle::getVin, vehicle.getVin());
} }
/** if (ObjUtils.notNull(vehicle.getBrand())){
* queryWrapper.eq(Vehicle::getBrand, vehicle.getBrand());
*
* @param vehicle
* @return
*/
@Override
public int insertVehicle(Vehicle vehicle, String entCode)
{
getMany(entCode);
vehicle.setCreateTime(DateUtils.getNowDate());
String userKey = UUID.randomUUID().toString();
vehicle.setVin(userKey);
int i = vehicleMapper.insertVehicle(vehicle);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return i;
} }
/** if (ObjUtils.notNull(vehicle.getModel())){
* queryWrapper.eq(Vehicle::getModel, vehicle.getModel());
*
* @param vehicle
* @return
*/
@Override
public int updateVehicle(Vehicle vehicle, String entCode)
{
getMany(entCode);
vehicle.setUpdateTime(DateUtils.getNowDate());
int i = vehicleMapper.updateVehicle(vehicle);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return i;
} }
/** if (ObjUtils.notNull(vehicle.getProductionDate())){
* queryWrapper.eq(Vehicle::getProductionDate, vehicle.getProductionDate());
*
* @param ids
* @return
*/
@Override
public int deleteVehicleByIds(Long[] ids, String entCode)
{
getMany(entCode);
int i = vehicleMapper.deleteVehicleByIds(ids);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return i;
} }
/** if (ObjUtils.notNull(vehicle.getBodyType())){
* queryWrapper.eq(Vehicle::getBodyType, vehicle.getBodyType());
*
* @param id
* @return
*/
@Override
public int deleteVehicleById(Long id, String entCode)
{
getMany(entCode);
int i = vehicleMapper.deleteVehicleById(id);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return i;
} }
public void getMany(String entCode){ if (ObjUtils.notNull(vehicle.getColor())){
//切换数据库 切换到从数据库 queryWrapper.eq(Vehicle::getColor, vehicle.getColor());
DynamicDataSourceHolder.setDynamicDataSourceKey(entCode); }
if (ObjUtils.notNull(vehicle.getEngineCapacity())){
queryWrapper.eq(Vehicle::getEngineCapacity, vehicle.getEngineCapacity());
}
if (ObjUtils.notNull(vehicle.getFuelType())){
queryWrapper.eq(Vehicle::getFuelType, vehicle.getFuelType());
}
if (ObjUtils.notNull(vehicle.getTransmission())){
queryWrapper.eq(Vehicle::getTransmission, vehicle.getTransmission());
}
if (ObjUtils.notNull(vehicle.getDriveType())){
queryWrapper.eq(Vehicle::getDriveType, vehicle.getDriveType());
}
if (ObjUtils.notNull(vehicle.getMileage())){
queryWrapper.eq(Vehicle::getMileage, vehicle.getMileage());
}
if (ObjUtils.notNull(vehicle.getRegistrationDate())){
queryWrapper.eq(Vehicle::getRegistrationDate, vehicle.getRegistrationDate());
}
if (ObjUtils.notNull(vehicle.getLicenseNumber())){
queryWrapper.eq(Vehicle::getLicenseNumber, vehicle.getLicenseNumber());
}
if (ObjUtils.notNull(vehicle.getVehicleType())){
queryWrapper.eq(Vehicle::getVehicleType, vehicle.getVehicleType());
}
if (ObjUtils.notNull(vehicle.getFenceId())){
queryWrapper.eq(Vehicle::getFenceId, vehicle.getFenceId());
}
return list(queryWrapper);
} }
} }

View File

@ -2,13 +2,18 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.authentication.mapper.FenceMapper"> <mapper namespace="com.muyu.fence.mapper.FenceMapper">
<resultMap type="com.muyu.many.domain.Fence" id="FenceResult"> <resultMap type="com.muyu.many.domain.Fence" id="FenceResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="name" column="name" /> <result property="fenceName" column="fence_name" />
<result property="fenceType" column="fence_type" /> <result property="groupId" column="group_id" />
<result property="longitudeAndLatitude" column="longitude_and_latitude" /> <result property="longitudeAndLatitude" column="longitude_and_latitude" />
<result property="fenceNote" column="fence_note" />
<result property="radius" column="radius" />
<result property="driveOutIn" column="drive_out_in" />
<result property="isDelete" column="is_delete" />
<result property="fenceState" column="fence_state" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
@ -17,70 +22,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectFenceVo"> <sql id="selectFenceVo">
select id, name, fence_type, longitude_and_latitude, create_by, create_time, update_by, update_time, remark from fence select id, fence_name, group_id, longitude_and_latitude, fence_note, radius, drive_out_in, is_delete, fence_state, create_by, create_time, update_by, update_time, remark from fence
</sql> </sql>
<select id="selectFenceList" parameterType="com.muyu.many.domain.Fence" resultMap="FenceResult">
<include refid="selectFenceVo"/>
<where>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="fenceType != null and fenceType != ''"> and fence_type = #{fenceType}</if>
<if test="longitudeAndLatitude != null and longitudeAndLatitude != ''"> and longitude_and_latitude = #{longitudeAndLatitude}</if>
</where>
</select>
<select id="selectFenceById" parameterType="Long" resultMap="FenceResult">
<include refid="selectFenceVo"/>
where id = #{id}
</select>
<insert id="insertFence" parameterType="com.muyu.many.domain.Fence" useGeneratedKeys="true" keyProperty="id">
insert into fence
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null">name,</if>
<if test="fenceType != null">fence_type,</if>
<if test="longitudeAndLatitude != null">longitude_and_latitude,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="name != null">#{name},</if>
<if test="fenceType != null">#{fenceType},</if>
<if test="longitudeAndLatitude != null">#{longitudeAndLatitude},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateFence" parameterType="com.muyu.many.domain.Fence">
update fence
<trim prefix="SET" suffixOverrides=",">
<if test="name != null">name = #{name},</if>
<if test="fenceType != null">fence_type = #{fenceType},</if>
<if test="longitudeAndLatitude != null">longitude_and_latitude = #{longitudeAndLatitude},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteFenceById" parameterType="Long">
delete from fence where id = #{id}
</delete>
<delete id="deleteFenceByIds" parameterType="String">
delete from fence where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper> </mapper>

View File

@ -0,0 +1,20 @@
<?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.muyu.group.mapper.GroupMapper">
<resultMap type="com.muyu.many.domain.Group" id="GroupResult">
<result property="id" column="id" />
<result property="groupName" column="group_name" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectGroupVo">
select id, group_name, create_by, create_time, update_by, update_time, remark from `group`
</sql>
</mapper>

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.authentication.mapper.VehicleMapper"> <mapper namespace="com.muyu.vehicle.mapper.VehicleMapper">
<resultMap type="com.muyu.many.domain.Vehicle" id="VehicleResult"> <resultMap type="com.muyu.many.domain.Vehicle" id="VehicleResult">
<result property="id" column="id" /> <result property="id" column="id" />
@ -19,8 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="mileage" column="mileage" /> <result property="mileage" column="mileage" />
<result property="registrationDate" column="registration_date" /> <result property="registrationDate" column="registration_date" />
<result property="licenseNumber" column="license_number" /> <result property="licenseNumber" column="license_number" />
<result property="holder" column="holder" />
<result property="vehicleType" column="vehicle_type" /> <result property="vehicleType" column="vehicle_type" />
<result property="fenceId" column="fence_id" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
@ -29,118 +29,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectVehicleVo"> <sql id="selectVehicleVo">
select id, vin, brand, model, production_date, body_type, color, engine_capacity, fuel_type, transmission, drive_type, mileage, registration_date, license_number, holder, vehicle_type, create_by, create_time, update_by, update_time, remark from vehicle select id, vin, brand, model, production_date, body_type, color, engine_capacity, fuel_type, transmission, drive_type, mileage, registration_date, license_number, vehicle_type, fence_id, create_by, create_time, update_by, update_time, remark from vehicle
</sql> </sql>
<select id="selectVehicleList" parameterType="com.muyu.many.domain.Vehicle" resultMap="VehicleResult">
<include refid="selectVehicleVo"/>
<where>
<if test="vin != null and vin != ''"> and vin = #{vin}</if>
<if test="brand != null and brand != ''"> and brand = #{brand}</if>
<if test="model != null and model != ''"> and model = #{model}</if>
<if test="productionDate != null "> and production_date = #{productionDate}</if>
<if test="bodyType != null and bodyType != ''"> and body_type = #{bodyType}</if>
<if test="color != null and color != ''"> and color = #{color}</if>
<if test="engineCapacity != null "> and engine_capacity = #{engineCapacity}</if>
<if test="fuelType != null and fuelType != ''"> and fuel_type = #{fuelType}</if>
<if test="transmission != null and transmission != ''"> and transmission = #{transmission}</if>
<if test="driveType != null and driveType != ''"> and drive_type = #{driveType}</if>
<if test="mileage != null "> and mileage = #{mileage}</if>
<if test="registrationDate != null "> and registration_date = #{registrationDate}</if>
<if test="licenseNumber != null and licenseNumber != ''"> and license_number = #{licenseNumber}</if>
<if test="holder != null and holder != ''"> and holder = #{holder}</if>
<if test="vehicleType != null and vehicleType != ''"> and vehicle_type = #{vehicleType}</if>
</where>
</select>
<select id="selectVehicleById" parameterType="Long" resultMap="VehicleResult">
<include refid="selectVehicleVo"/>
where id = #{id}
</select>
<insert id="insertVehicle" parameterType="com.muyu.many.domain.Vehicle" useGeneratedKeys="true" keyProperty="id">
insert into vehicle
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="vin != null">vin,</if>
<if test="brand != null">brand,</if>
<if test="model != null">model,</if>
<if test="productionDate != null">production_date,</if>
<if test="bodyType != null">body_type,</if>
<if test="color != null">color,</if>
<if test="engineCapacity != null">engine_capacity,</if>
<if test="fuelType != null">fuel_type,</if>
<if test="transmission != null">transmission,</if>
<if test="driveType != null">drive_type,</if>
<if test="mileage != null">mileage,</if>
<if test="registrationDate != null">registration_date,</if>
<if test="licenseNumber != null">license_number,</if>
<if test="holder != null">holder,</if>
<if test="vehicleType != null">vehicle_type,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="vin != null">#{vin},</if>
<if test="brand != null">#{brand},</if>
<if test="model != null">#{model},</if>
<if test="productionDate != null">#{productionDate},</if>
<if test="bodyType != null">#{bodyType},</if>
<if test="color != null">#{color},</if>
<if test="engineCapacity != null">#{engineCapacity},</if>
<if test="fuelType != null">#{fuelType},</if>
<if test="transmission != null">#{transmission},</if>
<if test="driveType != null">#{driveType},</if>
<if test="mileage != null">#{mileage},</if>
<if test="registrationDate != null">#{registrationDate},</if>
<if test="licenseNumber != null">#{licenseNumber},</if>
<if test="holder != null">#{holder},</if>
<if test="vehicleType != null">#{vehicleType},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
</trim>
</insert>
<update id="updateVehicle" parameterType="com.muyu.many.domain.Vehicle">
update vehicle
<trim prefix="SET" suffixOverrides=",">
<if test="vin != null">vin = #{vin},</if>
<if test="brand != null">brand = #{brand},</if>
<if test="model != null">model = #{model},</if>
<if test="productionDate != null">production_date = #{productionDate},</if>
<if test="bodyType != null">body_type = #{bodyType},</if>
<if test="color != null">color = #{color},</if>
<if test="engineCapacity != null">engine_capacity = #{engineCapacity},</if>
<if test="fuelType != null">fuel_type = #{fuelType},</if>
<if test="transmission != null">transmission = #{transmission},</if>
<if test="driveType != null">drive_type = #{driveType},</if>
<if test="mileage != null">mileage = #{mileage},</if>
<if test="registrationDate != null">registration_date = #{registrationDate},</if>
<if test="licenseNumber != null">license_number = #{licenseNumber},</if>
<if test="holder != null">holder = #{holder},</if>
<if test="vehicleType != null">vehicle_type = #{vehicleType},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteVehicleById" parameterType="Long">
delete from vehicle where id = #{id}
</delete>
<delete id="deleteVehicleByIds" parameterType="String">
delete from vehicle where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper> </mapper>