订单路线

master
ljw 2025-11-12 16:25:42 +08:00
parent dcb7f32b6d
commit be6808af55
13 changed files with 729 additions and 3 deletions

View File

@ -0,0 +1,77 @@
package com.njzscloud.supervisory.route.controller;
import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.pojo.OrderRouteEntity;
import com.njzscloud.supervisory.route.service.OrderRouteService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 线
*/
@Slf4j
@RestController
@RequestMapping("/order_route")
@RequiredArgsConstructor
public class OrderRouteController {
private final OrderRouteService orderRouteService;
/**
*
*/
@PostMapping("/add")
public R<?> add(@RequestBody OrderRouteEntity routeEntity) {
orderRouteService.add(routeEntity);
return R.success();
}
/**
*
*/
@PostMapping("/modify")
public R<?> modify(@RequestBody OrderRouteEntity routeEntity) {
orderRouteService.modify(routeEntity);
return R.success();
}
/**
*
*/
@PostMapping("/del")
public R<?> del(@RequestBody List<Long> ids) {
orderRouteService.del(ids);
return R.success();
}
/**
*
*/
@GetMapping("/detail")
public R<OrderRouteEntity> detail(@RequestParam Long id) {
return R.success(orderRouteService.detail(id));
}
/**
*
*/
@GetMapping("/paging")
public R<PageResult<OrderRouteEntity>> paging(PageParam pageParam, OrderRouteEntity routeEntity) {
return R.success(orderRouteService.paging(pageParam, routeEntity));
}
/**
* Id线
*/
@GetMapping("/getByOrderId")
public R<OrderRouteEntity> getByOrderId(@RequestParam Long orderId) {
return R.success(orderRouteService.getByOrderId(orderId));
}
}

View File

@ -0,0 +1,69 @@
package com.njzscloud.supervisory.route.controller;
import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.pojo.OrderRouteDetailEntity;
import com.njzscloud.supervisory.route.service.OrderRouteDetailService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 线
*/
@Slf4j
@RestController
@RequestMapping("/order_route_detail")
@RequiredArgsConstructor
public class OrderRouteDetailController {
private final OrderRouteDetailService orderRouteDetailService;
/**
*
*/
@PostMapping("/add")
public R<?> add(@RequestBody OrderRouteDetailEntity detailEntity) {
orderRouteDetailService.add(detailEntity);
return R.success();
}
/**
*
*/
@PostMapping("/modify")
public R<?> modify(@RequestBody OrderRouteDetailEntity detailEntity) {
orderRouteDetailService.modify(detailEntity);
return R.success();
}
/**
*
*/
@PostMapping("/del")
public R<?> del(@RequestBody List<Long> ids) {
orderRouteDetailService.del(ids);
return R.success();
}
/**
*
*/
@GetMapping("/detail")
public R<OrderRouteDetailEntity> detail(@RequestParam Long id) {
return R.success(orderRouteDetailService.detail(id));
}
/**
*
*/
@GetMapping("/paging")
public R<PageResult<OrderRouteDetailEntity>> paging(PageParam pageParam, OrderRouteDetailEntity detailEntity) {
return R.success(orderRouteDetailService.paging(pageParam, detailEntity));
}
}

View File

@ -0,0 +1,14 @@
package com.njzscloud.supervisory.route.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njzscloud.supervisory.route.pojo.OrderRouteDetailEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 线
*/
@Mapper
public interface OrderRouteDetailMapper extends BaseMapper<OrderRouteDetailEntity> {
}

View File

@ -0,0 +1,24 @@
package com.njzscloud.supervisory.route.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njzscloud.supervisory.route.pojo.OrderRouteEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 线
*/
@Mapper
public interface OrderRouteMapper extends BaseMapper<OrderRouteEntity> {
IPage<OrderRouteEntity> paging(Page<Object> page, @Param("ew") QueryWrapper<OrderRouteEntity> ew);
OrderRouteEntity selectDetailById(@Param("id") Long id);
OrderRouteEntity getByOrderId(@Param("orderId") Long orderId);
}

View File

