Commit ae7b2f91 authored by hanbing's avatar hanbing

[add] 路口管理,区域新增/修改

parent 813520c5
...@@ -14,18 +14,30 @@ import java.util.List; ...@@ -14,18 +14,30 @@ import java.util.List;
@Data @Data
@ApiModel(value = "AddOrUpdateAreaBO", description = "区域新增/修改") @ApiModel(value = "AddOrUpdateAreaBO", description = "区域新增/修改")
public class AddOrUpdateAreaBO { public class AddOrUpdateAreaBO {
@ApiModelProperty(value = "区划类型:1行政区划;2交警辖区;3商圈;4交通小区;5热点区域;6道路")
private Integer type;
@ApiModelProperty(value = "父节点") @ApiModelProperty(value = "父节点")
private Integer parentCode; private Integer parentCode;
@ApiModelProperty(value = "子区ID")
@ApiModelProperty(value = "区域ID")
private Integer areaId; private Integer areaId;
@ApiModelProperty(value = "子区名称", required = true)
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,20}$", message = "子区名称只能包含中文、英文、数字、下划线和中横线,0~20个字符") @ApiModelProperty(value = "区域名称", required = true)
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,20}$", message = "区域名称只能包含中文、英文、数字、下划线和中横线,0~20个字符")
private String areaName; private String areaName;
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,200}$", message = "子区名称只能包含中文、英文、数字、下划线和中横线,0~200个字符")
@ApiModelProperty(value = "道路名称")
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,20}$", message = "道路名称只能包含中文、英文、数字、下划线和中横线,0~20个字符")
private String roadName;
@ApiModelProperty(value = "备注", required = true) @ApiModelProperty(value = "备注", required = true)
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,200}$", message = "备注只能包含中文、英文、数字、下划线和中横线,0~200个字符")
private String remark; private String remark;
@ApiModelProperty(value = "路口ID数组", required = true) @ApiModelProperty(value = "路口ID数组", required = true)
private List<String> crossIdList; private List<String> crossIdList;
@ApiModelProperty(value = "坐标") @ApiModelProperty(value = "坐标")
private String wkt; private String wkt;
......
...@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiResponse; ...@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses; import io.swagger.annotations.ApiResponses;
import net.wanji.common.framework.rest.JsonViewObject; import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.bo.AddOrUpdateAreaBO; import net.wanji.web.bo.AddOrUpdateAreaBO;
import net.wanji.web.bo.AddOrUpdateJurisdictionBO;
import net.wanji.web.bo.PolygonBO; import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO; import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.service.impl.CrossManageServiceImpl; import net.wanji.web.service.impl.CrossManageServiceImpl;
...@@ -72,16 +71,4 @@ public class CrossManageController { ...@@ -72,16 +71,4 @@ public class CrossManageController {
return JsonViewObject.newInstance().success(); return JsonViewObject.newInstance().success();
} }
@ApiOperation(value = "辖区新增/修改", notes = "辖区新增/修改,传ID为修改,不传ID为新增", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/addOrUpdateJurisdiction",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = JsonViewObject.class),
})
public JsonViewObject addOrUpdateJurisdiction(@RequestBody AddOrUpdateJurisdictionBO addOrUpdateJurisdictionBO) {
crossManageService.addOrUpdateJurisdiction(addOrUpdateJurisdictionBO);
return JsonViewObject.newInstance().success();
}
} }
\ No newline at end of file
...@@ -10,4 +10,6 @@ import org.springframework.stereotype.Repository; ...@@ -10,4 +10,6 @@ import org.springframework.stereotype.Repository;
*/ */
@Repository @Repository
public interface TBaseAreaCrossMapper extends BaseMapper<TBaseAreaCross> { public interface TBaseAreaCrossMapper extends BaseMapper<TBaseAreaCross> {
void deleteByAreaId(Integer areaId);
void insertOne(String crossId, Integer areaId);
} }
package net.wanji.web.service; package net.wanji.web.service;
import net.wanji.web.bo.AddOrUpdateAreaBO; import net.wanji.web.bo.AddOrUpdateAreaBO;
import net.wanji.web.bo.AddOrUpdateJurisdictionBO;
import net.wanji.web.bo.PolygonBO; import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO; import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.vo.CrossIdAndNameVO; import net.wanji.web.vo.CrossIdAndNameVO;
...@@ -19,7 +18,5 @@ public interface CrossManageService { ...@@ -19,7 +18,5 @@ public interface CrossManageService {
void addOrUpdateArea(AddOrUpdateAreaBO addOrUpdateAreaBO); void addOrUpdateArea(AddOrUpdateAreaBO addOrUpdateAreaBO);
void addOrUpdateJurisdiction(AddOrUpdateJurisdictionBO addOrUpdateJurisdictionBO);
SelectCrossesByStartEndVO selectCrossesByStartEnd(SpecialServiceRouteBO specialServiceRouteBO); SelectCrossesByStartEndVO selectCrossesByStartEnd(SpecialServiceRouteBO specialServiceRouteBO);
} }
...@@ -9,9 +9,9 @@ import net.wanji.databus.dao.mapper.BaseCrossInfoMapper; ...@@ -9,9 +9,9 @@ import net.wanji.databus.dao.mapper.BaseCrossInfoMapper;
import net.wanji.databus.po.BaseAreaInfoPO; import net.wanji.databus.po.BaseAreaInfoPO;
import net.wanji.databus.po.BaseCrossInfoPO; import net.wanji.databus.po.BaseCrossInfoPO;
import net.wanji.web.bo.AddOrUpdateAreaBO; import net.wanji.web.bo.AddOrUpdateAreaBO;
import net.wanji.web.bo.AddOrUpdateJurisdictionBO;
import net.wanji.web.bo.PolygonBO; import net.wanji.web.bo.PolygonBO;
import net.wanji.web.bo.SpecialServiceRouteBO; import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.mapper.TBaseAreaCrossMapper;
import net.wanji.web.service.CrossManageService; import net.wanji.web.service.CrossManageService;
import net.wanji.web.vo.CrossIdAndNameVO; import net.wanji.web.vo.CrossIdAndNameVO;
import net.wanji.web.vo.SelectCrossesByStartEndVO; import net.wanji.web.vo.SelectCrossesByStartEndVO;
...@@ -33,11 +33,14 @@ public class CrossManageServiceImpl implements CrossManageService { ...@@ -33,11 +33,14 @@ public class CrossManageServiceImpl implements CrossManageService {
private final BaseCrossInfoMapper crossInfoMapper; private final BaseCrossInfoMapper crossInfoMapper;
private final BaseAreaInfoMapper baseAreaInfoMapper; private final BaseAreaInfoMapper baseAreaInfoMapper;
private final SpecialServiceServiceImpl specialServiceService; private final SpecialServiceServiceImpl specialServiceService;
private final TBaseAreaCrossMapper areaCrossMapper;
public CrossManageServiceImpl(BaseCrossInfoMapper crossInfoMapper, BaseAreaInfoMapper baseAreaInfoMapper, SpecialServiceServiceImpl specialServiceService) { public CrossManageServiceImpl(BaseCrossInfoMapper crossInfoMapper, BaseAreaInfoMapper baseAreaInfoMapper,
SpecialServiceServiceImpl specialServiceService, TBaseAreaCrossMapper areaCrossMapper) {
this.crossInfoMapper = crossInfoMapper; this.crossInfoMapper = crossInfoMapper;
this.baseAreaInfoMapper = baseAreaInfoMapper; this.baseAreaInfoMapper = baseAreaInfoMapper;
this.specialServiceService = specialServiceService; this.specialServiceService = specialServiceService;
this.areaCrossMapper = areaCrossMapper;
} }
@Override @Override
...@@ -68,70 +71,57 @@ public class CrossManageServiceImpl implements CrossManageService { ...@@ -68,70 +71,57 @@ public class CrossManageServiceImpl implements CrossManageService {
@Override @Override
@Transactional @Transactional
public void addOrUpdateArea(AddOrUpdateAreaBO addOrUpdateAreaBO) { public void addOrUpdateArea(AddOrUpdateAreaBO addOrUpdateAreaBO) {
Integer type = addOrUpdateAreaBO.getType();
Integer areaId = addOrUpdateAreaBO.getAreaId(); Integer areaId = addOrUpdateAreaBO.getAreaId();
Integer parentCode = addOrUpdateAreaBO.getParentCode();
String areaName = addOrUpdateAreaBO.getAreaName(); String areaName = addOrUpdateAreaBO.getAreaName();
String roadName = addOrUpdateAreaBO.getRoadName();
String remark = addOrUpdateAreaBO.getRemark(); String remark = addOrUpdateAreaBO.getRemark();
List<String> crossIdList = addOrUpdateAreaBO.getCrossIdList(); List<String> crossIdList = addOrUpdateAreaBO.getCrossIdList();
String wkt = addOrUpdateAreaBO.getWkt(); String wkt = addOrUpdateAreaBO.getWkt();
if (ObjectUtil.isNotEmpty(areaId)) { if (ObjectUtil.isNotEmpty(areaId) && 0 != areaId) {
// 修改 // 修改
// 修改子区名称和备注 // 修改区域基础信息
baseAreaInfoMapper.updateAreaNameAndRemark(areaName, remark, areaId); baseAreaInfoMapper.updateAreaNameAndRemark(areaName, remark, areaId, roadName, parentCode);
// 修改子区关联路口 // 修改区域关联路口
List<String> oldIds = crossInfoMapper.selectIdsByAreaId(areaId); areaCrossMapper.deleteByAreaId(areaId);
crossInfoMapper.deleteAreaId(oldIds); for (String crossId : crossIdList) {
crossInfoMapper.updateAreaId(crossIdList, areaId); areaCrossMapper.insertOne(crossId, areaId);
}
} else { } else {
// 新增 // 新增
// 新增子区 if (2 == type) { // 交警辖区
BaseAreaInfoPO baseAreaInfoPO = new BaseAreaInfoPO(); BaseAreaInfoPO baseAreaInfoPO = new BaseAreaInfoPO();
baseAreaInfoPO.setCode(0); baseAreaInfoPO.setParentCode(parentCode);
baseAreaInfoPO.setName(areaName); baseAreaInfoPO.setRoadName("");
baseAreaInfoPO.setType(5); handleAreaInfoPO(type, areaName, remark, crossIdList, wkt, baseAreaInfoPO);
baseAreaInfoPO.setParentCode(0); } else if (6 == type) { // 道路
baseAreaInfoPO.setLocation(""); BaseAreaInfoPO baseAreaInfoPO = new BaseAreaInfoPO();
baseAreaInfoPO.setPolylines(wkt); baseAreaInfoPO.setRoadName(roadName);
baseAreaInfoPO.setRemark(remark); baseAreaInfoPO.setParentCode(0);
baseAreaInfoMapper.insertOne(baseAreaInfoPO); handleAreaInfoPO(type, areaName, remark, crossIdList, wkt, baseAreaInfoPO);
Integer newAreaId = baseAreaInfoPO.getId(); } else if (5 == type) { // 子区
// 关联子区路口 BaseAreaInfoPO baseAreaInfoPO = new BaseAreaInfoPO();
crossInfoMapper.updateAreaId(crossIdList, newAreaId); baseAreaInfoPO.setRoadName("");
baseAreaInfoPO.setParentCode(0);
handleAreaInfoPO(type, areaName, remark, crossIdList, wkt, baseAreaInfoPO);
}
} }
} }
@Override private void handleAreaInfoPO(Integer type, String areaName, String remark, List<String> crossIdList, String wkt,
public void addOrUpdateJurisdiction(AddOrUpdateJurisdictionBO addOrUpdateJurisdictionBO) { BaseAreaInfoPO baseAreaInfoPO) {
Integer parentId = addOrUpdateJurisdictionBO.getParentId(); baseAreaInfoPO.setCode(0);
Integer areaId = addOrUpdateJurisdictionBO.getAreaId(); baseAreaInfoPO.setLocation("");
String areaName = addOrUpdateJurisdictionBO.getAreaName(); baseAreaInfoPO.setName(areaName);
String remark = addOrUpdateJurisdictionBO.getRemark(); baseAreaInfoPO.setType(type);
List<String> crossIdList = addOrUpdateJurisdictionBO.getCrossIdList(); baseAreaInfoPO.setPolylines(wkt);
String wkt = addOrUpdateJurisdictionBO.getWkt(); baseAreaInfoPO.setRemark(remark);
baseAreaInfoMapper.insertOne(baseAreaInfoPO);
if (ObjectUtil.isNotEmpty(areaId)) { Integer areaIdGenerated = baseAreaInfoPO.getId();
// 修改 for (String crossId : crossIdList) {
// 修改辖区名称和备注 areaCrossMapper.insertOne(crossId, areaIdGenerated);
baseAreaInfoMapper.updateAreaNameAndRemark(areaName, remark, areaId);
// 修改辖区关联路口
List<String> oldIds = crossInfoMapper.selectIdsByAreaId(areaId);
crossInfoMapper.deleteAreaId(oldIds);
crossInfoMapper.updateAreaId(crossIdList, areaId);
} else {
// 新增
// 新增子区
BaseAreaInfoPO baseAreaInfoPO = new BaseAreaInfoPO();
baseAreaInfoPO.setCode(0);
baseAreaInfoPO.setName(areaName);
baseAreaInfoPO.setType(5);
baseAreaInfoPO.setParentCode(0);
baseAreaInfoPO.setLocation("");
baseAreaInfoPO.setPolylines(wkt);
baseAreaInfoPO.setRemark(remark);
baseAreaInfoMapper.insertOne(baseAreaInfoPO);
Integer newAreaId = baseAreaInfoPO.getId();
// 关联子区路口
crossInfoMapper.updateAreaId(crossIdList, newAreaId);
} }
} }
......
...@@ -8,4 +8,14 @@ ...@@ -8,4 +8,14 @@
<result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"/> <result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"/>
<result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP"/> <result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<insert id="insertOne">
insert into t_base_area_cross(area_id,cross_id)
values (#{areaId},#{crossId})
</insert>
<delete id="deleteByAreaId">
delete from t_base_area_cross
where area_id = #{areaId}
</delete>
</mapper> </mapper>
\ No newline at end of file
...@@ -11,7 +11,7 @@ import org.springframework.stereotype.Repository; ...@@ -11,7 +11,7 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface BaseAreaInfoMapper { public interface BaseAreaInfoMapper {
void updateAreaNameAndRemark(String name, String remark, Integer id); void updateAreaNameAndRemark(String name, String remark, Integer id, String roadName, Integer parentCode);
void insertOne(BaseAreaInfoPO baseAreaInfoPO); void insertOne(BaseAreaInfoPO baseAreaInfoPO);
} }
...@@ -22,6 +22,9 @@ public class BaseAreaInfoPO { ...@@ -22,6 +22,9 @@ public class BaseAreaInfoPO {
/** 区域名称 */ /** 区域名称 */
@ApiModelProperty(value = "区域名称",notes = "") @ApiModelProperty(value = "区域名称",notes = "")
private String name ; private String name ;
@ApiModelProperty(value = "道路名称",notes = "")
private String roadName;
/** 区划类型:1行政区划;2交警辖区;3商圈;4交通小区;5热点区域;6道路 */ /** 区划类型:1行政区划;2交警辖区;3商圈;4交通小区;5热点区域;6道路 */
@ApiModelProperty(value = "区划类型:1行政区划;2交警辖区;3商圈;4交通小区;5热点区域;6道路",notes = "") @ApiModelProperty(value = "区划类型:1行政区划;2交警辖区;3商圈;4交通小区;5热点区域;6道路",notes = "")
private Integer type ; private Integer type ;
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<mapper namespace="net.wanji.databus.dao.mapper.BaseAreaInfoMapper"> <mapper namespace="net.wanji.databus.dao.mapper.BaseAreaInfoMapper">
<sql id="baseColumnList"> <sql id="baseColumnList">
code,name,type,parent_code,location,polylines,remark code,name,road_name,type,parent_code,location,polylines,remark
</sql> </sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true"> <insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_base_area_info (<include refid="baseColumnList"/>) insert into t_base_area_info (<include refid="baseColumnList"/>)
values (#{code},#{name},#{type},#{parentCode},#{location},#{polylines},#{remark}) values (#{code},#{name},#{roadName},#{type},#{parentCode},#{location},#{polylines},#{remark})
</insert> </insert>
<update id="updateAreaNameAndRemark"> <update id="updateAreaNameAndRemark">
...@@ -20,6 +20,12 @@ ...@@ -20,6 +20,12 @@
<if test="remark != null and remark != ''"> <if test="remark != null and remark != ''">
remark = #{remark}, remark = #{remark},
</if> </if>
<if test="roadName != null and roadName != ''">
road_name = #{roadName},
</if>
<if test="parentCode != null and parentCode != 0">
parent_code = #{parentCode},
</if>
</set> </set>
where id = #{id} where id = #{id}
</update> </update>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment