xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicityStrategy.java
@@ -1,8 +1,10 @@ package com.xiaopeng.api.model.operation; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.fasterxml.jackson.annotation.JsonFormat; import com.xiaopeng.common.core.web.domain.BaseModel; import io.swagger.annotations.ApiModel; @@ -44,7 +46,8 @@ private Integer distributionRules; @ApiModelProperty(value = "发放规则json,[]=本券使用后循环发放, [1,2,3]=指定优惠券使用后发放(优惠券id数组)") private String distributionAfterUse; @TableField(typeHandler = JacksonTypeHandler.class) private List<Long> distributionAfterUse; @ApiModelProperty(value = "生效规则(1=领取后生效,2=领取后指定日期生效)") private Integer effectiveRules; @@ -72,6 +75,7 @@ private Integer repPercent; @ApiModelProperty(value = "使用时间段,时间字符串,开始和结束用,分割拼接成一个字符串,如果只有结束时间还是需要保持逗号,如:[',05:00:00']") @TableField(typeHandler = JacksonTypeHandler.class) private List<String> usagePeriod; @ApiModelProperty(value = "每人限领数量") xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActivityNotice.java
@@ -77,6 +77,6 @@ @Max(100) private Integer floatingWindowPriority; @ApiModelProperty(value = "跳转链接") private Boolean linkUrl; private String linkUrl; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/FenceAndStationVo.java
File was renamed from xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/vo/FenceAndStationVo.java @@ -1,4 +1,4 @@ package com.xiaopeng.map.vo; package com.xiaopeng.api.query.operation; import io.swagger.annotations.ApiModelProperty; @@ -7,8 +7,6 @@ @Data public class FenceAndStationVo { // 1 as type, a.electronic_name as name, // GROUP_CONCAT(b.id) ids @ApiModelProperty(value = "类型 1围栏 2场站 ") private Integer type; xp-robotaxi-api/src/main/java/com/xiaopeng/api/query/operation/PointPageListListQuery.java
@@ -36,12 +36,15 @@ @ApiModelProperty(value = "点位纬度") private String pointLat; private List<FenceAndStationVo> fenceAndStationList; @ApiModelProperty(value = "类型 1围栏 2场站 ") private Integer idType; @ApiModelProperty(value = "fenceAndStationIds") private String fenceAndStationIds; @ApiModelProperty(value = "fenceAreaIds") private List<String> fenceAreaIds; @ApiModelProperty(value = "stationIds") private List<String> stationIds; } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpTaskController.java
@@ -1,6 +1,8 @@ package com.xiaopeng.maintenance.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.xiaopeng.api.dto.account.XpOperationsUserPositionDTO; @@ -40,6 +42,7 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; @@ -54,8 +57,12 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @@ -310,6 +317,37 @@ return R.ok(xpTaskService.reassignTaskPageList(query)); } @ApiOperation(value = "待改派的工单导出", tags = {"管理后台-运维执行-任务工单-待改派工单"}) @PostMapping("/api/v1/task/reassign/export") public R<?> export(@RequestBody TaskPageListQuery query, HttpServletResponse response) { List<XpTaskVO> list= xpTaskService.exportList(query); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), XpCruiseCheckInRecordVO.class, list); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); ServletOutputStream outputStream = null; try { String fileName = URLEncoder.encode("巡游打卡记录.xls", "utf-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName); outputStream = response.getOutputStream(); workbook.write(outputStream); outputStream.flush(); } catch (IOException e) { log.error("导出巡游打卡记录失败", e); } finally { try { if (outputStream != null) { outputStream.close(); } if (workbook != null) { workbook.close(); } } catch (IOException e) { log.error("关闭输出流失败", e); } } return R.ok(); } @Resource XpFleetClient xpFleetClient; xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/mapper/XpTaskMapper.java
@@ -39,5 +39,7 @@ */ XpTask queryInfoByVehicleId(@Param("vehicleId")Long vehicleId); PageInfo<XpTaskVO> reassignTaskPageList(@Param("pageInfo")PageInfo<TaskPageListQuery> pageInfo, @Param("query")TaskPageListQuery query); List<XpTaskVO> reassignTaskPageList(@Param("pageInfo")PageInfo<XpTaskVO> pageInfo, @Param("query")TaskPageListQuery query); List<XpTaskVO> reassignTaskPageList(TaskPageListQuery query); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/XpTaskService.java
@@ -105,4 +105,6 @@ PageInfo<XpTaskVO> reassignTaskPageList(TaskPageListQuery query); XpTaskVO detail(Long taskId); List<XpTaskVO> exportList(TaskPageListQuery query); } xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpTaskServiceImpl.java
@@ -1501,9 +1501,10 @@ @Override public PageInfo<XpTaskVO> reassignTaskPageList(TaskPageListQuery query) { PageInfo<TaskPageListQuery> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); return baseMapper.reassignTaskPageList(pageInfo,query); PageInfo<XpTaskVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); List<XpTaskVO> list = baseMapper.reassignTaskPageList(pageInfo, query); pageInfo.setRecords(list); return pageInfo; } @Override @@ -1540,6 +1541,13 @@ return xpTaskVO; } @Override public List<XpTaskVO> exportList(TaskPageListQuery query) { return baseMapper.reassignTaskPageList(query); } @Value("${robotaxi.sms.app-id:1476153389173952512}") private String smsAppId; @Value("${robotaxi.sms.app-push-config-code:ROBOTAXI_VERIFY_CODE_SMS}") xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpElectronicFenceManagementController.java
@@ -3,7 +3,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -24,7 +23,7 @@ import com.xiaopeng.map.constant.I18nKeyConstant; import com.xiaopeng.map.service.*; import com.xiaopeng.map.utils.OperationStrategyIndex; import com.xiaopeng.map.vo.FenceAndStationVo; import com.xiaopeng.api.query.operation.FenceAndStationVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -92,8 +91,8 @@ @ApiOperation(value = "获取围栏和场站数据",tags = {"管理后台-电子围栏"}) @GetMapping(value = "/findListFenceAndStation") public R<List<FenceAndStationVo>> findListFenceAndStation() { return R.ok(xpPointService.findListFenceAndStation()); public R<List<FenceAndStationVo>> findListFenceAndStation(String cityCode) { return R.ok(xpPointService.findListFenceAndStation(cityCode)); } @ApiOperation(value = "获取不分页的电子围栏列表",tags = {"管理后台-电子围栏"}) xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/mapper/XpPointMapper.java
@@ -9,7 +9,7 @@ import com.xiaopeng.api.vo.order.XpPointsListVo; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.map.query.PointByNameQuery; import com.xiaopeng.map.vo.FenceAndStationVo; import com.xiaopeng.api.query.operation.FenceAndStationVo; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Param; @@ -26,7 +26,7 @@ */ public interface XpPointMapper extends BaseMapper<XpPoint> { List<FenceAndStationVo> findListFenceAndStation(); List<FenceAndStationVo> findListFenceAndStation(String cityCode); List<XpPoint> pointMap(@Param("query") PointMapQuery query); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/XpPointService.java
@@ -16,7 +16,7 @@ import com.xiaopeng.map.dto.NearestDto; import com.xiaopeng.map.dto.StationDetailQueryDto; import com.xiaopeng.map.query.PointByNameQuery; import com.xiaopeng.map.vo.FenceAndStationVo; import com.xiaopeng.api.query.operation.FenceAndStationVo; import com.xiaopeng.map.vo.NearestVo; import com.xiaopeng.map.vo.OrderDistanceVo; import com.xiaopeng.map.vo.StationDetailVo; @@ -74,7 +74,7 @@ boolean getInTime(LocalTime now, Integer effectivePeriod, String effectiveTimePeriod); List<XpPoint> pointMap(PointMapQuery query); List<FenceAndStationVo> findListFenceAndStation(); List<FenceAndStationVo> findListFenceAndStation(String cityCode); List<XpPoint> findList(PointListQuery query); xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpPointServiceImpl.java
@@ -18,6 +18,7 @@ import com.xiaopeng.api.model.operation.XpRegion; import com.xiaopeng.api.model.operation.XpStation; import com.xiaopeng.api.model.operation.XpSystemSetting; import com.xiaopeng.api.query.operation.FenceAndStationVo; import com.xiaopeng.api.query.operation.PointListQuery; import com.xiaopeng.api.query.operation.PointPageListListQuery; import com.xiaopeng.api.vo.order.XpHistoryEndPointsVo; @@ -368,8 +369,8 @@ } @Override public List<FenceAndStationVo> findListFenceAndStation(){ return baseMapper.findListFenceAndStation(); public List<FenceAndStationVo> findListFenceAndStation(String cityCode){ return baseMapper.findListFenceAndStation(cityCode); } @Override @@ -558,6 +559,21 @@ @Override public PageInfo<XpPoint> pageList(PointPageListListQuery query) { if(CollUtil.isNotEmpty(query.getFenceAndStationList())){ List<String> fenceAreaIds = new ArrayList<>(); List<String> stationIds = new ArrayList<>(); for (FenceAndStationVo bean : query.getFenceAndStationList()) { if(bean.getType()==1){ fenceAreaIds.addAll(StrUtil.split(bean.getIds(),",") ); }else{ stationIds.addAll(StrUtil.split(bean.getIds(),",") ); } } query.setFenceAreaIds(fenceAreaIds); query.setStationIds(stationIds); } PageInfo<XpPoint> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); if (StringUtils.isNotBlank(query.getPointLonAndLat())) { List<String> lonAndLat = query.getPointLonAndLat().trim().contains(",") ? Arrays.asList(query.getPointLonAndLat().split(",")) : xp-robotaxi-map-boot/src/main/resources/mapper/XpPointMapper.xml
@@ -71,14 +71,21 @@ order by distance asc </select> <select id="findListFenceAndStation" resultType="com.xiaopeng.map.vo.FenceAndStationVo"> <select id="findListFenceAndStation" resultType="com.xiaopeng.api.query.operation.FenceAndStationVo"> SELECT 1 as type, a.electronic_name as name, GROUP_CONCAT(b.id) ids FROM xp_electronic_fence a INNER JOIN xp_electronic_fence_area b on b.electronic_id = a.id and b.is_deleted = 0 WHERE a.is_deleted = 0 <if test="cityCode != null and cityCode != ''"> and a.city_code = #{cityCode} </if> GROUP BY a.id UNION ALL SELECT 2 as type ,s.station_name as name,s.id as ids FROM xp_station s WHERE s.is_deleted = 0 SELECT 2 as type ,s.station_name as name,s.id as ids FROM xp_station s WHERE s.is_deleted = 0 <if test="cityCode != null and cityCode != ''"> and s.city_code = #{cityCode} </if> </select> @@ -158,16 +165,26 @@ left join xp_station xs on xs.id = xp.station_id where xp.is_deleted = 0 <if test="query.idType != null"> <choose> <when test="query.idType == 1"> and xefa.id in (${query.fenceAndStationIds}) </when> <when test="query.idType == 2"> and xs.id =#{query.fenceAndStationIds} </when> </choose> <if test="(query.fenceAreaIds != null and query.fenceAreaIds.size() > 0) or (query.stationIds != null and query.stationIds.size() > 0)"> and ( <if test="query.fenceAreaIds != null and query.fenceAreaIds.size() > 0"> xp.electronic_area_id in <foreach collection="query.fenceAreaIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> <if test="query.fenceAreaIds != null and query.fenceAreaIds.size() > 0 and query.stationIds != null and query.stationIds.size() > 0"> or </if> <if test="query.stationIds != null and query.stationIds.size() > 0"> xp.station_id in <foreach collection="query.stationIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </if> ) </if> <if test="query.cityCode != null and query.cityCode != ''"> and xp.city_code = #{query.cityCode} </if> xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpActicityMapper.xml
@@ -13,9 +13,9 @@ <if test="query.status != null"> and a.status = #{query.status} </if> <if test="query.activity_type != null"> and a.activity_type = #{query.activityType} </if> <!-- <if test="query.activity_type != null">--> <!-- and a.activity_type = #{query.activityType}--> <!-- </if>--> order by a.update_time desc </select> xp-robotaxi-operation-boot/src/main/resources/mapper/operation/XpTargetedServiceMapper.xml
@@ -11,7 +11,7 @@ from xp_targeted_service as a where a.is_deleted = 0 <if test="query.cityCode != null and query.cityCode != ''"> and a.cityCode = #{query.cityCode} and a.city_code = #{query.cityCode} </if> order by a.create_time desc </select>