feat: 电子围栏编辑和化多边形

server_five_liuyunhu
lijiayao 2024-04-01 19:47:00 +08:00
parent 42c80590ff
commit ef85dad9c9
9 changed files with 82 additions and 43 deletions

View File

@ -14,8 +14,12 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
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.List;
/**
* @Author: LiJiaYao
@ -37,6 +41,8 @@ public class Fence extends BaseEntity{
/**
*
*/
@NotEmpty(message = "围栏名称不能为空")
private String fenceName;
/**
*
@ -45,6 +51,7 @@ public class Fence extends BaseEntity{
/**
*
*/
@NotEmpty(message = "围栏描述不能为空")
private String fenceDescription;
/**
*
@ -66,15 +73,15 @@ public class Fence extends BaseEntity{
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
/**
*
*/
@NotEmpty(message = "创建人不能为空")
private String createName;
/**
*
*/
@NotEmpty(message = "维护人不能为空")
private String maintainerName;
/**
*
@ -86,7 +93,7 @@ public class Fence extends BaseEntity{
/**
*
*/
private Integer[] logoId;
private Integer logoId;
@TableField(exist = false)
private String logoName;

View File

@ -15,13 +15,9 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class FenceConfig {
private String fenceName;
/**
*
*/
private Integer fenceState;
private Integer pageNum=1;
private Integer pageSize=3;
}

View File

@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @Author: LiJiaYao
@ -69,5 +70,5 @@ public class FenceRequest {
*
*/
@TableField(exist = false)
private String[] logoId;
private String[] logoIds;
}

View File

@ -17,8 +17,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import static com.couplet.common.core.utils.PageUtils.startPage;
/**
* @Author: LiJiaYao
* @Date: 2024/3/28
@ -39,7 +37,6 @@ public class FenceController extends BaseController {
@RequiresPermissions("couplet:fence:fenceList")
@PostMapping("/fenceList")
public Result<?> fenceList(@RequestBody FenceConfig fenceConfig){
startPage();
List<Fence> list = fenceService.pageQuery(fenceConfig);
return getDataTable(list);
@ -55,10 +52,11 @@ public class FenceController extends BaseController {
@RequiresPermissions("couplet:fence:fenceAdd")
@Log(title = "电子围栏新增",businessType = BusinessType.INSERT)
public Result<?> fenceInsert(HttpServletRequest request, @RequestBody FenceRequest fenceRequest){
if (!fenceService.checkFenceKeyUnique(fenceRequest.getFenceName())) {
return error("新增参数'" + fenceRequest.getFenceName() + "'失败,参数键名已存在");
}
fenceService.fenceInsert(request,fenceRequest);
return Result.success("新增成功");
}
/**
@ -70,7 +68,9 @@ public class FenceController extends BaseController {
@RequiresPermissions("couplet:fence:fenceUpdate")
@Log(title = "电子围栏修改",businessType = BusinessType.UPDATE)
public Result<?> fenceUpdate(@Validated @RequestBody FenceUpdateRequest fenceUpdateRequest){
if (!fenceService.checkFenceKeyUnique(fenceUpdateRequest.getFenceName())) {
return error("修改参数'" + fenceUpdateRequest.getFenceName() + "'失败,参数键名已存在");
}
fenceService.changeFenceStatus(fenceUpdateRequest);
return Result.success("修改成功");
}
@ -84,18 +84,20 @@ public class FenceController extends BaseController {
@RequiresPermissions("couplet:fence:fenceDelete")
@Log(title = "电子围栏删除",businessType = BusinessType.DELETE)
public Result<?> fenceDelete(@PathVariable Long fenceId){
boolean b = fenceService.removeById(fenceId);
// fenceService.removeByFenceId(fenceId);
return toAjax(b);
fenceService.removeByFenceId(fenceId);
return Result.success();
}
/**
*
* @param fenceUpdateRequest
* @return
*/
@PostMapping("/fenceState")
@RequiresPermissions("couplet:fence:fenceState")
@Log(title = "围栏启用和停用",businessType = BusinessType.OTHER)
public Result<?> fenceState(@RequestBody FenceUpdateRequest fenceUpdateRequest){
fenceService.changeFenceStatus(fenceUpdateRequest);
return success();
}

