修改上下班打卡逻辑

master
luojian 2025-01-02 11:28:55 +08:00
parent 54c939bb30
commit 158514632e
10 changed files with 135 additions and 50 deletions

View File

@ -5,6 +5,7 @@ import javax.servlet.http.HttpServletResponse;
import com.cpxt.biz.domain.BizDriverClock; import com.cpxt.biz.domain.BizDriverClock;
import com.cpxt.biz.service.IBizDriverClockService; import com.cpxt.biz.service.IBizDriverClockService;
import org.checkerframework.checker.units.qual.A;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -84,7 +85,6 @@ public class BizDriverClockController extends BaseController
/** /**
* *
*/ */
@PreAuthorize("@ss.hasPermi('system:clock:edit')")
@Log(title = "司机打卡记录", businessType = BusinessType.UPDATE) @Log(title = "司机打卡记录", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody BizDriverClock bizDriverClock) public AjaxResult edit(@RequestBody BizDriverClock bizDriverClock)

View File

@ -5,6 +5,7 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cpxt.biz.domain.vo.BizCustomerRouteVo;
import com.cpxt.biz.domain.vo.BizOrderVo; import com.cpxt.biz.domain.vo.BizOrderVo;
import com.cpxt.biz.domain.vo.BizOrderVoCustomer; import com.cpxt.biz.domain.vo.BizOrderVoCustomer;
import com.cpxt.common.constant.HttpStatus; import com.cpxt.common.constant.HttpStatus;
@ -91,6 +92,7 @@ public class BizOrderController extends BaseController {
ExcelUtil<BizOrderVo> util = new ExcelUtil<BizOrderVo>(BizOrderVo.class); ExcelUtil<BizOrderVo> util = new ExcelUtil<BizOrderVo>(BizOrderVo.class);
util.importTemplateExcel(response, "订单数据"); util.importTemplateExcel(response, "订单数据");
} else { } else {
ExcelUtil<BizOrderVoCustomer> util = new ExcelUtil<BizOrderVoCustomer>(BizOrderVoCustomer.class); ExcelUtil<BizOrderVoCustomer> util = new ExcelUtil<BizOrderVoCustomer>(BizOrderVoCustomer.class);
util.importTemplateExcel(response, "订单数据"); util.importTemplateExcel(response, "订单数据");
} }

View File

@ -46,11 +46,9 @@ public class LargeScreenController extends BaseController {
@Autowired @Autowired
private BizCustomerShopMapper bizCustomerShopMapper; private BizCustomerShopMapper bizCustomerShopMapper;
@Autowired
private BizDriverClockMapper bizDriverClockMapper;
@Autowired @Autowired
private BizCustomerRouteMapper bizCustomerRouteMapper; private BizCustomerRouteMapper bizCustomerRouteMapper;
@Autowired @Autowired
private BizCustomerWarehouseMapper bizCustomerWarehouseMapper; private BizCustomerWarehouseMapper bizCustomerWarehouseMapper;
@ -92,20 +90,6 @@ public class LargeScreenController extends BaseController {
return AjaxResult.success(largeScreenEntity); return AjaxResult.success(largeScreenEntity);
} }
/**
*
*/
@GetMapping("/driver/remind")
public AjaxResult driverRemind()
{
List<BizDriverClock> bizDriverClockList = getBizDriverClockList(today);
for (BizDriverClock bizDriverClock : bizDriverClockList) {
bizDriverClock.setDriverName(bizDriverMapper.selectById(bizDriverClock.getDriverId()).getName());
}
largeScreenEntity.setBizDriverClockList(bizDriverClockList);
return AjaxResult.success(largeScreenEntity);
}
/** /**
* *
*/ */
@ -302,13 +286,6 @@ public class LargeScreenController extends BaseController {
return bizDriverMapper.selectCount(queryWrapper); return bizDriverMapper.selectCount(queryWrapper);
} }
private List<BizDriverClock> getBizDriverClockList(String today) {
LambdaQueryWrapper<BizDriverClock> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BizDriverClock::getClockTime,today);
queryWrapper.eq(BizDriverClock::getStatus,1);
return bizDriverClockMapper.selectList(queryWrapper);
}
private long getIncompleteOrder(String today) { private long getIncompleteOrder(String today) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BizOrder::getCreateTime, today); queryWrapper.like(BizOrder::getCreateTime, today);

View File