@ -0,0 +1,71 @@
package com.njzscloud.supervisory.route.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/**
* 线
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName(value = "order_route_detail", autoResultMap = true)
public class OrderRouteDetailEntity {
/**
* Id
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 线id
*/
private Long orderRouteId;
/**
* 线
*/
private String name;
/**
*
*/
private Integer sort;
/**
* Id; sys_user.id
*/
@TableField(fill = FieldFill.INSERT)
private Long creatorId;
/**
* Id; sys_user.id
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long modifierId;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime modifyTime;
/**
* ; 0-->1-->
*/
@TableLogic
private Boolean deleted;
}

View File

@ -0,0 +1,100 @@
package com.njzscloud.supervisory.route.pojo;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.List;
/**
* 线
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName(value = "order_route", autoResultMap = true)
public class OrderRouteEntity {
/**
* Id
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* Id
*/
private Long orderId;
/**
* id
*/
private Long projectId;
/**
* id
*/
private Long companyId;
/**
* id
*/
private Long stationId;
/**
* 线
*/
private String name;
/**
*
*/
@TableField(exist = false)
private String startAddress;
/**
*
*/
@TableField(exist = false)
private String endAddress;
/**
* 线
*/
@TableField(exist = false)
private List<OrderRouteDetailEntity> detailEntityList;
/**
* Id; sys_user.id
*/
@TableField(fill = FieldFill.INSERT)
private Long creatorId;
/**
* Id; sys_user.id
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long modifierId;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime modifyTime;
/**
* ; 0-->1-->
*/
@TableLogic
private Boolean deleted;
}

View File

@ -9,7 +9,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
* * 线
*/ */
@Getter @Getter
@Setter @Setter

View File

@ -0,0 +1,41 @@
package com.njzscloud.supervisory.route.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.pojo.OrderRouteDetailEntity;
import java.util.List;
/**
* 线
*/
public interface OrderRouteDetailService extends IService<OrderRouteDetailEntity> {
/**
*
*/
void add(OrderRouteDetailEntity detailEntity);
/**
*
*/
void modify(OrderRouteDetailEntity detailEntity);
/**
*
*/
void del(List<Long> ids);
/**
*
*/
OrderRouteDetailEntity detail(Long id);
/**
*
*/
PageResult<OrderRouteDetailEntity> paging(PageParam pageParam, OrderRouteDetailEntity detailEntity);
}

View File

@ -0,0 +1,46 @@
package com.njzscloud.supervisory.route.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.pojo.OrderRouteEntity;
import java.util.List;
/**
* 线
*/
public interface OrderRouteService extends IService<OrderRouteEntity> {
/**
*
*/
void add(OrderRouteEntity orderRouteEntity);
/**
*
*/
void modify(OrderRouteEntity orderRouteEntity);
/**
*
*/
void del(List<Long> ids);
/**
*
*/
OrderRouteEntity detail(Long id);
/**
*
*/
PageResult<OrderRouteEntity> paging(PageParam pageParam, OrderRouteEntity orderRouteEntity);
/**
* Id线
*/
OrderRouteEntity getByOrderId(Long orderId);
}

View File

@ -0,0 +1,71 @@
package com.njzscloud.supervisory.route.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.mapper.OrderRouteDetailMapper;
import com.njzscloud.supervisory.route.pojo.OrderRouteDetailEntity;
import com.njzscloud.supervisory.route.service.OrderRouteDetailService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 线
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class OrderRouteDetailServiceImpl extends ServiceImpl<OrderRouteDetailMapper, OrderRouteDetailEntity> implements OrderRouteDetailService {
/**
*
*/
@Override
public void add(OrderRouteDetailEntity detailEntity) {
this.save(detailEntity);
}
/**
*
*/
@Override
public void modify(OrderRouteDetailEntity detailEntity) {
this.updateById(detailEntity);
}
/**
*
*/
@Override
public void del(List<Long> ids) {
this.removeBatchByIds(ids);
}
/**
*
*/
@Override
public OrderRouteDetailEntity detail(Long id) {
return this.getById(id);
}
/**
*
*/
@Override
public PageResult<OrderRouteDetailEntity> paging(PageParam pageParam, OrderRouteDetailEntity detailEntity) {
Page<OrderRouteDetailEntity> page = this.page(pageParam.toPage(), Wrappers.<OrderRouteDetailEntity>lambdaQuery()
.eq(StrUtil.isNotBlank(detailEntity.getName()), OrderRouteDetailEntity::getName, detailEntity.getName())
.eq(OrderRouteDetailEntity::getDeleted, Boolean.FALSE)
.orderByDesc(OrderRouteDetailEntity::getCreateTime));
return PageResult.of(page);
}
}

