Commit 2f8b1844 authored by hanbing's avatar hanbing

[add] 快速特勤,添加特勤

parent e7e45a4a
package net.wanji.web.bo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import net.wanji.web.vo.RouteElementVO;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* @author Kent HAN
* @date 2022/11/8 11:01
*/
@Data
@ApiModel(value = "AddSpecialServiceBO", description = "快速特勤-添加特勤输入参数")
public class AddSpecialServiceBO {
@ApiModelProperty(value = "特勤名称")
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,16}$", message = "只能包含中文、英文、数字、下划线和中横线,0~16个字符")
String name;
@ApiModelProperty(value = "起点坐标,格式:112.968523,28.179455")
String startLocation;
@ApiModelProperty(value = "终点坐标,格式:112.968523,28.179455")
String endLocation;
@ApiModelProperty(value = "特勤路线")
List<RouteElementVO> route;
@ApiModelProperty(value = "关联车辆")
@Pattern(regexp = "^[\\u4E00-\\u9FA5\\w\\-]{0,16}$", message = "编号只能包含中文、英文、数字、下划线和中横线,0~16个字符")
String plateNum;
}
......@@ -7,9 +7,9 @@ import io.swagger.annotations.ApiResponses;
import net.wanji.common.annotation.aspect.AspectLog;
import net.wanji.common.enums.BaseEnum;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.web.bo.AddSpecialServiceBO;
import net.wanji.web.bo.IsValidPointBO;
import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.common.exception.CrossRelationException;
import net.wanji.web.service.SpecialServiceService;
import net.wanji.web.vo.RouteElementVO;
import net.wanji.web.vo.specialService.*;
......@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import javax.ws.rs.core.MediaType;
import java.util.List;
import java.util.Set;
......@@ -61,8 +62,8 @@ public class SpecialServiceController {
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/addSpecialService",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
public JsonViewObject addSpecialService(@RequestBody AddSpecialServiceInVO addSpecialServiceInVO) {
specialServiceService.addSpecialService(addSpecialServiceInVO);
public JsonViewObject addSpecialService(@RequestBody @Valid AddSpecialServiceBO addSpecialServiceBO) {
specialServiceService.addSpecialService(addSpecialServiceBO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success();
......@@ -109,37 +110,6 @@ public class SpecialServiceController {
return jsonViewObject.success();
}
@AspectLog(description = "添加路口", operationType = BaseEnum.OperationTypeEnum.INSERT)
@ApiOperation(value = "添加路口", notes = "添加路口", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/addCross",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
public JsonViewObject addCross(@RequestBody AddCrossInVO addCrossInVO) {
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
try {
specialServiceService.addCross(addCrossInVO);
return jsonViewObject.success();
} catch (CrossRelationException e) {
return jsonViewObject.fail("路段关系不正确");
}
}
@AspectLog(description = "路口列表", operationType = BaseEnum.OperationTypeEnum.QUERY)
@ApiOperation(value = "路口列表", notes = "路口列表", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/crossList",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = CrossListOutVO.class),
})
public JsonViewObject crossList(@RequestBody CrossListInVO crossListInVO) {
Integer specialServiceId = crossListInVO.getSpecialServiceId();
List<CrossListOutVO> crossListOutVOList = specialServiceService.crossList(specialServiceId);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success(crossListOutVOList);
}
@AspectLog(description = "更新路口", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "更新路口", notes = "更新路口", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
......@@ -164,29 +134,6 @@ public class SpecialServiceController {
return jsonViewObject.success();
}
@AspectLog(description = "一键特勤", operationType = BaseEnum.OperationTypeEnum.UPDATE)
@ApiOperation(value = "一键特勤", notes = "一键特勤", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/enableSpecialService",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
public JsonViewObject enableSpecialService(@RequestBody EnableDisableSpecialServiceInVO enableDisableSpecialServiceInVO) {
specialServiceService.enableSpecialService(enableDisableSpecialServiceInVO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success();
}
@AspectLog(description = "一键取消特勤", operationType = BaseEnum.OperationTypeEnum.DELETE)
@ApiOperation(value = "一键取消特勤", notes = "一键取消特勤", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@PostMapping(value = "/disableSpecialService",
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
public JsonViewObject disableSpecialService(@RequestBody EnableDisableSpecialServiceInVO enableDisableSpecialServiceInVO) {
specialServiceService.disableSpecialService(enableDisableSpecialServiceInVO);
JsonViewObject jsonViewObject = JsonViewObject.newInstance();
return jsonViewObject.success();
}
@AspectLog(description = "路口进口列表", operationType = BaseEnum.OperationTypeEnum.QUERY)
@ApiOperation(value = "路口进口列表", notes = "路口进口列表", response = JsonViewObject.class,
......
package net.wanji.web.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import net.wanji.web.po.SpecialServiceCrossPO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -12,7 +11,6 @@ import java.util.List;
* @date 2022/11/8 14:48
*/
@Repository
@DS("webService")
public interface SpecialServiceCrossMapper {
void insertOne(SpecialServiceCrossPO specialServiceCrossPO);
......
package net.wanji.web.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import net.wanji.web.po.SpecialServicePO;
import net.wanji.web.vo.specialService.UpdateSpecialServiceInVO;
import org.apache.ibatis.annotations.Param;
......@@ -13,7 +12,6 @@ import java.util.List;
* @date 2022/11/8 11:14
*/
@Repository
@DS("webService")
public interface SpecialServiceMapper {
void insertOne(SpecialServicePO specialServicePO);
......
......@@ -19,21 +19,23 @@ public class SpecialServiceCrossPO {
/** 特勤ID */
@ApiModelProperty(name = "特勤ID",notes = "")
private Integer specialServiceId ;
@ApiModelProperty(name = "分组名称",notes = "")
private String groupName = "未分组路口";
/** 路口编号 */
@ApiModelProperty(name = "路口编号",notes = "")
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId ;
/** 进口方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty(name = "进口方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北",notes = "")
private Integer dir = 1 ;
/** 转向:l左转;s直行;r右转;u掉头 */
@ApiModelProperty(name = "转向:l左转;s直行;r右转;u掉头",notes = "")
private String turn ;
/** 顺序号 */
@ApiModelProperty(name = "顺序号",notes = "")
@ApiModelProperty(name = "驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北",notes = "")
private Integer inDir ;
@ApiModelProperty(name = "驶出方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北",notes = "")
private Integer outDir ;
@ApiModelProperty(name = "路口顺序号",notes = "")
private Integer sort ;
/** 执行状态:1成功;0失败 */
@ApiModelProperty(name = "执行状态:1成功;0失败",notes = "")
private Integer status = 0 ;
@ApiModelProperty(name = "锁定状态:1锁定;0解锁",notes = "")
private Integer status ;
@ApiModelProperty(name = "自动解锁:1是;0否",notes = "")
private Integer autoUnlock ;
/** 创建时间 */
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
......
......@@ -12,29 +12,27 @@ import java.util.Date;
*/
@Data
public class SpecialServicePO {
/** 特勤ID */
@Id
@ApiModelProperty(name = "特勤ID",notes = "")
private Integer id ;
/** 特勤名称 */
@ApiModelProperty(name = "特勤名称",notes = "")
private String name ;
/** 控制类型:1手动;2自动 */
@ApiModelProperty(name = "关联车辆车牌号",notes = "")
private String plateNum ;
@ApiModelProperty(name = "控制类型:1手动;2自动",notes = "")
private Integer controlModel = 1;
/** 特勤线路长度 */
@ApiModelProperty(name = "特勤线路长度",notes = "")
private Double length = 0.0 ;
/** 是否被删除:1是;0否 */
@ApiModelProperty(name = "是否被删除:1是;0否",notes = "")
private Integer isDel = 0 ;
/** 特勤状态:1执行;0未执行 */
@ApiModelProperty(name = "特勤状态:1执行;0未执行",notes = "")
private Integer status = 0 ;
/** 创建时间 */
@ApiModelProperty(value = "起点坐标,格式:112.968523,28.179455")
String startLocation;
@ApiModelProperty(value = "终点坐标,格式:112.968523,28.179455")
String endLocation;
@ApiModelProperty(name = "是否被删除:1是;0否",notes = "")
private Integer isDel = 0 ;
@ApiModelProperty(name = "创建时间",notes = "")
private Date gmtCreate ;
/** 修改时间 */
@ApiModelProperty(name = "修改时间",notes = "")
private Date gmtModified ;
}
package net.wanji.web.service;
import net.wanji.web.bo.AddSpecialServiceBO;
import net.wanji.web.bo.IsValidPointBO;
import net.wanji.web.bo.SpecialServiceRouteBO;
import net.wanji.web.vo.RouteElementVO;
......@@ -13,7 +14,7 @@ import java.util.Set;
* @date 2022/11/8 11:06
*/
public interface SpecialServiceService {
void addSpecialService(AddSpecialServiceInVO addSpecialServiceInVO);
void addSpecialService(AddSpecialServiceBO addSpecialServiceBO);
List<ListSpecialServicesOutVO> listSpecialServices(String adCode);
......@@ -21,18 +22,10 @@ public interface SpecialServiceService {
void deleteSpecialService(Integer id);
void addCross(AddCrossInVO addCrossInVO);
List<CrossListOutVO> crossList(Integer specialServiceId);
void updateCross(UpdateCrossInVO updateCrossInVO);
void deleteCross(DeleteCrossInVO deleteCrossInVO);
void enableSpecialService(EnableDisableSpecialServiceInVO enableDisableSpecialServiceInVO);
void disableSpecialService(EnableDisableSpecialServiceInVO enableDisableSpecialServiceInVO);
Set<String> crossInList(String crossId);
List<List<RouteElementVO>> specialServiceRoute(SpecialServiceRouteBO specialServiceRouteBO);
......
package net.wanji.web.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -8,6 +9,7 @@ import lombok.Data;
* @date 2023/5/16 14:27
*/
@Data
@ApiModel(value = "RouteElementVO", description = "特勤路线列表元素")
public class RouteElementVO {
@ApiModelProperty(value = "起点坐标")
private String startLonLat;
......
package net.wanji.web.vo.specialService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Kent HAN
* @date 2022/11/8 11:01
*/
@Data
@ApiModel(value = "AddSpecialServiceInVO", description = "快速特勤-添加特勤输入参数")
public class AddSpecialServiceInVO {
@ApiModelProperty(value = "城市代码,示例值:110000")
String adCode;
@ApiModelProperty(value = "特勤名称")
String name;
}
......@@ -4,20 +4,26 @@
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.SpecialServiceCrossPO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="specialServiceId" column="special_service_id"/>
<result property="crossId" column="cross_id"/>
<result property="dir" column="dir"/>
<result property="turn" column="turn"/>
<result property="sort" column="sort"/>
<result property="status" column="status"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
<result property="id" column="id" />
<result property="specialServiceId" column="special_service_id" />
<result property="groupName" column="group_name" />
<result property="crossId" column="cross_id" />
<result property="inDir" column="in_dir" />
<result property="outDir" column="out_dir" />
<result property="sort" column="sort" />
<result property="status" column="status" />
<result property="autoUnlock" column="auto_unlock" />
<result property="gmtCreate" column="gmt_create" />
<result property="gmtModified" column="gmt_modified" />
</resultMap>
<insert id="insertOne">
insert into t_special_service_cross(special_service_id,cross_id,dir,sort,status)
values (#{specialServiceId},#{crossId},#{dir},#{sort},#{status})
<sql id="Base_Column_List">
id,special_service_id,group_name,cross_id,in_dir,out_dir,sort,status,auto_unlock,gmt_create,gmt_modified
</sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_special_service_cross(special_service_id,cross_id,in_dir,out_dir,sort,status,auto_unlock)
values (#{specialServiceId},#{crossId},#{inDir},#{outDir},#{sort},#{status},#{autoUnlock})
</insert>
<update id="updateTurn">
......
......@@ -4,19 +4,26 @@
<!-- 通用查询映射结果 -->
<resultMap type="net.wanji.web.po.SpecialServicePO" id="BaseResultMap">
<result property="id" column="id"/>
<result property="id" column="id" />
<result property="name" column="name"/>
<result property="plateNum" column="plate_num"/>
<result property="controlModel" column="control_model"/>
<result property="length" column="length"/>
<result property="isDel" column="is_del"/>
<result property="status" column="status"/>
<result property="startLocation" column="start_location"/>
<result property="endLocation" column="end_location"/>
<result property="isDel" column="is_del"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
</resultMap>
<insert id="insertOne">
insert into t_special_service_info(name,control_model,length,is_del,status)
values (#{name},#{controlModel},#{length},#{isDel},#{status})
<sql id="Base_Column_List">
id,name,plate_num,control_model,length,status,start_location,end_location,is_del,gmt_create,gmt_modified
</sql>
<insert id="insertOne" keyProperty="id" useGeneratedKeys="true">
insert into t_special_service_info(name,plate_num,control_model,length,status,start_location,end_location,is_del)
values (#{name},#{plateNum},#{controlModel},#{length},#{status},#{startLocation},#{endLocation},#{isDel})
</insert>
<insert id="insertLength">
......
......@@ -28,7 +28,7 @@ public interface BaseCrossInfoMapper extends BaseMapper<TBaseCrossInfo> {
BaseCrossInfoPO selectById(String crossId);
List<BaseCrossInfoPO> selectByName(String name);
BaseCrossInfoPO selectByName(String name);
List<BaseCrossInfoPO> selectAll();
......
......@@ -266,4 +266,10 @@
</if>
</where>
</select>
<select id="selectByName" resultType="net.wanji.databus.po.BaseCrossInfoPO">
select <include refid="baseColumn"/>
from t_base_cross_info
where name = #{name}
</select>
</mapper>
\ No newline at end of file
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