diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteController.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteController.java new file mode 100644 index 0000000..8d1849b --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteController.java @@ -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 ids) { + orderRouteService.del(ids); + return R.success(); + } + + /** + * 详情 + */ + @GetMapping("/detail") + public R detail(@RequestParam Long id) { + return R.success(orderRouteService.detail(id)); + } + + /** + * 分页查询 + */ + @GetMapping("/paging") + public R> paging(PageParam pageParam, OrderRouteEntity routeEntity) { + return R.success(orderRouteService.paging(pageParam, routeEntity)); + } + + /** + * 根据订单Id查看路线详情 + */ + @GetMapping("/getByOrderId") + public R getByOrderId(@RequestParam Long orderId) { + return R.success(orderRouteService.getByOrderId(orderId)); + } + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteDetailController.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteDetailController.java new file mode 100644 index 0000000..64d264b --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/controller/OrderRouteDetailController.java @@ -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 ids) { + orderRouteDetailService.del(ids); + return R.success(); + } + + /** + * 详情 + */ + @GetMapping("/detail") + public R detail(@RequestParam Long id) { + return R.success(orderRouteDetailService.detail(id)); + } + + /** + * 分页查询 + */ + @GetMapping("/paging") + public R> paging(PageParam pageParam, OrderRouteDetailEntity detailEntity) { + return R.success(orderRouteDetailService.paging(pageParam, detailEntity)); + } + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteDetailMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteDetailMapper.java new file mode 100644 index 0000000..e865b2f --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteDetailMapper.java @@ -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 { + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteMapper.java new file mode 100644 index 0000000..009b6d9 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/mapper/OrderRouteMapper.java @@ -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 { + + IPage paging(Page page, @Param("ew") QueryWrapper ew); + + OrderRouteEntity selectDetailById(@Param("id") Long id); + + OrderRouteEntity getByOrderId(@Param("orderId") Long orderId); + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteDetailEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteDetailEntity.java new file mode 100644 index 0000000..d87225a --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteDetailEntity.java @@ -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; + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteEntity.java new file mode 100644 index 0000000..c33f70c --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/OrderRouteEntity.java @@ -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 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; + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/RouteEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/RouteEntity.java index eb979f5..40bb027 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/RouteEntity.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/pojo/RouteEntity.java @@ -9,7 +9,7 @@ import java.time.LocalDateTime; import java.util.List; /** - * 优惠管理 + * 路线管理 */ @Getter @Setter diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteDetailService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteDetailService.java new file mode 100644 index 0000000..119fcd7 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteDetailService.java @@ -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 { + + /** + * 新增 + */ + void add(OrderRouteDetailEntity detailEntity); + + /** + * 修改 + */ + void modify(OrderRouteDetailEntity detailEntity); + + /** + * 删除 + */ + void del(List ids); + + /** + * 详情 + */ + OrderRouteDetailEntity detail(Long id); + + /** + * 分页查询 + */ + PageResult paging(PageParam pageParam, OrderRouteDetailEntity detailEntity); + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteService.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteService.java new file mode 100644 index 0000000..46bdd3f --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/OrderRouteService.java @@ -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 { + + /** + * 新增 + */ + void add(OrderRouteEntity orderRouteEntity); + + /** + * 修改 + */ + void modify(OrderRouteEntity orderRouteEntity); + + /** + * 删除 + */ + void del(List ids); + + /** + * 详情 + */ + OrderRouteEntity detail(Long id); + + /** + * 分页查询 + */ + PageResult paging(PageParam pageParam, OrderRouteEntity orderRouteEntity); + + /** + * 根据订单Id查看路线详情 + */ + OrderRouteEntity getByOrderId(Long orderId); + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteDetailServiceImpl.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteDetailServiceImpl.java new file mode 100644 index 0000000..a7dc240 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteDetailServiceImpl.java @@ -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 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 ids) { + this.removeBatchByIds(ids); + } + + /** + * 详情 + */ + @Override + public OrderRouteDetailEntity detail(Long id) { + return this.getById(id); + } + + /** + * 分页查询 + */ + @Override + public PageResult paging(PageParam pageParam, OrderRouteDetailEntity detailEntity) { + Page page = this.page(pageParam.toPage(), Wrappers.lambdaQuery() + .eq(StrUtil.isNotBlank(detailEntity.getName()), OrderRouteDetailEntity::getName, detailEntity.getName()) + .eq(OrderRouteDetailEntity::getDeleted, Boolean.FALSE) + .orderByDesc(OrderRouteDetailEntity::getCreateTime)); + return PageResult.of(page); + } + +} + diff --git a/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteServiceImpl.java b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteServiceImpl.java new file mode 100644 index 0000000..c58be2a --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/supervisory/route/service/impl/OrderRouteServiceImpl.java @@ -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 implements OrderRouteService { + + private final OrderRouteDetailService orderRouteDetailService; + + private final OrderRouteMapper orderRouteMapper; + + /** + * 新增 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void add(OrderRouteEntity orderRouteEntity) { + this.save(orderRouteEntity); + // 保存详情 + List 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.lambdaQuery() + .in(OrderRouteDetailEntity::getOrderRouteId, orderRouteEntity.getId())); + List 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 ids) { + this.removeBatchByIds(ids); + for (Long id : ids) { + // 删除详细路线 + orderRouteDetailService.remove(Wrappers.lambdaQuery() + .in(OrderRouteDetailEntity::getOrderRouteId, id)); + } + } + + /** + * 详情 + */ + @Override + public OrderRouteEntity detail(Long id) { + OrderRouteEntity entity = orderRouteMapper.selectDetailById(id); + List 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 paging(PageParam pageParam, OrderRouteEntity routeEntity) { + QueryWrapper ew = Wrappers.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 page = orderRouteMapper.paging(pageParam.toPage(), ew); + for (OrderRouteEntity entity : page.getRecords()) { + List 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 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; + } + +} + diff --git a/njzscloud-svr/src/main/resources/mapper/route/OrderRouteMapper.xml b/njzscloud-svr/src/main/resources/mapper/route/OrderRouteMapper.xml new file mode 100644 index 0000000..6d2b805 --- /dev/null +++ b/njzscloud-svr/src/main/resources/mapper/route/OrderRouteMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + diff --git a/njzscloud-svr/src/main/resources/mapper/route/RouteMapper.xml b/njzscloud-svr/src/main/resources/mapper/route/RouteMapper.xml index ae68f66..0b69c60 100644 --- a/njzscloud-svr/src/main/resources/mapper/route/RouteMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/route/RouteMapper.xml @@ -15,7 +15,7 @@ a.modify_time, a.deleted, b.company_name start_address, - c.company_name end_address + c.station_name end_address FROM biz_route a LEFT JOIN biz_company b ON b.id = a.company_id LEFT JOIN biz_company c ON c.id = a.station_id @@ -37,7 +37,7 @@ a.modify_time, a.deleted, b.company_name start_address, - c.company_name end_address + c.station_name end_address FROM biz_route a LEFT JOIN biz_company b ON b.id = a.company_id LEFT JOIN biz_company c ON c.id = a.station_id