新增上下班打卡功能、新增订单时填充直线距离
parent
b4c22e5ed6
commit
7ba947a94b
|
|
@ -49,7 +49,7 @@ public class BizCarController extends BaseController
|
|||
}
|
||||
|
||||
/**
|
||||
* 查询车辆列表(分页)
|
||||
* 查询车辆列表(不分页)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:car:list')")
|
||||
@GetMapping("/list2")
|
||||
|
|
@ -113,4 +113,16 @@ public class BizCarController extends BaseController
|
|||
{
|
||||
return toAjax(bizCarService.deleteBizCarByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆轨迹信息(不分页)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:car:list')")
|
||||
@GetMapping("/track/list")
|
||||
public AjaxResult trackList(@RequestParam Long carId,
|
||||
@RequestParam String startTime,
|
||||
@RequestParam String endTime)
|
||||
{
|
||||
return AjaxResult.success(bizCarService.selectBizTrackList(carId,startTime,endTime));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,18 +3,13 @@ package com.cpxt.web.controller.biz;
|
|||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cpxt.biz.domain.BizCarState;
|
||||
import com.cpxt.biz.service.IBizCarStateService;
|
||||
import com.cpxt.common.constant.HttpStatus;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.cpxt.common.annotation.Log;
|
||||
import com.cpxt.common.core.controller.BaseController;
|
||||
import com.cpxt.common.core.domain.AjaxResult;
|
||||
|
|
@ -29,9 +24,8 @@ import com.cpxt.common.core.page.TableDataInfo;
|
|||
* @date 2024-12-18
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/system/state")
|
||||
public class BizCarStateController extends BaseController
|
||||
{
|
||||
@RequestMapping("/biz/state")
|
||||
public class BizCarStateController extends BaseController {
|
||||
@Autowired
|
||||
private IBizCarStateService bizCarStateService;
|
||||
|
||||
|
|
@ -40,11 +34,34 @@ public class BizCarStateController extends BaseController
|
|||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:state:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizCarState bizCarState)
|
||||
{
|
||||
startPage();
|
||||
List<BizCarState> list = bizCarStateService.selectBizCarStateList(bizCarState);
|
||||
return getDataTable(list);
|
||||
public TableDataInfo list(BizCarState bizCarState,
|
||||
@RequestParam(defaultValue = "1") int pageNum,
|
||||
@RequestParam(defaultValue = "10") int pageSize) {
|
||||
Page<BizCarState> recordPage = bizCarStateService.selectBizCarStatePage(bizCarState, pageNum, pageSize);
|
||||
TableDataInfo rspData = new TableDataInfo();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setMsg("查询成功");
|
||||
rspData.setRows(recordPage.getRecords());
|
||||
rspData.setTotal(recordPage.getTotal());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆实时状态列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:state:list')")
|
||||
@GetMapping("/list2")
|
||||
public AjaxResult list2(BizCarState bizCarState) {
|
||||
return AjaxResult.success(bizCarStateService.selectBizCarStateList(bizCarState));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆实时状态(根据车辆id)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:state:list')")
|
||||
@GetMapping("/listByCarId")
|
||||
public AjaxResult listByCarId(BizCarState bizCarState) {
|
||||
return AjaxResult.success(bizCarStateService.selectBizCarStateByCarId(bizCarState.getCarId()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -53,8 +70,7 @@ public class BizCarStateController extends BaseController
|
|||
@PreAuthorize("@ss.hasPermi('system:state:export')")
|
||||
@Log(title = "车辆实时状态", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, BizCarState bizCarState)
|
||||
{
|
||||
public void export(HttpServletResponse response, BizCarState bizCarState) {
|
||||
List<BizCarState> list = bizCarStateService.selectBizCarStateList(bizCarState);
|
||||
ExcelUtil<BizCarState> util = new ExcelUtil<BizCarState>(BizCarState.class);
|
||||
util.exportExcel(response, list, "车辆实时状态数据");
|
||||
|
|
@ -65,8 +81,7 @@ public class BizCarStateController extends BaseController
|
|||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:state:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return success(bizCarStateService.selectBizCarStateById(id));
|
||||
}
|
||||
|
||||
|
|
@ -76,8 +91,7 @@ public class BizCarStateController extends BaseController
|
|||
@PreAuthorize("@ss.hasPermi('system:state:add')")
|
||||
@Log(title = "车辆实时状态", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizCarState bizCarState)
|
||||
{
|
||||
public AjaxResult add(@RequestBody BizCarState bizCarState) {
|
||||
return toAjax(bizCarStateService.insertBizCarState(bizCarState));
|
||||
}
|
||||
|
||||
|
|
@ -87,8 +101,7 @@ public class BizCarStateController extends BaseController
|
|||
@PreAuthorize("@ss.hasPermi('system:state:edit')")
|
||||
@Log(title = "车辆实时状态", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizCarState bizCarState)
|
||||
{
|
||||
public AjaxResult edit(@RequestBody BizCarState bizCarState) {
|
||||
return toAjax(bizCarStateService.updateBizCarState(bizCarState));
|
||||
}
|
||||
|
||||
|
|
@ -97,9 +110,8 @@ public class BizCarStateController extends BaseController
|
|||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:state:remove')")
|
||||
@Log(title = "车辆实时状态", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(bizCarStateService.deleteBizCarStateByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,105 @@
|
|||
package com.cpxt.web.controller.biz;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.cpxt.biz.domain.BizDriverClock;
|
||||
import com.cpxt.biz.service.IBizDriverClockService;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.cpxt.common.annotation.Log;
|
||||
import com.cpxt.common.core.controller.BaseController;
|
||||
import com.cpxt.common.core.domain.AjaxResult;
|
||||
import com.cpxt.common.enums.BusinessType;
|
||||
import com.cpxt.common.utils.poi.ExcelUtil;
|
||||
import com.cpxt.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 司机打卡记录Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-12-23
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/system/clock")
|
||||
public class BizDriverClockController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IBizDriverClockService bizDriverClockService;
|
||||
|
||||
/**
|
||||
* 查询司机打卡记录列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizDriverClock bizDriverClock)
|
||||
{
|
||||
startPage();
|
||||
List<BizDriverClock> list = bizDriverClockService.selectBizDriverClockList(bizDriverClock);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出司机打卡记录列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:export')")
|
||||
@Log(title = "司机打卡记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, BizDriverClock bizDriverClock)
|
||||
{
|
||||
List<BizDriverClock> list = bizDriverClockService.selectBizDriverClockList(bizDriverClock);
|
||||
ExcelUtil<BizDriverClock> util = new ExcelUtil<BizDriverClock>(BizDriverClock.class);
|
||||
util.exportExcel(response, list, "司机打卡记录数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取司机打卡记录详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(bizDriverClockService.selectBizDriverClockById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增司机打卡记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:add')")
|
||||
@Log(title = "司机打卡记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody BizDriverClock bizDriverClock)
|
||||
{
|
||||
return toAjax(bizDriverClockService.insertBizDriverClock(bizDriverClock));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改司机打卡记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:edit')")
|
||||
@Log(title = "司机打卡记录", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody BizDriverClock bizDriverClock)
|
||||
{
|
||||
return toAjax(bizDriverClockService.updateBizDriverClock(bizDriverClock));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除司机打卡记录
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('system:clock:remove')")
|
||||
@Log(title = "司机打卡记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(bizDriverClockService.deleteBizDriverClockByIds(ids));
|
||||
}
|
||||
}
|
||||
|
|
@ -37,7 +37,6 @@ public class BizDriverController extends BaseController
|
|||
/**
|
||||
* 查询司机列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:driver:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(BizDriver bizDriver)
|
||||
{
|
||||
|
|
@ -49,7 +48,6 @@ public class BizDriverController extends BaseController
|
|||
/**
|
||||
* 查询司机列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:driver:list')")
|
||||
@GetMapping("/list2")
|
||||
public AjaxResult list2(BizDriver bizDriver)
|
||||
{
|
||||
|
|
@ -72,7 +70,6 @@ public class BizDriverController extends BaseController
|
|||
/**
|
||||
* 获取司机详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:driver:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ public class BizOrderController extends BaseController {
|
|||
/**
|
||||
* 查询订单列表(主驾司机或者副驾司机是当前用户 - 分页)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('biz:order:list')")
|
||||
@GetMapping("/listByDriver")
|
||||
public TableDataInfo list(String orderStatus,
|
||||
@RequestParam(defaultValue = "1") int pageNum,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package com.cpxt.web.controller.system;
|
|||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.cpxt.common.annotation.Anonymous;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
|
@ -62,6 +64,7 @@ public class SysLoginController
|
|||
* @param loginBody 登录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Anonymous
|
||||
@PostMapping("/appLogin")
|
||||
public AjaxResult appLogin(@RequestBody LoginBody loginBody)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ public class OrderTask {
|
|||
String format = DateUtil.format(new Date(), "yyyyMMdd"); // 20241220
|
||||
String orderSn;
|
||||
BizOrder order = orderTask.orderMapper.selectLastestOrder();
|
||||
if (order == null || !order.getOrderSn().substring(1, 8).equals(format)){
|
||||
if (order == null || !order.getOrderSn().substring(1, 9).equals(format)){
|
||||
orderSn = "Y" + format + "1001";
|
||||
}else {
|
||||
String sn = order.getOrderSn();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.cpxt.common.utils;
|
||||
|
||||
/**
|
||||
* 坐标位置相关util
|
||||
*/
|
||||
public class PositionUtil {
|
||||
|
||||
/**
|
||||
* 赤道半径(单位:米)
|
||||
*/
|
||||
private static final double EQUATOR_RADIUS = 6378137;
|
||||
|
||||
/**
|
||||
* 方法一:(反余弦计算方式)
|
||||
*
|
||||
* @param longitude1 第一个点的经度
|
||||
* @param latitude1 第一个点的纬度
|
||||
* @param longitude2 第二个点的经度
|
||||
* @param latitude2 第二个点的纬度
|
||||
* @return 返回距离,单位m
|
||||
*/
|
||||
public static double getDistance1(double longitude1, double latitude1, double longitude2, double latitude2) {
|
||||
// 纬度
|
||||
double lat1 = Math.toRadians(latitude1);
|
||||
double lat2 = Math.toRadians(latitude2);
|
||||
// 经度
|
||||
double lon1 = Math.toRadians(longitude1);
|
||||
double lon2 = Math.toRadians(longitude2);
|
||||
// 纬度之差
|
||||
double a = lat1 - lat2;
|
||||
// 经度之差
|
||||
double b = lon1 - lon2;
|
||||
// 计算两点距离的公式
|
||||
double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(lat1) * Math.cos(lat2) * Math.pow(Math.sin(b / 2), 2)));
|
||||
// 弧长乘赤道半径, 返回单位: 米
|
||||
s = s * EQUATOR_RADIUS;
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
|
@ -87,4 +87,14 @@ public class BizDriver
|
|||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
/** 当前车辆id */
|
||||
private Long currentCarId;
|
||||
|
||||
/** 当前车辆车牌号 */
|
||||
private String currentCarNo;
|
||||
|
||||
/** 在线状态 1 在线 0 离线 */
|
||||
private Integer onlineStatus;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,64 @@
|
|||
package com.cpxt.biz.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.cpxt.common.annotation.Excel;
|
||||
import com.cpxt.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 司机打卡记录对象 biz_driver_clock
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-12-23
|
||||
*/
|
||||
@Data
|
||||
public class BizDriverClock
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** ID */
|
||||
private Long id;
|
||||
|
||||
/** 司机ID */
|
||||
@Excel(name = "司机ID")
|
||||
private Long driverId;
|
||||
|
||||
/** 打卡类型 上班 下班 */
|
||||
@Excel(name = "打卡类型 上班 下班")
|
||||
private Integer clockType;
|
||||
|
||||
/** 打卡时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "打卡时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date clockTime;
|
||||
|
||||
/** 打卡车辆 */
|
||||
@Excel(name = "打卡车辆")
|
||||
private Long clockCarId;
|
||||
|
||||
/** 打卡车牌号 */
|
||||
@Excel(name = "打卡车牌号")
|
||||
private String clockCarNo;
|
||||
|
||||
/** 打卡照片 */
|
||||
@Excel(name = "打卡照片")
|
||||
private String clockImg;
|
||||
|
||||
/** 状态 */
|
||||
@Excel(name = "状态")
|
||||
private Integer status;
|
||||
|
||||
/** 创建时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
/** 更新时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
}
|
||||
|
|
@ -147,6 +147,10 @@ public class BizOrder
|
|||
@Excel(name = "收件人公司名称")
|
||||
private String receiverCompany;
|
||||
|
||||
/** 直接距离 */
|
||||
@Excel(name = "直接距离")
|
||||
private Double lineDistance;
|
||||
|
||||
/** 物品类型 */
|
||||
@Excel(name = "物品类型")
|
||||
private String goodsType;
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ package com.cpxt.biz.mapper;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.cpxt.biz.domain.BizCar;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 车辆Mapper接口
|
||||
|
|
@ -29,4 +29,7 @@ public interface BizCarMapper extends BaseMapper<BizCar>
|
|||
@Select("select * from biz_car where car_no = #{carNo}")
|
||||
BizCar selectByCarNo(String carNo);
|
||||
|
||||
@Select("select * from ${tableName} where gps_time >= #{startTime} and gps_time <= #{endTime}")
|
||||
List<Map> selectBizTrackList(@Param("tableName") String tableName,@Param("startTime") String startTime,@Param("endTime") String endTime);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,4 +16,7 @@ public interface BizCarStateMapper extends BaseMapper<BizCarState>
|
|||
{
|
||||
@Select("select * from biz_car_state where vehicle_no = #{carNo}")
|
||||
BizCarState selectByCarNo(String carNo);
|
||||
|
||||
@Select("select * from biz_car_state where car_id = ${carId}")
|
||||
BizCarState selectBizCarStateByCarId(Long carId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
package com.cpxt.biz.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.cpxt.biz.domain.BizDriverClock;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 司机打卡记录Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-12-23
|
||||
*/
|
||||
@Mapper
|
||||
public interface BizDriverClockMapper extends BaseMapper<BizDriverClock>
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
package com.cpxt.biz.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cpxt.biz.domain.BizCar;
|
||||
|
|
@ -63,4 +64,6 @@ public interface IBizCarService
|
|||
|
||||
Page<BizCar> selectBizCarPage(BizCar bizCar,int pageNum,int pageSize);
|
||||
|
||||
List<Map> selectBizTrackList(Long carId, String startTime, String endTime);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.cpxt.biz.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cpxt.biz.domain.BizCarState;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -58,4 +59,8 @@ public interface IBizCarStateService
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteBizCarStateById(Long id);
|
||||
|
||||
Page<BizCarState> selectBizCarStatePage(BizCarState bizCarState, int pageNum, int pageSize);
|
||||
|
||||
BizCarState selectBizCarStateByCarId(Long carId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
package com.cpxt.biz.service;
|
||||
|
||||
import com.cpxt.biz.domain.BizDriverClock;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 司机打卡记录Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-12-23
|
||||
*/
|
||||
public interface IBizDriverClockService
|
||||
{
|
||||
/**
|
||||
* 查询司机打卡记录
|
||||
*
|
||||
* @param id 司机打卡记录主键
|
||||
* @return 司机打卡记录
|
||||
*/
|
||||
public BizDriverClock selectBizDriverClockById(Long id);
|
||||
|
||||
/**
|
||||
* 查询司机打卡记录列表
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 司机打卡记录集合
|
||||
*/
|
||||
public List<BizDriverClock> selectBizDriverClockList(BizDriverClock bizDriverClock);
|
||||
|
||||
/**
|
||||
* 新增司机打卡记录
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertBizDriverClock(BizDriverClock bizDriverClock);
|
||||
|
||||
/**
|
||||
* 修改司机打卡记录
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateBizDriverClock(BizDriverClock bizDriverClock);
|
||||
|
||||
/**
|
||||
* 批量删除司机打卡记录
|
||||
*
|
||||
* @param ids 需要删除的司机打卡记录主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBizDriverClockByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除司机打卡记录信息
|
||||
*
|
||||
* @param id 司机打卡记录主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteBizDriverClockById(Long id);
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@ package com.cpxt.biz.service.impl;
|
|||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
|
@ -13,6 +14,7 @@ import org.springframework.stereotype.Service;
|
|||
import com.cpxt.biz.mapper.BizCarMapper;
|
||||
import com.cpxt.biz.domain.BizCar;
|
||||
import com.cpxt.biz.service.IBizCarService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 车辆Service业务层处理
|
||||
|
|
@ -92,6 +94,7 @@ public class BizCarServiceImpl implements IBizCarService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizCar(BizCar bizCar)
|
||||
{
|
||||
int i = bizCarMapper.insert(bizCar);
|
||||
|
|
@ -147,4 +150,10 @@ public class BizCarServiceImpl implements IBizCarService
|
|||
updateWrapper.set("status","2"); //状态改为删除
|
||||
return bizCarMapper.update(null,updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map> selectBizTrackList(Long carId, String startTime, String endTime) {
|
||||
String tableName = "track_" + carId;
|
||||
return bizCarMapper.selectBizTrackList(tableName,startTime,endTime);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ package com.cpxt.biz.service.impl;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.cpxt.biz.domain.BizCarState;
|
||||
import com.cpxt.biz.mapper.BizCarStateMapper;
|
||||
import com.cpxt.biz.service.IBizCarStateService;
|
||||
|
|
@ -22,6 +24,32 @@ public class BizCarStateServiceImpl implements IBizCarStateService
|
|||
@Autowired
|
||||
private BizCarStateMapper bizCarStateMapper;
|
||||
|
||||
/**
|
||||
* 查询车辆实时状态列表(分页)
|
||||
*
|
||||
* @param bizCarState 车辆实时状态
|
||||
* @return 车辆实时状态
|
||||
*/
|
||||
@Override
|
||||
public Page<BizCarState> selectBizCarStatePage(BizCarState bizCarState,int pageNum, int pageSize)
|
||||
{
|
||||
LambdaQueryWrapper<BizCarState> queryWrapper = buildQueryWrapper(bizCarState);
|
||||
return bizCarStateMapper.selectPage(new Page<>(pageNum,pageSize),queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BizCarState selectBizCarStateByCarId(Long carId) {
|
||||
return bizCarStateMapper.selectBizCarStateByCarId(carId);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<BizCarState> buildQueryWrapper(BizCarState bizCarState) {
|
||||
LambdaQueryWrapper<BizCarState> queryWrapper = new LambdaQueryWrapper<>();
|
||||
if (ObjectUtil.isNotEmpty(bizCarState.getCarNo())){
|
||||
queryWrapper.eq(BizCarState::getCarNo, bizCarState.getCarNo());
|
||||
}
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询车辆实时状态
|
||||
*
|
||||
|
|
@ -43,8 +71,7 @@ public class BizCarStateServiceImpl implements IBizCarStateService
|
|||
@Override
|
||||
public List<BizCarState> selectBizCarStateList(BizCarState bizCarState)
|
||||
{
|
||||
LambdaQueryWrapper<BizCarState> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
LambdaQueryWrapper<BizCarState> queryWrapper = buildQueryWrapper(bizCarState);
|
||||
return bizCarStateMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
|
|||
import com.cpxt.biz.mapper.BizCustomerRouteMapper;
|
||||
import com.cpxt.biz.domain.BizCustomerRoute;
|
||||
import com.cpxt.biz.service.IBizCustomerRouteService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 路线Service业务层处理
|
||||
|
|
@ -70,6 +71,7 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizCustomerRoute(BizCustomerRoute bizCustomerRoute)
|
||||
{
|
||||
int insert = bizCustomerRouteMapper.insert(bizCustomerRoute);
|
||||
|
|
@ -92,6 +94,7 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateBizCustomerRoute(BizCustomerRoute bizCustomerRoute)
|
||||
{
|
||||
// 修改完路线同步修改到路线和店铺的关联表
|
||||
|
|
@ -115,6 +118,7 @@ public class BizCustomerRouteServiceImpl implements IBizCustomerRouteService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteBizCustomerRouteByIds(Long[] ids)
|
||||
{
|
||||
// 同步删除路线和店铺的关联表
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
|
|||
import com.cpxt.biz.mapper.BizCustomerMapper;
|
||||
import com.cpxt.biz.domain.BizCustomer;
|
||||
import com.cpxt.biz.service.IBizCustomerService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 客户Service业务层处理
|
||||
|
|
@ -100,6 +101,7 @@ public class BizCustomerServiceImpl implements IBizCustomerService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizCustomer(BizCustomer bizCustomer)
|
||||
{
|
||||
Long parentId = sysDeptMapper.selectDeptIdByDeptName("外部单位");
|
||||
|
|
@ -152,6 +154,7 @@ public class BizCustomerServiceImpl implements IBizCustomerService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteBizCustomerByIds(Long[] ids)
|
||||
{
|
||||
// 删除客户对应的用户
|
||||
|
|
|
|||
|
|
@ -0,0 +1,127 @@
|
|||
package com.cpxt.biz.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.cpxt.biz.domain.BizDriver;
|
||||
import com.cpxt.biz.domain.BizDriverClock;
|
||||
import com.cpxt.biz.domain.BizOrder;
|
||||
import com.cpxt.biz.mapper.BizDriverClockMapper;
|
||||
import com.cpxt.biz.mapper.BizDriverMapper;
|
||||
import com.cpxt.biz.mapper.BizOrderMapper;
|
||||
import com.cpxt.biz.service.IBizDriverClockService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 司机打卡记录Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-12-23
|
||||
*/
|
||||
@Service
|
||||
public class BizDriverClockServiceImpl implements IBizDriverClockService
|
||||
{
|
||||
@Autowired
|
||||
private BizDriverClockMapper bizDriverClockMapper;
|
||||
|
||||
@Autowired
|
||||
private BizOrderMapper bizOrderMapper;
|
||||
|
||||
@Autowired
|
||||
private BizDriverMapper bizDriverMapper;
|
||||
|
||||
/**
|
||||
* 查询司机打卡记录
|
||||
*
|
||||
* @param id 司机打卡记录主键
|
||||
* @return 司机打卡记录
|
||||
*/
|
||||
@Override
|
||||
public BizDriverClock selectBizDriverClockById(Long id)
|
||||
{
|
||||
return bizDriverClockMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询司机打卡记录列表
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 司机打卡记录
|
||||
*/
|
||||
@Override
|
||||
public List<BizDriverClock> selectBizDriverClockList(BizDriverClock bizDriverClock)
|
||||
{
|
||||
LambdaQueryWrapper<BizDriverClock> queryWrapper = new LambdaQueryWrapper<>();
|
||||
return bizDriverClockMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增司机打卡记录
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizDriverClock(BizDriverClock bizDriverClock)
|
||||
{
|
||||
// 新增司机打卡记录时
|
||||
// 1、同步修改订单表中订单司机是该司机并且状态为待取件和配送中的订单的车牌号为打卡车辆车牌号
|
||||
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BizOrder::getDriverId,bizDriverClock.getDriverId());
|
||||
queryWrapper.in(BizOrder::getOrderStatus, Arrays.asList("1","2"));
|
||||
queryWrapper.eq(BizOrder::getStatus,1);
|
||||
List<BizOrder> bizOrderList = bizOrderMapper.selectList(queryWrapper);
|
||||
if (bizOrderList.size() > 0){
|
||||
for (BizOrder bizOrder : bizOrderList) {
|
||||
bizOrder.setCarId(bizDriverClock.getClockCarId());
|
||||
bizOrder.setCarNo(bizDriverClock.getClockCarNo());
|
||||
bizOrderMapper.updateById(bizOrder);
|
||||
}
|
||||
}
|
||||
// 2、上班打卡修改司机的状态为在线 下班打卡修改司机的状态为离线
|
||||
BizDriver bizDriver = bizDriverMapper.selectById(bizDriverClock.getDriverId());
|
||||
bizDriver.setOnlineStatus(bizDriverClock.getClockType());
|
||||
bizDriverMapper.updateById(bizDriver);
|
||||
return bizDriverClockMapper.insert(bizDriverClock);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改司机打卡记录
|
||||
*
|
||||
* @param bizDriverClock 司机打卡记录
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateBizDriverClock(BizDriverClock bizDriverClock)
|
||||
{
|
||||
return bizDriverClockMapper.updateById(bizDriverClock);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除司机打卡记录
|
||||
*
|
||||
* @param ids 需要删除的司机打卡记录主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteBizDriverClockByIds(Long[] ids)
|
||||
{
|
||||
return bizDriverClockMapper.deleteBatchIds(Arrays.asList(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除司机打卡记录信息
|
||||
*
|
||||
* @param id 司机打卡记录主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteBizDriverClockById(Long id)
|
||||
{
|
||||
return bizDriverClockMapper.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;
|
|||
import com.cpxt.biz.mapper.BizDriverMapper;
|
||||
import com.cpxt.biz.domain.BizDriver;
|
||||
import com.cpxt.biz.service.IBizDriverService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 司机Service业务层处理
|
||||
|
|
@ -93,6 +94,7 @@ public class BizDriverServiceImpl implements IBizDriverService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizDriver(BizDriver bizDriver)
|
||||
{
|
||||
bizDriver.setDeptName(sysDeptMapper.selectDeptById(bizDriver.getDeptId()).getDeptName());
|
||||
|
|
@ -138,6 +140,7 @@ public class BizDriverServiceImpl implements IBizDriverService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteBizDriverByIds(Long[] ids)
|
||||
{
|
||||
// 删除司机对应用户
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.cpxt.biz.domain.vo.BizOrderVo;
|
|||
import com.cpxt.biz.domain.vo.BizOrderVoCustomer;
|
||||
import com.cpxt.biz.mapper.*;
|
||||
import com.cpxt.common.exception.ServiceException;
|
||||
import com.cpxt.common.utils.PositionUtil;
|
||||
import com.cpxt.common.utils.SecurityUtils;
|
||||
import com.cpxt.common.utils.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
|
|
@ -320,6 +321,12 @@ public class BizOrderServiceImpl implements IBizOrderService {
|
|||
if (ObjectUtil.isNotEmpty(carId)) bizOrder.setCarNo(bizCarMapper.selectById(carId).getCarNo());
|
||||
if (ObjectUtil.isNotEmpty(driverId)) bizOrder.setDriverName(bizDriverMapper.selectById(driverId).getName());
|
||||
if (ObjectUtil.isNotEmpty(copilotId)) bizOrder.setCopilotName(bizDriverMapper.selectById(copilotId).getName());
|
||||
|
||||
// 计算直线距离
|
||||
if (ObjectUtil.isNotEmpty(bizOrder.getSenderLng()) && ObjectUtil.isNotEmpty(bizOrder.getSenderLat()) && ObjectUtil.isNotEmpty(bizOrder.getReceiverLng()) && ObjectUtil.isNotEmpty(bizOrder.getReceiverLat())){
|
||||
double lineDistance = PositionUtil.getDistance1(bizOrder.getSenderLng().doubleValue(), bizOrder.getSenderLat().doubleValue(), bizOrder.getReceiverLng().doubleValue(), bizOrder.getReceiverLat().doubleValue());
|
||||
bizOrder.setLineDistance(lineDistance);
|
||||
}
|
||||
return bizOrderMapper.insert(bizOrder);
|
||||
}
|
||||
|
||||
|
|
@ -608,7 +615,7 @@ public class BizOrderServiceImpl implements IBizOrderService {
|
|||
String format = DateUtil.format(new Date(), "yyyyMMdd"); // 20241220
|
||||
String orderSn;
|
||||
BizOrder order = bizOrderMapper.selectLastestOrder();
|
||||
if (order == null){
|
||||
if (order == null || !order.getOrderSn().substring(1, 9).equals(format)){
|
||||
orderSn = "Y" + format + "1001";
|
||||
}else {
|
||||
String sn = order.getOrderSn();
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import com.cpxt.quartz.domain.SysJob;
|
|||
import com.cpxt.quartz.mapper.SysJobMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 订单任务Service业务层处理
|
||||
|
|
@ -65,6 +66,7 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int insertBizOrderTask(BizOrderTask bizOrderTask)
|
||||
{
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
|
|
@ -95,6 +97,7 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int updateBizOrderTask(BizOrderTask bizOrderTask)
|
||||
{
|
||||
// 同步修改订单任务
|
||||
|
|
@ -120,6 +123,7 @@ public class BizOrderTaskServiceImpl implements IBizOrderTaskService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public int deleteBizOrderTaskByIds(Integer[] ids)
|
||||
{
|
||||
// 同步删除job表中的任务
|
||||
|
|
|
|||
Loading…
Reference in New Issue