| | |
| | | |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto; |
| | | import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; |
| | | import org.apache.shardingsphere.transaction.core.TransactionType; |
| | | import org.locationtech.jts.geom.Coordinate; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | |
| | | import java.util.Collection; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static com.xiaopeng.map.service.serviceimpl.XpElectronicFenceServiceImpl.getPinyinInitials; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | |
| | | @Resource |
| | | private XpRegionService regionService; |
| | | @Autowired |
| | | private XpRegionService xpRegionService; |
| | | /** |
| | | * 查询省市管理 |
| | | */ |
| | |
| | | electronicFence.setElectronicName("副本_"+electronicFence.getElectronicName()); |
| | | electronicFence.setId(null); |
| | | electronicFence.setStatus(0); |
| | | xpElectronicFenceService.save(electronicFence); |
| | | List<XpElectronicFenceArea> electronicFenceAreaList = xpElectronicFenceAreaService.lambdaQuery().eq(XpElectronicFenceArea::getElectronicId, id) |
| | | .list(); |
| | | //根据经纬度获取当前城市code |
| | | // 生成围栏id 规则:城市首字母-类型简写-4位自增流水号(如 SZ-OP-001),支持复制;数据停用或删除后,流水号不回收 |
| | | XpRegion xpRegion = xpRegionService.getOne(new LambdaQueryWrapper<XpRegion>() |
| | | .eq(XpRegion::getCode, electronicFence.getCityCode())); |
| | | String name = xpRegion.getName(); |
| | | // 根据城市中文名,截取前两位的首字母并且大写 |
| | | // 截取前两个字符 |
| | | String prefix = name.substring(0, 2); |
| | | // 获取拼音首字母并大写 |
| | | String result = getPinyinInitials(prefix).toUpperCase(); |
| | | xpElectronicFenceService.save(electronicFence); |
| | | electronicFence.setElectronicNumber(result + "-OP-" + String.format("%04d", electronicFence.getId())); |
| | | xpElectronicFenceService.updateById(electronicFence); |
| | | for (XpElectronicFenceArea area : electronicFenceAreaList) { |
| | | area.setId(null); |
| | | area.setElectronicId(electronicFence.getId()); |