View File

@ -0,0 +1,142 @@
package com.njzscloud.supervisory.route.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.mp.support.PageParam;
import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.supervisory.route.mapper.OrderRouteMapper;
import com.njzscloud.supervisory.route.pojo.OrderRouteDetailEntity;
import com.njzscloud.supervisory.route.pojo.OrderRouteEntity;
import com.njzscloud.supervisory.route.service.OrderRouteDetailService;
import com.njzscloud.supervisory.route.service.OrderRouteService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 线
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class OrderRouteServiceImpl extends ServiceImpl<OrderRouteMapper, OrderRouteEntity> implements OrderRouteService {
private final OrderRouteDetailService orderRouteDetailService;
private final OrderRouteMapper orderRouteMapper;
/**
*
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void add(OrderRouteEntity orderRouteEntity) {
this.save(orderRouteEntity);
// 保存详情
List<OrderRouteDetailEntity> detailEntityList = orderRouteEntity.getDetailEntityList();
if (null != detailEntityList && detailEntityList.size() > 0) {
for (OrderRouteDetailEntity detailEntity : detailEntityList) {
detailEntity.setOrderRouteId(orderRouteEntity.getId());
}
orderRouteDetailService.saveBatch(detailEntityList);
}
}
/**
*
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void modify(OrderRouteEntity orderRouteEntity) {
this.updateById(orderRouteEntity);
// 删除原有数据,然后直接新增
orderRouteDetailService.remove(Wrappers.<OrderRouteDetailEntity>lambdaQuery()
.in(OrderRouteDetailEntity::getOrderRouteId, orderRouteEntity.getId()));
List<OrderRouteDetailEntity> detailEntityList = orderRouteEntity.getDetailEntityList();
if (null != detailEntityList && detailEntityList.size() > 0) {
for (OrderRouteDetailEntity detailEntity : detailEntityList) {
detailEntity.setOrderRouteId(orderRouteEntity.getId());
}
orderRouteDetailService.saveBatch(detailEntityList);
}
}
/**
*
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void del(List<Long> ids) {
this.removeBatchByIds(ids);
for (Long id : ids) {
// 删除详细路线
orderRouteDetailService.remove(Wrappers.<OrderRouteDetailEntity>lambdaQuery()
.in(OrderRouteDetailEntity::getOrderRouteId, id));
}
}
/**
*
*/
@Override
public OrderRouteEntity detail(Long id) {
OrderRouteEntity entity = orderRouteMapper.selectDetailById(id);
List<OrderRouteDetailEntity> detailEntityList = orderRouteDetailService.list(Wrappers.lambdaQuery(OrderRouteDetailEntity.class)
.eq(OrderRouteDetailEntity::getOrderRouteId, entity.getId())
.orderByAsc(OrderRouteDetailEntity::getSort));
if (null != detailEntityList && detailEntityList.size() > 0) {
entity.setDetailEntityList(detailEntityList);
}
return entity;
}
/**
*
*/
@Override
public PageResult<OrderRouteEntity> paging(PageParam pageParam, OrderRouteEntity routeEntity) {
QueryWrapper<OrderRouteEntity> ew = Wrappers.<OrderRouteEntity>query()
.eq("a.deleted", 0)
.like(StrUtil.isNotBlank(routeEntity.getName()), "a.name", routeEntity.getName())
.eq(null != routeEntity.getCompanyId(), "a.company_id", routeEntity.getCompanyId())
.eq(null != routeEntity.getStationId(), "a.station_id", routeEntity.getStationId())
.eq(null != routeEntity.getOrderId(), "a.order_id", routeEntity.getOrderId());
IPage<OrderRouteEntity> page = orderRouteMapper.paging(pageParam.toPage(), ew);
for (OrderRouteEntity entity : page.getRecords()) {
List<OrderRouteDetailEntity> detailEntityList = orderRouteDetailService.list(Wrappers.lambdaQuery(OrderRouteDetailEntity.class)
.eq(OrderRouteDetailEntity::getOrderRouteId, entity.getId()).orderByAsc(OrderRouteDetailEntity::getSort));
if (null != detailEntityList && detailEntityList.size() > 0) {
entity.setDetailEntityList(detailEntityList);
}
}
return PageResult.of(page);
}
/**
* Id线
*/
@Override
public OrderRouteEntity getByOrderId(Long orderId) {
OrderRouteEntity entity = orderRouteMapper.getByOrderId(orderId);
if (null != entity) {
List<OrderRouteDetailEntity> detailEntityList = orderRouteDetailService.list(Wrappers.lambdaQuery(OrderRouteDetailEntity.class)
.eq(OrderRouteDetailEntity::getOrderRouteId, entity.getId())
.orderByAsc(OrderRouteDetailEntity::getSort));
if (null != detailEntityList && detailEntityList.size() > 0) {
entity.setDetailEntityList(detailEntityList);
}
} else {
throw Exceptions.error("未查询到路线");
}
return entity;
}
}

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njzscloud.supervisory.route.mapper.OrderRouteMapper">
<select id="paging" resultType="com.njzscloud.supervisory.route.pojo.OrderRouteEntity">
SELECT
a.id,
a.order_id,
a.project_id,
a.company_id,
a.station_id,
a.name,
a.creator_id,
a.modifier_id,
a.create_time,
a.modify_time,
a.deleted,
b.company_name start_address,
c.station_name end_address
FROM order_route a
LEFT JOIN biz_company b ON b.id = a.company_id
LEFT JOIN biz_company c ON c.id = a.station_id
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
ORDER BY a.modify_time DESC
</select>
<select id="selectDetailById" resultType="com.njzscloud.supervisory.route.pojo.OrderRouteEntity">
SELECT a.id,
a.order_id,
a.project_id,
a.company_id,
a.station_id,
a.name,
a.creator_id,
a.modifier_id,
a.create_time,
a.modify_time,
a.deleted,
b.company_name start_address,
c.station_name end_address
FROM order_route a
LEFT JOIN biz_company b ON b.id = a.company_id
LEFT JOIN biz_company c ON c.id = a.station_id
WHERE a.id = #{id}
AND a.deleted = 0
</select>
<select id="getByOrderId" resultType="com.njzscloud.supervisory.route.pojo.OrderRouteEntity">
SELECT a.id,
a.order_id,
a.project_id,
a.company_id,
a.station_id,
a.name,
a.creator_id,
a.modifier_id,
a.create_time,
a.modify_time,
a.deleted,
b.company_name start_address,
c.station_name end_address
FROM order_route a
LEFT JOIN biz_company b ON b.id = a.company_id
LEFT JOIN biz_company c ON c.id = a.station_id
WHERE a.order_id = #{orderId}
AND a.deleted = 0
</select>
</mapper>

View File

@ -15,7 +15,7 @@
a.modify_time, a.modify_time,
a.deleted, a.deleted,
b.company_name start_address, b.company_name start_address,
c.company_name end_address c.station_name end_address
FROM biz_route a FROM biz_route a
LEFT JOIN biz_company b ON b.id = a.company_id LEFT JOIN biz_company b ON b.id = a.company_id
LEFT JOIN biz_company c ON c.id = a.station_id LEFT JOIN biz_company c ON c.id = a.station_id
@ -37,7 +37,7 @@
a.modify_time, a.modify_time,
a.deleted, a.deleted,
b.company_name start_address, b.company_name start_address,
c.company_name end_address c.station_name end_address
FROM biz_route a FROM biz_route a
LEFT JOIN biz_company b ON b.id = a.company_id LEFT JOIN biz_company b ON b.id = a.company_id
LEFT JOIN biz_company c ON c.id = a.station_id LEFT JOIN biz_company c ON c.id = a.station_id