feat: 电子围栏编辑和化多边形
parent
42c80590ff
commit
ef85dad9c9
|
@ -14,8 +14,12 @@ import lombok.EqualsAndHashCode;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: LiJiaYao
|
* @Author: LiJiaYao
|
||||||
|
@ -37,6 +41,8 @@ public class Fence extends BaseEntity{
|
||||||
/**
|
/**
|
||||||
* 围栏名称
|
* 围栏名称
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@NotEmpty(message = "围栏名称不能为空")
|
||||||
private String fenceName;
|
private String fenceName;
|
||||||
/**
|
/**
|
||||||
* 围栏经纬度
|
* 围栏经纬度
|
||||||
|
@ -45,6 +51,7 @@ public class Fence extends BaseEntity{
|
||||||
/**
|
/**
|
||||||
* 围栏描述
|
* 围栏描述
|
||||||
*/
|
*/
|
||||||
|
@NotEmpty(message = "围栏描述不能为空")
|
||||||
private String fenceDescription;
|
private String fenceDescription;
|
||||||
/**
|
/**
|
||||||
* 是否删除
|
* 是否删除
|
||||||
|
@ -66,15 +73,15 @@ public class Fence extends BaseEntity{
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
*/
|
*/
|
||||||
|
@NotEmpty(message = "创建人不能为空")
|
||||||
private String createName;
|
private String createName;
|
||||||
/**
|
/**
|
||||||
* 维护人
|
* 维护人
|
||||||
*/
|
*/
|
||||||
|
@NotEmpty(message = "维护人不能为空")
|
||||||
private String maintainerName;
|
private String maintainerName;
|
||||||
/**
|
/**
|
||||||
* 告警状态
|
* 告警状态
|
||||||
|
@ -86,7 +93,7 @@ public class Fence extends BaseEntity{
|
||||||
/**
|
/**
|
||||||
* 标识
|
* 标识
|
||||||
*/
|
*/
|
||||||
private Integer[] logoId;
|
private Integer logoId;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String logoName;
|
private String logoName;
|
||||||
|
|
||||||
|
|
|
@ -15,13 +15,9 @@ import lombok.NoArgsConstructor;
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class FenceConfig {
|
public class FenceConfig {
|
||||||
|
|
||||||
|
|
||||||
private String fenceName;
|
private String fenceName;
|
||||||
/**
|
/**
|
||||||
* 围栏状态
|
* 围栏状态
|
||||||
*/
|
*/
|
||||||
private Integer fenceState;
|
private Integer fenceState;
|
||||||
private Integer pageNum=1;
|
|
||||||
private Integer pageSize=3;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: LiJiaYao
|
* @Author: LiJiaYao
|
||||||
|
@ -69,5 +70,5 @@ public class FenceRequest {
|
||||||
* 标识
|
* 标识
|
||||||
*/
|
*/
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String[] logoId;
|
private String[] logoIds;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,6 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.couplet.common.core.utils.PageUtils.startPage;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: LiJiaYao
|
* @Author: LiJiaYao
|
||||||
* @Date: 2024/3/28
|
* @Date: 2024/3/28
|
||||||
|
@ -39,7 +37,6 @@ public class FenceController extends BaseController {
|
||||||
@RequiresPermissions("couplet:fence:fenceList")
|
@RequiresPermissions("couplet:fence:fenceList")
|
||||||
@PostMapping("/fenceList")
|
@PostMapping("/fenceList")
|
||||||
public Result<?> fenceList(@RequestBody FenceConfig fenceConfig){
|
public Result<?> fenceList(@RequestBody FenceConfig fenceConfig){
|
||||||
|
|
||||||
startPage();
|
startPage();
|
||||||
List<Fence> list = fenceService.pageQuery(fenceConfig);
|
List<Fence> list = fenceService.pageQuery(fenceConfig);
|
||||||
return getDataTable(list);
|
return getDataTable(list);
|
||||||
|
@ -55,10 +52,11 @@ public class FenceController extends BaseController {
|
||||||
@RequiresPermissions("couplet:fence:fenceAdd")
|
@RequiresPermissions("couplet:fence:fenceAdd")
|
||||||
@Log(title = "电子围栏新增",businessType = BusinessType.INSERT)
|
@Log(title = "电子围栏新增",businessType = BusinessType.INSERT)
|
||||||
public Result<?> fenceInsert(HttpServletRequest request, @RequestBody FenceRequest fenceRequest){
|
public Result<?> fenceInsert(HttpServletRequest request, @RequestBody FenceRequest fenceRequest){
|
||||||
|
if (!fenceService.checkFenceKeyUnique(fenceRequest.getFenceName())) {
|
||||||
|
return error("新增参数'" + fenceRequest.getFenceName() + "'失败,参数键名已存在");
|
||||||
|
}
|
||||||
fenceService.fenceInsert(request,fenceRequest);
|
fenceService.fenceInsert(request,fenceRequest);
|
||||||
return Result.success("新增成功");
|
return Result.success("新增成功");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -69,8 +67,10 @@ public class FenceController extends BaseController {
|
||||||
@PostMapping("/fenceUpdate")
|
@PostMapping("/fenceUpdate")
|
||||||
@RequiresPermissions("couplet:fence:fenceUpdate")
|
@RequiresPermissions("couplet:fence:fenceUpdate")
|
||||||
@Log(title = "电子围栏修改",businessType = BusinessType.UPDATE)
|
@Log(title = "电子围栏修改",businessType = BusinessType.UPDATE)
|
||||||
public Result<?> fenceUpdate(@Validated @RequestBody FenceUpdateRequest fenceUpdateRequest){
|
public Result<?> fenceUpdate(@Validated @RequestBody FenceUpdateRequest fenceUpdateRequest){
|
||||||
|
if (!fenceService.checkFenceKeyUnique(fenceUpdateRequest.getFenceName())) {
|
||||||
|
return error("修改参数'" + fenceUpdateRequest.getFenceName() + "'失败,参数键名已存在");
|
||||||
|
}
|
||||||
fenceService.changeFenceStatus(fenceUpdateRequest);
|
fenceService.changeFenceStatus(fenceUpdateRequest);
|
||||||
return Result.success("修改成功");
|
return Result.success("修改成功");
|
||||||
}
|
}
|
||||||
|
@ -83,19 +83,21 @@ public class FenceController extends BaseController {
|
||||||
@DeleteMapping("/{fenceId}")
|
@DeleteMapping("/{fenceId}")
|
||||||
@RequiresPermissions("couplet:fence:fenceDelete")
|
@RequiresPermissions("couplet:fence:fenceDelete")
|
||||||
@Log(title = "电子围栏删除",businessType = BusinessType.DELETE)
|
@Log(title = "电子围栏删除",businessType = BusinessType.DELETE)
|
||||||
public Result<?> fenceDelete(@PathVariable Long fenceId){
|
public Result<?> fenceDelete(@PathVariable Long fenceId){
|
||||||
boolean b = fenceService.removeById(fenceId);
|
fenceService.removeByFenceId(fenceId);
|
||||||
// fenceService.removeByFenceId(fenceId);
|
return Result.success();
|
||||||
return toAjax(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用停用
|
||||||
|
* @param fenceUpdateRequest
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
@PostMapping("/fenceState")
|
@PostMapping("/fenceState")
|
||||||
@RequiresPermissions("couplet:fence:fenceState")
|
@RequiresPermissions("couplet:fence:fenceState")
|
||||||
@Log(title = "围栏启用和停用",businessType = BusinessType.OTHER)
|
@Log(title = "围栏启用和停用",businessType = BusinessType.OTHER)
|
||||||
public Result<?> fenceState(@RequestBody FenceUpdateRequest fenceUpdateRequest){
|
public Result<?> fenceState(@RequestBody FenceUpdateRequest fenceUpdateRequest){
|
||||||
|
|
||||||
fenceService.changeFenceStatus(fenceUpdateRequest);
|
fenceService.changeFenceStatus(fenceUpdateRequest);
|
||||||
|
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,4 +32,10 @@ public interface FenceMapper extends BaseMapper<Fence> {
|
||||||
*/
|
*/
|
||||||
List<Fence> pageQuery(FenceConfig fenceConfig);
|
List<Fence> pageQuery(FenceConfig fenceConfig);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断名字唯一
|
||||||
|
* @param fenceName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean checkFenceKeyUnique(String fenceName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,4 +35,12 @@ public interface FenceService extends IService<Fence> {
|
||||||
*/
|
*/
|
||||||
void removeByFenceId(Long fenceId);
|
void removeByFenceId(Long fenceId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断数据是否存在
|
||||||
|
*
|
||||||
|
* @param fenceName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean checkFenceKeyUnique(String fenceName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
package com.couplet.map.server.service.impl;
|
package com.couplet.map.server.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.couplet.map.common.domain.Fence;
|
import com.couplet.map.common.domain.Fence;
|
||||||
import com.couplet.map.common.domain.request.FenceConfig;
|
import com.couplet.map.common.domain.request.FenceConfig;
|
||||||
|
@ -57,15 +55,13 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
|
||||||
@Override
|
@Override
|
||||||
public void fenceInsert(HttpServletRequest request,FenceRequest fenceRequest) {
|
public void fenceInsert(HttpServletRequest request,FenceRequest fenceRequest) {
|
||||||
|
|
||||||
|
|
||||||
int a= fenceMapper.insertFence(fenceRequest);
|
int a= fenceMapper.insertFence(fenceRequest);
|
||||||
String[] logoId = fenceRequest.getLogoId();
|
String[] logoIds = fenceRequest.getLogoIds();
|
||||||
String[] split=null;
|
String[] parts = new String[0];
|
||||||
if (logoId != null && logoId.length> 0){
|
for (String logoId : logoIds) {
|
||||||
split = logoId[0].split(",");
|
parts = logoId.split(",");
|
||||||
}
|
fenAndLogoService.addBach(fenceRequest.getFenceId(),parts);
|
||||||
if (a>0){
|
|
||||||
fenAndLogoService.addBach(fenceRequest.getFenceId(),split);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -74,4 +70,9 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
|
||||||
public void removeByFenceId(Long fenceId) {
|
public void removeByFenceId(Long fenceId) {
|
||||||
fenceMapper.removeByFenceId(fenceId);
|
fenceMapper.removeByFenceId(fenceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean checkFenceKeyUnique(String fenceName) {
|
||||||
|
return fenceMapper.checkFenceKeyUnique(fenceName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,10 @@
|
||||||
|
|
||||||
<insert id="addBach">
|
<insert id="addBach">
|
||||||
INSERT INTO `couplet-cloud`.`couplet_fences_and_logo`
|
INSERT INTO `couplet-cloud`.`couplet_fences_and_logo`
|
||||||
(`fences_id`, `logo_id`) VALUES
|
(`fences_id`, `logo_id`)
|
||||||
<foreach collection="logoIds" item="logoItemId" separator="," close="(" open=")">
|
VALUES
|
||||||
(#{fenceId}, #{logoItemId})
|
<foreach collection="logoIds" item="item" separator=",">
|
||||||
</foreach>
|
(#{fenceId}, #{item})
|
||||||
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="selectFence">
|
<sql id="selectFence">
|
||||||
SELECT
|
SELECT
|
||||||
fence_id,
|
f.fence_id,
|
||||||
fence_name,
|
fence_name,
|
||||||
fence_longitude_latitude,
|
fence_longitude_latitude,
|
||||||
fence_description,
|
fence_description,
|
||||||
|
@ -33,19 +33,32 @@
|
||||||
maintainer_name,
|
maintainer_name,
|
||||||
alarm_status,
|
alarm_status,
|
||||||
l.logo_id,
|
l.logo_id,
|
||||||
logo_name
|
GROUP_CONCAT(logo_name) as logoName
|
||||||
FROM couplet_fence_info f INNER JOIN couplet_fences_and_logo m on
|
FROM couplet_fence_info f INNER JOIN couplet_fences_and_logo m on
|
||||||
f.fence_id=m.fences_id INNER JOIN couplet_logo_info l on l.logo_id=m.logo_id GROUP BY fence_id
|
f.fence_id=m.fences_id INNER JOIN couplet_logo_info l on l.logo_id=m.logo_id
|
||||||
|
</sql>
|
||||||
|
<sql id="fence">
|
||||||
|
SELECT
|
||||||
|
fence_id,
|
||||||
|
fence_name,
|
||||||
|
fence_longitude_latitude,
|
||||||
|
fence_description,
|
||||||
|
is_delete,
|
||||||
|
fence_state,
|
||||||
|
create_time,
|
||||||
|
update_time,
|
||||||
|
create_name,
|
||||||
|
maintainer_name,
|
||||||
|
alarm_status
|
||||||
|
FROM couplet_fence_info
|
||||||
</sql>
|
</sql>
|
||||||
<insert id="insertFence" parameterType="com.couplet.map.common.domain.request.FenceRequest" keyProperty="fenceId"
|
<insert id="insertFence" parameterType="com.couplet.map.common.domain.request.FenceRequest" keyProperty="fenceId"
|
||||||
useGeneratedKeys="true">
|
useGeneratedKeys="true">
|
||||||
|
|
||||||
INSERT INTO `couplet-cloud`.`couplet_fence_info`
|
INSERT INTO `couplet-cloud`.`couplet_fence_info`
|
||||||
(`fence_name`, `fence_description`, `is_delete`, `fence_state`, `create_time`,
|
(`fence_name`, `fence_longitude_latitude`, `fence_description`, `is_delete`, `fence_state`, `create_time`,
|
||||||
`create_name`, `maintainer_name`, `alarm_status`)
|
`update_time`, `create_name`, `maintainer_name`, `alarm_status`)
|
||||||
VALUES
|
VALUES
|
||||||
(#{fenceName}, #{fenceDescription}, 0, 0, now(), #{createTime},
|
(#{fenceName}, null, #{fenceDescription}, 0, 0, now(), null, null, #{maintainerName}, 0)
|
||||||
#{createName}, 0);
|
|
||||||
|
|
||||||
|
|
||||||
</insert>
|
</insert>
|
||||||
|
@ -78,5 +91,9 @@
|
||||||
and fence_state = #{fenceState}
|
and fence_state = #{fenceState}
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
GROUP BY f.fence_id
|
||||||
|
</select>
|
||||||
|
<select id="checkFenceKeyUnique" resultType="java.lang.Boolean">
|
||||||
|
<include refid="fence"/> where fence_name = #{fenceName}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Loading…
Reference in New Issue