物资采购联系单新增优化和车辆管理增加GPS绑定、增加轨迹功能
This commit is contained in:
@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseReq;
|
||||||
import org.dromara.cailiaoshebei.domain.bo.RemainingReq;
|
import org.dromara.cailiaoshebei.domain.bo.RemainingReq;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
||||||
@ -75,6 +76,15 @@ public class BusMrpBaseController extends BaseController {
|
|||||||
return busMrpBaseService.queryPageList(bo, pageQuery);
|
return busMrpBaseService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询物资-批次需求计划基础信息列表
|
||||||
|
*/
|
||||||
|
// @SaCheckPermission("cailiaoshebei:mrpBase:getListByName")
|
||||||
|
@GetMapping("/getListByName")
|
||||||
|
public R<List<BusMrpBaseVo>> getListByName(BusMrpBaseReq req) {
|
||||||
|
return R.ok(busMrpBaseService.getListByName(req));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出物资-批次需求计划基础信息列表
|
* 导出物资-批次需求计划基础信息列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package org.dromara.cailiaoshebei.domain.bo;
|
||||||
|
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.cailiaoshebei.domain.BusMrpBase;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物资-批次需求计划基础信息业务对象 bus_mrp_base
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-13
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class BusMrpBaseReq implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计划编号
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
}
|
||||||
@ -146,6 +146,11 @@ public class BusMaterialbatchdemandplanVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private BigDecimal tenderQuantity;
|
private BigDecimal tenderQuantity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已使用数量
|
||||||
|
*/
|
||||||
|
private BigDecimal useQuantity;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.cailiaoshebei.service;
|
package org.dromara.cailiaoshebei.service;
|
||||||
|
|
||||||
|
import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseReq;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
||||||
import org.dromara.cailiaoshebei.domain.vo.BusMrpBaseVo;
|
import org.dromara.cailiaoshebei.domain.vo.BusMrpBaseVo;
|
||||||
@ -87,4 +88,6 @@ public interface IBusMrpBaseService extends IService<BusMrpBase>{
|
|||||||
* 获取物资已有数量
|
* 获取物资已有数量
|
||||||
*/
|
*/
|
||||||
Map<String, Object> remaining(Long projectId,Long limitListId,Long mrpBaseId);
|
Map<String, Object> remaining(Long projectId,Long limitListId,Long mrpBaseId);
|
||||||
|
|
||||||
|
List<BusMrpBaseVo> getListByName(BusMrpBaseReq req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import jakarta.annotation.Resource;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.cailiaoshebei.controller.constant;
|
import org.dromara.cailiaoshebei.controller.constant;
|
||||||
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
||||||
|
import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation;
|
||||||
import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanAddReq;
|
import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanAddReq;
|
||||||
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
|
import org.dromara.cailiaoshebei.service.IBusCailiaoshebeiPiciService;
|
||||||
import org.dromara.cailiaoshebei.service.IBusMaterialsorderService;
|
import org.dromara.cailiaoshebei.service.IBusMaterialsorderService;
|
||||||
|
import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService;
|
||||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
@ -79,6 +81,9 @@ public class BusMaterialbatchdemandplanServiceImpl extends ServiceImpl<BusMateri
|
|||||||
@Lazy
|
@Lazy
|
||||||
@Autowired
|
@Autowired
|
||||||
private IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService;
|
private IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private IBusPlanDocAssociationService busPlanDocAssociationService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询物资-批次需求计划
|
* 查询物资-批次需求计划
|
||||||
@ -119,18 +124,30 @@ public class BusMaterialbatchdemandplanServiceImpl extends ServiceImpl<BusMateri
|
|||||||
result.getRecords().stream().filter(vo -> {
|
result.getRecords().stream().filter(vo -> {
|
||||||
return hashSet.contains(vo.getSuppliespriceId()); // 仅保留 Set 中存在的数据
|
return hashSet.contains(vo.getSuppliespriceId()); // 仅保留 Set 中存在的数据
|
||||||
}).forEach(item->{
|
}).forEach(item->{
|
||||||
if (map.containsKey(item.getId())) {
|
|
||||||
item.setTenderQuantity(map.get(item.getId()));
|
if (map.containsKey(item.getSuppliespriceId())) {
|
||||||
|
item.setTenderQuantity(map.get(item.getSuppliespriceId()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
result.getRecords().forEach(vo -> {
|
for (BusMaterialbatchdemandplanVo vo : result.getRecords()) {
|
||||||
if (vo.getSuppliespricePid() != null){
|
List<BusPlanDocAssociation> busPlanDocAssociations = busPlanDocAssociationService.getBaseMapper().selectList(new LambdaQueryWrapper<BusPlanDocAssociation>().eq(BusPlanDocAssociation::getPlanId, vo.getId()));
|
||||||
|
BigDecimal useQuantity = BigDecimal.ZERO;
|
||||||
|
if (busPlanDocAssociations != null && !busPlanDocAssociations.isEmpty()) {
|
||||||
|
useQuantity = busPlanDocAssociations.stream()
|
||||||
|
// 提取每个item的demandQuantity,若为null则用0替代
|
||||||
|
.map(item -> Optional.ofNullable(item.getDemandQuantity()).orElse(BigDecimal.ZERO))
|
||||||
|
// 累加:初始值0,累加器为两个BigDecimal相加
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal subtract = vo.getDemandQuantity().subtract(useQuantity);
|
||||||
|
vo.setUseQuantity(subtract.compareTo(BigDecimal.ZERO) >0 ? subtract: BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
if (vo.getSuppliespricePid() != null) {
|
||||||
BusBillofquantitiesLimitList billofquantities = busBillofquantitiesLimitListService.getById(vo.getSuppliespricePid());
|
BusBillofquantitiesLimitList billofquantities = busBillofquantitiesLimitListService.getById(vo.getSuppliespricePid());
|
||||||
vo.setSuppliespricePname(billofquantities.getName());
|
vo.setSuppliespricePname(billofquantities.getName());
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,13 +6,16 @@ import cn.hutool.core.convert.Convert;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.cailiaoshebei.domain.BusMaterialbatchdemandplan;
|
import org.dromara.cailiaoshebei.domain.BusMaterialbatchdemandplan;
|
||||||
|
import org.dromara.cailiaoshebei.domain.BusPlanDocAssociation;
|
||||||
import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanBo;
|
import org.dromara.cailiaoshebei.domain.bo.BusMaterialbatchdemandplanBo;
|
||||||
|
import org.dromara.cailiaoshebei.domain.bo.BusMrpBaseReq;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMaterialbatchdemandplanExportDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMaterialbatchdemandplanExportDto;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpDto;
|
||||||
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
import org.dromara.cailiaoshebei.domain.dto.BusMrpExportDto;
|
||||||
import org.dromara.cailiaoshebei.domain.vo.BusMaterialbatchdemandplanVo;
|
import org.dromara.cailiaoshebei.domain.vo.BusMaterialbatchdemandplanVo;
|
||||||
import org.dromara.cailiaoshebei.domain.vo.BusMrpVo;
|
import org.dromara.cailiaoshebei.domain.vo.BusMrpVo;
|
||||||
import org.dromara.cailiaoshebei.service.IBusMaterialbatchdemandplanService;
|
import org.dromara.cailiaoshebei.service.IBusMaterialbatchdemandplanService;
|
||||||
|
import org.dromara.cailiaoshebei.service.IBusPlanDocAssociationService;
|
||||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
import org.dromara.common.core.domain.event.ProcessTaskEvent;
|
||||||
@ -61,6 +64,8 @@ public class BusMrpBaseServiceImpl extends ServiceImpl<BusMrpBaseMapper, BusMrpB
|
|||||||
|
|
||||||
private final IBusMaterialbatchdemandplanService planservice;
|
private final IBusMaterialbatchdemandplanService planservice;
|
||||||
|
|
||||||
|
private final IBusPlanDocAssociationService planDocAssociationService;
|
||||||
|
|
||||||
private final IBusBillofquantitiesLimitListService busBillofquantitiesService;
|
private final IBusBillofquantitiesLimitListService busBillofquantitiesService;
|
||||||
|
|
||||||
private final IBusTenderPlanningLimitListService tenderPlanningLimitListService;
|
private final IBusTenderPlanningLimitListService tenderPlanningLimitListService;
|
||||||
@ -328,6 +333,38 @@ public class BusMrpBaseServiceImpl extends ServiceImpl<BusMrpBaseMapper, BusMrpB
|
|||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusMrpBaseVo> getListByName(BusMrpBaseReq req) {
|
||||||
|
if (req.getName() == null || req.getName().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
List<BusMaterialbatchdemandplan> busMaterialbatchdemandplans = planservice.getBaseMapper().selectList(new LambdaQueryWrapper<BusMaterialbatchdemandplan>()
|
||||||
|
.eq(BusMaterialbatchdemandplan::getProjectId, req.getProjectId())
|
||||||
|
.like(BusMaterialbatchdemandplan::getName, req.getName()));
|
||||||
|
Iterator<BusMaterialbatchdemandplan> iterator = busMaterialbatchdemandplans.iterator();
|
||||||
|
Set<Long> mrpIds = new HashSet<>();
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
BusMaterialbatchdemandplan next = iterator.next();
|
||||||
|
List<BusPlanDocAssociation> busPlanDocAssociations = planDocAssociationService.getBaseMapper().selectList(new LambdaQueryWrapper<BusPlanDocAssociation>()
|
||||||
|
.eq(BusPlanDocAssociation::getProjectId, req.getProjectId())
|
||||||
|
.eq(BusPlanDocAssociation::getPlanId, next.getId()));
|
||||||
|
BigDecimal demandQuantity = BigDecimal.ZERO;
|
||||||
|
busPlanDocAssociations.forEach(busPlanDocAssociation -> {
|
||||||
|
demandQuantity.add(busPlanDocAssociation.getDemandQuantity());
|
||||||
|
});
|
||||||
|
if (demandQuantity.compareTo(next.getDemandQuantity()) >= 0) {
|
||||||
|
iterator.remove();
|
||||||
|
}else {
|
||||||
|
mrpIds.add(next.getMrpBaseId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mrpIds.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return baseMapper.selectVoList(new LambdaQueryWrapper<BusMrpBase>()
|
||||||
|
.eq(BusMrpBase::getStatus,BusinessStatusEnum.FINISH.getStatus()).in(BusMrpBase::getId,mrpIds));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
|||||||
@ -92,6 +92,11 @@ public class GpsEquipmentController extends BaseController {
|
|||||||
return gpsEquipmentService.queryPageList(bo, pageQuery);
|
return gpsEquipmentService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getListToVehicle")
|
||||||
|
public R<List<GpsEquipmentVo>> getListToVehicle(GpsEquipmentBo bo) {
|
||||||
|
return R.ok(gpsEquipmentService.getListToVehicle(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询GPS设备用户列表
|
* 查询GPS设备用户列表
|
||||||
|
|||||||
@ -48,6 +48,14 @@ public class GpsEquipmentSonController extends BaseController {
|
|||||||
return gpsEquipmentSonService.queryPageList(bo, pageQuery);
|
return gpsEquipmentSonService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆获取gps设备轨迹列表数据
|
||||||
|
*/
|
||||||
|
@GetMapping("/getVehicleList")
|
||||||
|
public R<List<GpsEquipmentSonVo>> getVehicleList(GpsEquipmentSonBo bo) {
|
||||||
|
return R.ok(gpsEquipmentSonService.getVehicleList(bo));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询GPS设备定位信息列表
|
* 查询GPS设备定位信息列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -115,4 +115,9 @@ public class GpsEquipmentSon extends BaseEntity {
|
|||||||
|
|
||||||
|
|
||||||
private Long projectId;
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆出行记录id
|
||||||
|
*/
|
||||||
|
private Long tripId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -132,4 +132,9 @@ public class GpsEquipmentSonBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private LocalDateTime endTime;
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆出行记录id
|
||||||
|
*/
|
||||||
|
private Long tripId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,5 +154,10 @@ public class GpsEquipmentSonVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String modelId;
|
private String modelId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆出行记录id
|
||||||
|
*/
|
||||||
|
private Long tripId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,4 +106,6 @@ public interface IGpsEquipmentService extends IService<GpsEquipment>{
|
|||||||
List<GpsEquipmentSonVo> getUeClientList(LocalDateTime startOfDay, LocalDateTime now);
|
List<GpsEquipmentSonVo> getUeClientList(LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now);
|
List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
|
List<GpsEquipmentVo> getListToVehicle(GpsEquipmentBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,4 +85,6 @@ public interface IGpsEquipmentSonService extends IService<GpsEquipmentSon>{
|
|||||||
List<GpsEquipmentSonVo> getUeClientList(LocalDateTime startOfDay, LocalDateTime now);
|
List<GpsEquipmentSonVo> getUeClientList(LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now);
|
List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now);
|
||||||
|
|
||||||
|
List<GpsEquipmentSonVo> getVehicleList(GpsEquipmentSonBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,8 +6,10 @@ import cn.hutool.json.JSONUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
||||||
|
import org.dromara.vehicle.service.IVehVehicleTripService;
|
||||||
import org.dromara.websocket.websocket.service.InitOnStartWebSocketServer;
|
import org.dromara.websocket.websocket.service.InitOnStartWebSocketServer;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
@ -74,6 +76,8 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
|||||||
private ISysUserService userService;
|
private ISysUserService userService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IVehVehicleInfoService iVehVehicleInfoService;
|
private IVehVehicleInfoService iVehVehicleInfoService;
|
||||||
|
@Autowired
|
||||||
|
private IVehVehicleTripService iVehVehicleTripService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询GPS设备详细
|
* 查询GPS设备详细
|
||||||
@ -251,10 +255,16 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
|||||||
gpsEquipmentSon.setClientId(gpsEquipment.getClientId());
|
gpsEquipmentSon.setClientId(gpsEquipment.getClientId());
|
||||||
if (equipment != null && equipment.getUserId() != null) {
|
if (equipment != null && equipment.getUserId() != null) {
|
||||||
gpsEquipmentSon.setUserId(equipment.getUserId());
|
gpsEquipmentSon.setUserId(equipment.getUserId());
|
||||||
|
if (1==equipment.getClientType()){
|
||||||
|
Long tripId = iVehVehicleTripService.getTripId(equipment.getUserId());
|
||||||
|
gpsEquipmentSon.setTripId(tripId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gpsEquipmentSonService.insertByBo(gpsEquipmentSon);
|
gpsEquipmentSonService.insertByBo(gpsEquipmentSon);
|
||||||
|
|
||||||
|
//TODO 后续创建websocket长连接发送信息
|
||||||
|
|
||||||
//保存到redis,如果存在则更新存活时间
|
//保存到redis,如果存在则更新存活时间
|
||||||
|
|
||||||
// --------------------------
|
// --------------------------
|
||||||
@ -427,6 +437,9 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
|||||||
gpsManmachine.setClientId(bo.getClientId());
|
gpsManmachine.setClientId(bo.getClientId());
|
||||||
gpsManmachine.setUserId(bo.getUserId());
|
gpsManmachine.setUserId(bo.getUserId());
|
||||||
gpsManmachine.setType(bo.getClientType()== 1 ? 1:2);
|
gpsManmachine.setType(bo.getClientType()== 1 ? 1:2);
|
||||||
|
if (bo.getClientType() == 1){
|
||||||
|
iVehVehicleInfoService.update(new LambdaUpdateWrapper<VehVehicleInfo>().set(VehVehicleInfo::getClientId,bo.getClientId()).eq(VehVehicleInfo::getId,bo.getUserId()));
|
||||||
|
}
|
||||||
return gpsManmachineMapper.insert(gpsManmachine) > 0;
|
return gpsManmachineMapper.insert(gpsManmachine) > 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -434,6 +447,10 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean unbindManmachine(GpsEquipmentBo bo) {
|
public Boolean unbindManmachine(GpsEquipmentBo bo) {
|
||||||
|
GpsEquipmentVo gpsEquipmentVo = baseMapper.selectVoById(bo.getId());
|
||||||
|
if (gpsEquipmentVo.getClientType() == 1){
|
||||||
|
iVehVehicleInfoService.update(new LambdaUpdateWrapper<VehVehicleInfo>().set(VehVehicleInfo::getClientId,null).eq(VehVehicleInfo::getId,gpsEquipmentVo.getUserId()));
|
||||||
|
}
|
||||||
baseMapper.update(new LambdaUpdateWrapper<GpsEquipment>()
|
baseMapper.update(new LambdaUpdateWrapper<GpsEquipment>()
|
||||||
.set(GpsEquipment::getUserId,null)
|
.set(GpsEquipment::getUserId,null)
|
||||||
.set(GpsEquipment::getClientType,null)
|
.set(GpsEquipment::getClientType,null)
|
||||||
@ -556,5 +573,16 @@ public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, Gps
|
|||||||
return gpsEquipmentSonService.getUeUserListByProjectId(startOfDay,now);
|
return gpsEquipmentSonService.getUeUserListByProjectId(startOfDay,now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GpsEquipmentVo> getListToVehicle(GpsEquipmentBo bo) {
|
||||||
|
return baseMapper.selectVoList(new LambdaQueryWrapper<GpsEquipment>()
|
||||||
|
.nested(q ->
|
||||||
|
q.eq(GpsEquipment::getProjectId, bo.getProjectId())
|
||||||
|
.or()
|
||||||
|
.isNull(GpsEquipment::getProjectId)
|
||||||
|
)
|
||||||
|
.isNull(GpsEquipment::getUserId).isNotNull(GpsEquipment::getClientId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -221,4 +221,22 @@ public class GpsEquipmentSonServiceImpl extends ServiceImpl<GpsEquipmentSonMappe
|
|||||||
public List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now) {
|
public List<GpsEquipmentSonVo> getUeUserListByProjectId(LocalDateTime startOfDay, LocalDateTime now) {
|
||||||
return baseMapper.getUeUserListByProjectId(startOfDay,now);
|
return baseMapper.getUeUserListByProjectId(startOfDay,now);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<GpsEquipmentSonVo> getVehicleList(GpsEquipmentSonBo bo) {
|
||||||
|
if (bo.getProjectId() == null) {
|
||||||
|
throw new ServiceException("项目id不能为空!");
|
||||||
|
}
|
||||||
|
if (bo.getUserId() == null) {
|
||||||
|
throw new ServiceException("车辆id不能为空!");
|
||||||
|
}
|
||||||
|
if (bo.getStartTime() == null || bo.getEndTime() == null) {
|
||||||
|
throw new ServiceException("开始时间和结算时间不能为空!!!");
|
||||||
|
}
|
||||||
|
return baseMapper.selectVoList(new LambdaQueryWrapper<GpsEquipmentSon>()
|
||||||
|
.eq(GpsEquipmentSon::getProjectId,bo.getProjectId())
|
||||||
|
.eq(GpsEquipmentSon::getUserId,bo.getUserId())
|
||||||
|
.eq(bo.getTripId() != null,GpsEquipmentSon::getTripId,bo.getTripId())
|
||||||
|
.between(GpsEquipmentSon::getCreateTime,bo.getStartTime(),bo.getEndTime()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import org.dromara.cailiaoshebei.domain.BusCailiaoshebeiPici;
|
|||||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
import org.dromara.tender.domain.TenderSupplierInput;
|
import org.dromara.tender.domain.TenderSupplierInput;
|
||||||
|
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -60,6 +61,15 @@ public class TenderSupplierInputController extends BaseController {
|
|||||||
return tenderSupplierInputService.queryPageList(bo, pageQuery);
|
return tenderSupplierInputService.queryPageList(bo, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据材料名获取供应商列表
|
||||||
|
*/
|
||||||
|
// @SaCheckPermission("supplierInput:supplierInput:getListByName")
|
||||||
|
@GetMapping("/getListByName")
|
||||||
|
public R<List<TenderSupplierInputVo>> getListByName(TenderSupplierInputReq req) {
|
||||||
|
return R.ok(tenderSupplierInputService.getListByName(req));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询供应商入库列表
|
* 查询供应商入库列表
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
package org.dromara.tender.domain.bo;
|
||||||
|
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.tender.domain.TenderSupplierInput;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商入库业务对象 tender_supplier_input
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-20
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TenderSupplierInputReq implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目Id
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 材料名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.tender.service;
|
package org.dromara.tender.service;
|
||||||
|
|
||||||
|
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||||
import org.dromara.tender.domain.TenderSupplierInput;
|
import org.dromara.tender.domain.TenderSupplierInput;
|
||||||
@ -74,4 +75,6 @@ ITenderSupplierInputService extends IService<TenderSupplierInput>{
|
|||||||
List<TenderSupplierInputVo> getList(TenderSupplierInputBo bo);
|
List<TenderSupplierInputVo> getList(TenderSupplierInputBo bo);
|
||||||
|
|
||||||
boolean importData(List<TenderSupplierInputVo> tenderSupplierInputVos, Long projectId);
|
boolean importData(List<TenderSupplierInputVo> tenderSupplierInputVos, Long projectId);
|
||||||
|
|
||||||
|
List<TenderSupplierInputVo> getListByName(TenderSupplierInputReq req);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -389,12 +389,12 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
|||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
//获取该供应商的所有材料
|
//获取该供应商的所有材料
|
||||||
List<BusTenderPlanningLimitList> busTenderPlanningLimitLists = busTenderPlanningLimitListMapper.selectList(new LambdaQueryWrapper<BusTenderPlanningLimitList>().in(BusTenderPlanningLimitList::getBiddingPlanId, bplanIdds));
|
List<BusTenderPlanningLimitList> busTenderPlanningLimitLists = busTenderPlanningLimitListMapper.selectList(new LambdaQueryWrapper<BusTenderPlanningLimitList>().isNotNull(BusTenderPlanningLimitList::getNum).in(BusTenderPlanningLimitList::getBiddingPlanId, bplanIdds));
|
||||||
for (BusTenderPlanningLimitList v : busTenderPlanningLimitLists) {
|
for (BusTenderPlanningLimitList v : busTenderPlanningLimitLists) {
|
||||||
if (!map.containsKey(v.getId())) {
|
if (!map.containsKey(v.getLimitListId())) {
|
||||||
map.put(v.getId(), v.getNum());
|
map.put(v.getLimitListId(), v.getNum());
|
||||||
}else {
|
}else {
|
||||||
map.put(v.getId(), map.get(v.getId()).add(v.getNum()));
|
map.put(v.getLimitListId(), map.get(v.getLimitListId()).add(v.getNum()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
@ -17,8 +17,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
|
import org.dromara.tender.domain.BusBiddingPlan;
|
||||||
|
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||||
|
import org.dromara.tender.domain.BusTenderPlanningLimitList;
|
||||||
|
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||||
|
import org.dromara.tender.mapper.BusTenderPlanningLimitListMapper;
|
||||||
|
import org.dromara.tender.service.IBusBiddingPlanService;
|
||||||
|
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||||
|
import org.dromara.tender.service.IBusTenderPlanningLimitListService;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||||
@ -45,6 +54,16 @@ public class TenderSupplierInputServiceImpl extends ServiceImpl<TenderSupplierIn
|
|||||||
|
|
||||||
private final TenderSupplierInputMapper baseMapper;
|
private final TenderSupplierInputMapper baseMapper;
|
||||||
@Autowired private ISysOssService ossService;
|
@Autowired private ISysOssService ossService;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private IBusTenderPlanningLimitListService busTenderPlanningLimitListService;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private IBusBillofquantitiesLimitListService billofquantitiesLimitListService;
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private IBusBiddingPlanService busBiddingPlanService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询供应商入库
|
* 查询供应商入库
|
||||||
@ -247,6 +266,49 @@ public class TenderSupplierInputServiceImpl extends ServiceImpl<TenderSupplierIn
|
|||||||
return baseMapper.insertBatch(tenderSupplierInputs);
|
return baseMapper.insertBatch(tenderSupplierInputs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TenderSupplierInputVo> getListByName(TenderSupplierInputReq req) {
|
||||||
|
if (req.getName() == null || req.getName().isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//查询限价一览表中物资限价一览中物资名包含req.getName()的物资
|
||||||
|
List<BusBillofquantitiesLimitList> busBillofquantitiesLimitLists = billofquantitiesLimitListService.getBaseMapper()
|
||||||
|
.selectList(new LambdaQueryWrapper<BusBillofquantitiesLimitList>()
|
||||||
|
.eq(BusBillofquantitiesLimitList::getProjectId, req.getProjectId())
|
||||||
|
.eq(BusBillofquantitiesLimitList::getType, 3)
|
||||||
|
.like(BusBillofquantitiesLimitList::getName, req.getName()));
|
||||||
|
if (busBillofquantitiesLimitLists.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Set<Long> b = new HashSet<>();
|
||||||
|
busBillofquantitiesLimitLists.forEach(billofquantitiesLimitList -> {b.add(billofquantitiesLimitList.getId());});
|
||||||
|
if (b.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//通过物资限价一览id获取到对应的招标计划id
|
||||||
|
List<BusTenderPlanningLimitList> busTenderPlanningLimitLists = busTenderPlanningLimitListService.getBaseMapper().selectList(new LambdaQueryWrapper<BusTenderPlanningLimitList>().isNotNull(BusTenderPlanningLimitList::getNum).in(BusTenderPlanningLimitList::getLimitListId, b));
|
||||||
|
if (busTenderPlanningLimitLists.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//通过招标计划id找到对应招标计划并获取到对应供应商id
|
||||||
|
Set<Long> planIds = new HashSet<>();
|
||||||
|
busTenderPlanningLimitLists.forEach(tenderPlanningLimitList -> {planIds.add(tenderPlanningLimitList.getBiddingPlanId());});
|
||||||
|
if (planIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
List<BusBiddingPlan> busBiddingPlans = busBiddingPlanService.getBaseMapper().selectList(new LambdaQueryWrapper<BusBiddingPlan>().in(BusBiddingPlan::getId, planIds));
|
||||||
|
if (busBiddingPlans.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
//通过供应商id获取供应商列表
|
||||||
|
Set<Long> tenderSupplierIds = new HashSet<>();
|
||||||
|
busBiddingPlans.forEach(biddingPlan -> {tenderSupplierIds.add(biddingPlan.getWinningBidderId());});
|
||||||
|
if (tenderSupplierIds.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return baseMapper.selectVoByIds(tenderSupplierIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
|
|||||||
@ -89,6 +89,23 @@ public class VehVehicleInfoController extends BaseController {
|
|||||||
return toAjax(vehVehicleInfoService.insertByBo(bo));
|
return toAjax(vehVehicleInfoService.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆绑定gps设备
|
||||||
|
*/
|
||||||
|
// @SaCheckPermission("vehicle:vehicleInfo:bindClient")
|
||||||
|
@PostMapping("/bindClient")
|
||||||
|
public R<Void> bindClient(@RequestBody VehVehicleInfoBo bo) {
|
||||||
|
return toAjax(vehVehicleInfoService.bindClient(bo));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 车辆解绑gps设备
|
||||||
|
*/
|
||||||
|
// @SaCheckPermission("vehicle:vehicleInfo:bindClient")
|
||||||
|
@PostMapping("/unBindClient")
|
||||||
|
public R<Void> unBindClient(@RequestBody VehVehicleInfoBo bo) {
|
||||||
|
return toAjax(vehVehicleInfoService.unBindClient(bo));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改车辆信息
|
* 修改车辆信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -145,4 +145,9 @@ public class VehVehicleInfo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gps定位设备id
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -154,5 +154,9 @@ public class VehVehicleInfoBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gps定位设备id
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -181,5 +181,10 @@ public class VehVehicleInfoVo implements Serializable {
|
|||||||
@ExcelProperty(value = "备注")
|
@ExcelProperty(value = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gps定位设备id
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,4 +18,5 @@ public interface VehVehicleTripMapper extends BaseMapperPlus<VehVehicleTrip, Veh
|
|||||||
Page<VehVehicleTripVo> selectVehicleTripPage(@Param("page") Page<VehVehicleTrip> page,
|
Page<VehVehicleTripVo> selectVehicleTripPage(@Param("page") Page<VehVehicleTrip> page,
|
||||||
@Param("req") VehVehicleTripQueryReq req);
|
@Param("req") VehVehicleTripQueryReq req);
|
||||||
|
|
||||||
|
Long getTripId(@Param("id") Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,4 +67,18 @@ public interface IVehVehicleInfoService extends IService<VehVehicleInfo>{
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆绑定gps设备
|
||||||
|
* @param bo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int bindClient(VehVehicleInfoBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆解绑gps设备
|
||||||
|
* @param bo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int unBindClient(VehVehicleInfoBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -100,4 +100,11 @@ public interface IVehVehicleTripService extends IService<VehVehicleTrip> {
|
|||||||
* @return 是否删除成功
|
* @return 是否删除成功
|
||||||
*/
|
*/
|
||||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据车辆id获取最新行程id
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Long getTripId(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,21 +1,30 @@
|
|||||||
package org.dromara.vehicle.service.impl;
|
package org.dromara.vehicle.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentService;
|
||||||
|
import org.dromara.gps.service.IGpsManmachineService;
|
||||||
import org.dromara.vehicle.domain.VehVehicleInfo;
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
import org.dromara.vehicle.domain.bo.VehVehicleInfoBo;
|
import org.dromara.vehicle.domain.bo.VehVehicleInfoBo;
|
||||||
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
import org.dromara.vehicle.mapper.VehVehicleInfoMapper;
|
import org.dromara.vehicle.mapper.VehVehicleInfoMapper;
|
||||||
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -33,6 +42,14 @@ import java.util.Map;
|
|||||||
public class VehVehicleInfoServiceImpl extends ServiceImpl<VehVehicleInfoMapper, VehVehicleInfo>
|
public class VehVehicleInfoServiceImpl extends ServiceImpl<VehVehicleInfoMapper, VehVehicleInfo>
|
||||||
implements IVehVehicleInfoService {
|
implements IVehVehicleInfoService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private IGpsEquipmentService gpsEquipmentService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
@Lazy
|
||||||
|
private IGpsManmachineService gpsManmachineService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询车辆信息
|
* 查询车辆信息
|
||||||
*
|
*
|
||||||
@ -150,4 +167,46 @@ public class VehVehicleInfoServiceImpl extends ServiceImpl<VehVehicleInfoMapper,
|
|||||||
}
|
}
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int bindClient(VehVehicleInfoBo bo) {
|
||||||
|
Long count = gpsEquipmentService.getBaseMapper().selectCount(new LambdaQueryWrapper<GpsEquipment>()
|
||||||
|
.eq(GpsEquipment::getClientId, bo.getClientId()).isNotNull(GpsEquipment::getUserId));
|
||||||
|
if (count > 0) {
|
||||||
|
throw new ServiceException("该设备已绑定!");
|
||||||
|
}
|
||||||
|
GpsEquipment gpsEquipment = gpsEquipmentService.getBaseMapper().selectOne(new LambdaQueryWrapper<GpsEquipment>()
|
||||||
|
.eq(GpsEquipment::getClientId, bo.getClientId()));
|
||||||
|
gpsEquipment.setClientType(1);
|
||||||
|
gpsEquipment.setUserId(bo.getId());
|
||||||
|
gpsEquipment.setProjectId(bo.getProjectId());
|
||||||
|
gpsEquipmentService.updateById(gpsEquipment);
|
||||||
|
GpsManmachine gpsManmachine = new GpsManmachine();
|
||||||
|
gpsManmachine.setClientId(bo.getClientId());
|
||||||
|
gpsManmachine.setUserId(bo.getId());
|
||||||
|
gpsManmachineService.save(gpsManmachine);
|
||||||
|
return baseMapper.update(new LambdaUpdateWrapper<VehVehicleInfo>().set(VehVehicleInfo::getClientId, bo.getClientId()).eq(VehVehicleInfo::getId,bo.getId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int unBindClient(VehVehicleInfoBo bo) {
|
||||||
|
GpsEquipment gpsEquipment = gpsEquipmentService.getBaseMapper().selectOne(new LambdaQueryWrapper<GpsEquipment>()
|
||||||
|
.eq(GpsEquipment::getClientId, bo.getClientId())
|
||||||
|
.eq(GpsEquipment::getUserId, bo.getId())
|
||||||
|
.eq(GpsEquipment::getProjectId, bo.getProjectId())
|
||||||
|
.eq(GpsEquipment::getClientType, 1));
|
||||||
|
if (gpsEquipment == null) {
|
||||||
|
throw new ServiceException("找不到该车辆绑定的设备!");
|
||||||
|
}
|
||||||
|
gpsEquipmentService.update(new LambdaUpdateWrapper<GpsEquipment>()
|
||||||
|
.set(GpsEquipment::getUserId,null)
|
||||||
|
.set(GpsEquipment::getProjectId,null)
|
||||||
|
.eq(GpsEquipment::getId,gpsEquipment.getId()));
|
||||||
|
gpsManmachineService.getBaseMapper().delete(new LambdaQueryWrapper<GpsManmachine>()
|
||||||
|
.eq(GpsManmachine::getClientId, bo.getClientId())
|
||||||
|
.eq(GpsManmachine::getUserId, bo.getId()));
|
||||||
|
return baseMapper.update(new LambdaUpdateWrapper<VehVehicleInfo>().set(VehVehicleInfo::getClientId,null).eq(VehVehicleInfo::getId,bo.getId()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -471,6 +471,11 @@ public class VehVehicleTripServiceImpl extends ServiceImpl<VehVehicleTripMapper,
|
|||||||
return this.removeBatchByIds(ids);
|
return this.removeBatchByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getTripId(Long id) {
|
||||||
|
return baseMapper.getTripId(id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建用户行程及其对应申请的展示列表
|
* 构建用户行程及其对应申请的展示列表
|
||||||
*
|
*
|
||||||
|
|||||||
@ -113,6 +113,17 @@
|
|||||||
|
|
||||||
ORDER BY t.total_score DESC
|
ORDER BY t.total_score DESC
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getTripId" resultType="java.lang.Long">
|
||||||
|
SELECT
|
||||||
|
id
|
||||||
|
FROM
|
||||||
|
veh_vehicle_trip
|
||||||
|
WHERE
|
||||||
|
vehicle_id = #{id}
|
||||||
|
ORDER BY
|
||||||
|
create_time DESC
|
||||||
|
LIMIT 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user