View File

@ -32,4 +32,10 @@ public interface FenceMapper extends BaseMapper<Fence> {
*/
List<Fence> pageQuery(FenceConfig fenceConfig);
/**
*
* @param fenceName
* @return
*/
boolean checkFenceKeyUnique(String fenceName);
}

View File

@ -35,4 +35,12 @@ public interface FenceService extends IService<Fence> {
*/
void removeByFenceId(Long fenceId);
/**
*
*
* @param fenceName
* @return
*/
boolean checkFenceKeyUnique(String fenceName);
}

View File

@ -1,7 +1,5 @@
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.couplet.map.common.domain.Fence;
import com.couplet.map.common.domain.request.FenceConfig;
@ -57,15 +55,13 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
@Override
public void fenceInsert(HttpServletRequest request,FenceRequest fenceRequest) {
int a= fenceMapper.insertFence(fenceRequest);
String[] logoId = fenceRequest.getLogoId();
String[] split=null;
if (logoId != null && logoId.length> 0){
split = logoId[0].split(",");
}
if (a>0){
fenAndLogoService.addBach(fenceRequest.getFenceId(),split);
String[] logoIds = fenceRequest.getLogoIds();
String[] parts = new String[0];
for (String logoId : logoIds) {
parts = logoId.split(",");
fenAndLogoService.addBach(fenceRequest.getFenceId(),parts);
}
}
@ -74,4 +70,9 @@ public class FenceServiceImpl extends ServiceImpl<FenceMapper, Fence> implements
public void removeByFenceId(Long fenceId) {
fenceMapper.removeByFenceId(fenceId);
}
@Override
public boolean checkFenceKeyUnique(String fenceName) {
return fenceMapper.checkFenceKeyUnique(fenceName);
}
}

View File

@ -22,9 +22,10 @@
<insert id="addBach">
INSERT INTO `couplet-cloud`.`couplet_fences_and_logo`
(`fences_id`, `logo_id`) VALUES
<foreach collection="logoIds" item="logoItemId" separator="," close="(" open=")">
(#{fenceId}, #{logoItemId})
(`fences_id`, `logo_id`)
VALUES
<foreach collection="logoIds" item="item" separator=",">
(#{fenceId}, #{item})
</foreach>
</insert>
</mapper>

View File

@ -21,7 +21,7 @@
</resultMap>
<sql id="selectFence">
SELECT
fence_id,
f.fence_id,
fence_name,
fence_longitude_latitude,
fence_description,
@ -33,19 +33,32 @@
maintainer_name,
alarm_status,
l.logo_id,
logo_name
GROUP_CONCAT(logo_name) as logoName
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>
<insert id="insertFence" parameterType="com.couplet.map.common.domain.request.FenceRequest" keyProperty="fenceId"
useGeneratedKeys="true">
INSERT INTO `couplet-cloud`.`couplet_fence_info`
(`fence_name`, `fence_description`, `is_delete`, `fence_state`, `create_time`,
`create_name`, `maintainer_name`, `alarm_status`)
(`fence_name`, `fence_longitude_latitude`, `fence_description`, `is_delete`, `fence_state`, `create_time`,
`update_time`, `create_name`, `maintainer_name`, `alarm_status`)
VALUES
(#{fenceName}, #{fenceDescription}, 0, 0, now(), #{createTime},
#{createName}, 0);
(#{fenceName}, null, #{fenceDescription}, 0, 0, now(), null, null, #{maintainerName}, 0)
</insert>
@ -78,5 +91,9 @@
and fence_state = #{fenceState}
</if>
</where>
GROUP BY f.fence_id
</select>
<select id="checkFenceKeyUnique" resultType="java.lang.Boolean">
<include refid="fence"/> where fence_name = #{fenceName}
</select>
</mapper>