@ -1,6 +1,9 @@
package com.cpxt.web.controller.system; package com.cpxt.web.controller.system;
import java.util.List; import java.util.List;
import com.cpxt.common.annotation.Anonymous;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -44,6 +47,16 @@ public class SysNoticeController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
*
*/
@Anonymous
@GetMapping("/list2")
public AjaxResult list2(SysNotice notice)
{
return AjaxResult.success(noticeService.selectNoticeList(notice));
}
/** /**
* *
*/ */

View File

@ -1,5 +1,6 @@
package com.cpxt.biz.domain; package com.cpxt.biz.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
@ -8,6 +9,7 @@ import com.cpxt.common.annotation.Excel;
import com.cpxt.common.core.domain.BaseEntity; import com.cpxt.common.core.domain.BaseEntity;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* biz_driver * biz_driver
@ -97,4 +99,7 @@ public class BizDriver
/** 在线状态 1 在线 0 离线 */ /** 在线状态 1 在线 0 离线 */
private Integer onlineStatus; private Integer onlineStatus;
@TableField(exist = false)
private List<BizDriverClock> bizDriverClockList;
} }

View File

@ -28,29 +28,41 @@ public class BizDriverClock
@Excel(name = "司机ID") @Excel(name = "司机ID")
private Long driverId; private Long driverId;
@TableField(exist = false)
private String driverName;
/** 打卡类型 上班 下班 */
@Excel(name = "打卡类型 上班 下班")
private Integer clockType;
/** 打卡时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date clockTime;
/** 打卡车辆 */ /** 打卡车辆 */
@Excel(name = "打卡车辆") @Excel(name = "打卡车辆")
private Long clockCarId; private Long carId;
/** 打卡车牌号 */ /** 打卡车牌号 */
@Excel(name = "打卡车牌号") @Excel(name = "打卡车牌号")
private String clockCarNo; private String carNo;
@TableField(exist = false)
private String driverName;
/** 上班打卡时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "上班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date onTime;
/** 打卡照片 */ /** 打卡照片 */
@Excel(name = "打卡照片") @Excel(name = "上班打卡照片")
private String clockImg; private String onImg;
/** 上班打卡说明 */
private String onRemark;
/** 下班打卡时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "下班打卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date offTime;
/** 下班打卡照片 */
@Excel(name = "下班打卡照片")
private String offImg;
/** 下班打卡说明 */
private String offRemark;
/** 状态 */ /** 状态 */
@Excel(name = "状态") @Excel(name = "状态")
@ -64,6 +76,5 @@ public class BizDriverClock
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
/** 备注 */
private String remark;
} }

View File

@ -0,0 +1,56 @@
package com.cpxt.biz.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.cpxt.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* 线 biz_customer_route
*
* @author YIN
* @date 2024-12-16
*/
@Data
public class BizCustomerRouteVo
{
private static final long serialVersionUID = 1L;
/** ID */
private Long id;
/** 客户ID */
// @Excel(name = "客户ID")
private Long customerId;
/** 客户名称 */
// @Excel(name = "客户名称")
private String customerName;
/** 路线名称 */
@Excel(name = "路线名称")
private String name;
/** 状态 */
// @Excel(name = "状态")
private Integer status;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// @Excel(name = "创建时间")
private Date createTime;
/** 更新时间 */
// @Excel(name = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/** 备注 */
private String remark;
@TableField(exist = false)
private List<Long> shops;
}

View File

@ -77,14 +77,14 @@ public class BizDriverClockServiceImpl implements IBizDriverClockService
List<BizOrder> bizOrderList = bizOrderMapper.selectList(queryWrapper); List<BizOrder> bizOrderList = bizOrderMapper.selectList(queryWrapper);
if (bizOrderList.size() > 0){ if (bizOrderList.size() > 0){
for (BizOrder bizOrder : bizOrderList) { for (BizOrder bizOrder : bizOrderList) {
bizOrder.setCarId(bizDriverClock.getClockCarId()); bizOrder.setCarId(bizDriverClock.getCarId());
bizOrder.setCarNo(bizDriverClock.getClockCarNo()); bizOrder.setCarNo(bizDriverClock.getCarNo());
bizOrderMapper.updateById(bizOrder); bizOrderMapper.updateById(bizOrder);
} }
} }
// 2、上班打卡修改司机的状态为在线 下班打卡修改司机的状态为离线 // 2、上班打卡修改司机的状态为在线
BizDriver bizDriver = bizDriverMapper.selectById(bizDriverClock.getDriverId()); BizDriver bizDriver = bizDriverMapper.selectById(bizDriverClock.getDriverId());
bizDriver.setOnlineStatus(bizDriverClock.getClockType()); bizDriver.setOnlineStatus(1);
bizDriverMapper.updateById(bizDriver); bizDriverMapper.updateById(bizDriver);
return bizDriverClockMapper.insert(bizDriverClock); return bizDriverClockMapper.insert(bizDriverClock);
} }
@ -96,8 +96,13 @@ public class BizDriverClockServiceImpl implements IBizDriverClockService
* @return * @return
*/ */
@Override @Override
@Transactional
public int updateBizDriverClock(BizDriverClock bizDriverClock) public int updateBizDriverClock(BizDriverClock bizDriverClock)
{ {
// 同步修改司机的状态为离线
BizDriver bizDriver = bizDriverMapper.selectById(bizDriverClock.getDriverId());
bizDriver.setOnlineStatus(0);
bizDriverMapper.updateById(bizDriver);
return bizDriverClockMapper.updateById(bizDriverClock); return bizDriverClockMapper.updateById(bizDriverClock);
} }

View File

@ -8,6 +8,8 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.cpxt.biz.domain.BizCustomerWarehouse; import com.cpxt.biz.domain.BizCustomerWarehouse;
import com.cpxt.biz.domain.BizDriverClock;
import com.cpxt.biz.mapper.BizDriverClockMapper;
import com.cpxt.common.core.domain.entity.SysDept; import com.cpxt.common.core.domain.entity.SysDept;
import com.cpxt.common.core.domain.entity.SysUser; import com.cpxt.common.core.domain.entity.SysUser;
import com.cpxt.common.utils.DateUtils; import com.cpxt.common.utils.DateUtils;
@ -34,6 +36,9 @@ public class BizDriverServiceImpl implements IBizDriverService
@Autowired @Autowired
private BizDriverMapper bizDriverMapper; private BizDriverMapper bizDriverMapper;
@Autowired
private BizDriverClockMapper bizDriverClockMapper;
@Autowired @Autowired
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@ -65,7 +70,16 @@ public class BizDriverServiceImpl implements IBizDriverService
public List<BizDriver> selectBizDriverList(BizDriver bizDriver) public List<BizDriver> selectBizDriverList(BizDriver bizDriver)
{ {
LambdaQueryWrapper<BizDriver> queryWrapper = buildQueryWrapper(bizDriver); LambdaQueryWrapper<BizDriver> queryWrapper = buildQueryWrapper(bizDriver);
return bizDriverMapper.selectList(queryWrapper); List<BizDriver> bizDrivers = bizDriverMapper.selectList(queryWrapper);
for (BizDriver driver : bizDrivers) {
LambdaQueryWrapper<BizDriverClock> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BizDriverClock::getDriverId,driver.getId());
queryWrapper1.orderByDesc(BizDriverClock::getUpdateTime);
queryWrapper1.last("limit 1");
List<BizDriverClock> driverClockList = bizDriverClockMapper.selectList(queryWrapper1);
driver.setBizDriverClockList(driverClockList);
}
return bizDrivers;
} }
private LambdaQueryWrapper<BizDriver> buildQueryWrapper(BizDriver bizDriver) { private LambdaQueryWrapper<BizDriver> buildQueryWrapper(BizDriver bizDriver) {

View File

@ -286,10 +286,12 @@ public class BizOrderServiceImpl implements IBizOrderService {
queryWrapper.eq(BizOrder::getArriveLat, bizOrder.getArriveLat()); queryWrapper.eq(BizOrder::getArriveLat, bizOrder.getArriveLat());
} }
if (ObjectUtil.isNotEmpty(bizOrder.getBeginTime())){ if (ObjectUtil.isNotEmpty(bizOrder.getBeginTime())){
queryWrapper.ge(BizOrder::getCreateTime,bizOrder.getBeginTime()); String beginTime = bizOrder.getBeginTime() + " 00:00:00";
queryWrapper.ge(BizOrder::getCreateTime,beginTime);
} }
if (ObjectUtil.isNotEmpty(bizOrder.getEndTime())){ if (ObjectUtil.isNotEmpty(bizOrder.getEndTime())){
queryWrapper.le(BizOrder::getCreateTime,bizOrder.getEndTime()); String endTime = bizOrder.getEndTime() + " 23:59:59";
queryWrapper.le(BizOrder::getCreateTime,endTime);
} }
queryWrapper.orderByDesc(BizOrder::getCreateTime); queryWrapper.orderByDesc(BizOrder::getCreateTime);
queryWrapper.eq(BizOrder::getStatus, 1); queryWrapper.eq(BizOrder::getStatus, 1);