Merge remote-tracking branch 'origin/master'

# Conflicts:
#	blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/OrderBoxController.java
#	blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/OrderBoxServiceImpl.java
liweidong
绫Umbrella 1 month ago
commit 338927553b
  1. 44
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/logistics/pojo/entity/Task.java
  2. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java
  3. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/TaskMapper.java
  4. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/mapper/TaskMapper.xml
  5. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/ILocationService.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBindService.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IOrderBoxService.java
  8. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IPipelineService.java
  9. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/IStationService.java
  10. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/ITaskService.java
  11. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/LocationServiceImpl.java
  12. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/OrderBindServiceImpl.java
  13. 72
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/PipelineServiceImpl.java
  14. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/StationServiceImpl.java
  15. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/TaskServiceImpl.java

@ -24,34 +24,54 @@ public class Task extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 状态常量退回(超重)
* 起点位置
*/
public static final Integer STATUS_RETURNED = 0;
public static final Integer STATUS_START = 0;
/**
* 状态常量
* 输送线起
*/
public static final Integer STATUS_STATION = 1;
public static final Integer STATUS_CONVEYOR_START = 1;
/**
* 状态常量库位
* 退回(超重)
*/
public static final Integer STATUS_LOCATION = 2;
public static final Integer STATUS_RETURNED = 2;
/**
* 状态常量等待
* 输送线末尾
*/
public static final Integer STATUS_WAITING = 3;
public static final Integer STATUS_CONVEYOR_END = 3;
/**
* 状态常量回库
* 站点
*/
public static final Integer STATUS_BACK_TO_STORAGE = 4;
public static final Integer STATUS_STATION = 4;
/**
* 状态常量结束
* 库位
*/
public static final Integer STATUS_FINISHED = 5;
public static final Integer STATUS_LOCATION = 5;
/**
* 等待
*/
public static final Integer STATUS_WAITING = 6;
/**
* 站点接收
*/
public static final Integer STATUS_STATION_RECEIVE = 7;
/**
* 回库
*/
public static final Integer STATUS_BACK_TO_STORAGE = 8;
/**
* 结束
*/
public static final Integer STATUS_FINISHED = 9;
/**
* ID主键

@ -140,6 +140,8 @@ public class PipelineController extends BladeController {
throw new ServiceException("箱条码不能为空");
}
boolean isPassed = pipelineService.receiveBoxArriveConveyorEnd(boxBarcode);
return R.data(true);
}

@ -1,7 +1,10 @@
package org.springblade.desk.logistics.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.logistics.pojo.entity.Task;
import org.springblade.desk.logistics.pojo.entity.WeighData;
public interface TaskMapper extends BaseMapper<Task> {
Task selectByBoxBarcode(@Param("boxBarcode") String boxBarcode);
}

@ -5,4 +5,11 @@
<mapper namespace = "org.springblade.desk.logistics.mapper.TaskMapper">
<select id="selectByBoxBarcode" resultType="org.springblade.desk.logistics.pojo.entity.Task">
SELECT id, box_barcode, station_id, location_id, task_status, weight, machine_weight, status, create_user, create_time, create_dept, update_user, update_time, is_deleted, remark
FROM LM_TASK
WHERE IS_DELETED = 0
AND BOX_BARCODE = #{boxBarcode}
AND TASK_STATUS NOT IN (2, 9);
</select>
</mapper>

@ -37,6 +37,6 @@ import java.math.BigDecimal;
* @author BladeX
* @since 2025-11-12
*/
public interface LocationService extends BaseService<Location> {
public interface ILocationService extends BaseService<Location> {
}

@ -35,6 +35,6 @@ import org.springblade.desk.logistics.pojo.entity.OrderBind;
* @author BladeX
* @since 2025-11-12
*/
public interface OrderBindService extends BaseService<OrderBind> {
public interface IOrderBindService extends BaseService<OrderBind> {
}

@ -5,7 +5,7 @@ import org.springblade.desk.logistics.pojo.entity.BoxBinding;
import java.math.BigDecimal;
public interface OrderBoxService {
public interface IOrderBoxService {
R upholdOrderPartWeight(String cardNo, BigDecimal actualWeight);
R boxBinding(BoxBinding boxBinding);

@ -53,4 +53,11 @@ public interface IPipelineService {
* @return
*/
BigDecimal getMaterialBoxWeight(String boxBarcode);
/**
* 输送线到达末尾通知
* @param boxBarcode
* @return
*/
boolean receiveBoxArriveConveyorEnd(String boxBarcode);
}

@ -35,6 +35,6 @@ import org.springblade.desk.logistics.pojo.entity.Station;
* @author BladeX
* @since 2025-11-12
*/
public interface StationService extends BaseService<Station> {
public interface IStationService extends BaseService<Station> {
}

@ -26,15 +26,30 @@
package org.springblade.desk.logistics.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.entity.Task;
import java.math.BigDecimal;
/**
* 物流任务 服务类
*
* @author BladeX
* @since 2025-11-12
*/
public interface TaskService extends BaseService<Task> {
public interface ITaskService extends BaseService<Task> {
/**
* 保存输送线称重数据
* @param boxBarcode 箱条码
* @param actualWeight 输送线重量
* @param statusReturned 任务状态
*/
void savePipelineWeigh(String boxBarcode, BigDecimal actualWeight, Integer statusReturned);
/**
* 获取输送箱信息
* @param boxBarcode
* @return
*/
Task getBoxBarcode(String boxBarcode);
}

@ -29,7 +29,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.LocationMapper;
import org.springblade.desk.logistics.pojo.entity.Location;
import org.springblade.desk.logistics.service.LocationService;
import org.springblade.desk.logistics.service.ILocationService;
import org.springframework.stereotype.Service;
@ -41,7 +41,7 @@ import org.springframework.stereotype.Service;
*/
@Service
@Slf4j
public class LocationServiceImpl extends BaseServiceImpl<LocationMapper, Location> implements LocationService {
public class LocationServiceImpl extends BaseServiceImpl<LocationMapper, Location> implements ILocationService {
}

@ -27,12 +27,9 @@ package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.LocationMapper;
import org.springblade.desk.logistics.mapper.OrderBindMapper;
import org.springblade.desk.logistics.pojo.entity.Location;
import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.service.LocationService;
import org.springblade.desk.logistics.service.OrderBindService;
import org.springblade.desk.logistics.service.IOrderBindService;
import org.springframework.stereotype.Service;
/**
@ -43,7 +40,7 @@ import org.springframework.stereotype.Service;
*/
@Service
@Slf4j
public class OrderBindServiceImpl extends BaseServiceImpl<OrderBindMapper, OrderBind> implements OrderBindService {
public class OrderBindServiceImpl extends BaseServiceImpl<OrderBindMapper, OrderBind> implements IOrderBindService {
}

@ -24,15 +24,16 @@
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.entity.Task;
import org.springblade.desk.logistics.pojo.entity .WeighData;
import org.springblade.desk.logistics.service.IPipelineService;
import org.springblade.desk.logistics.service.IWeighDataService;
import org.springblade.desk.logistics.service.IStationService;
import org.springblade.desk.logistics.service.ITaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springblade.core.log.exception.ServiceException;
import java.math.BigDecimal;
/**
@ -46,21 +47,25 @@ import java.math.BigDecimal;
public class PipelineServiceImpl implements IPipelineService {
@Autowired
IWeighDataService weighDataService;
ITaskService taskService;
@Autowired
IStationService stationService;
@Override
public boolean verifyConveyorBoxWeighing(String boxBarcode, BigDecimal actualWeight, BigDecimal ratedWeight, Integer returnStatus) {
// 1. 保存称重数据
weighDataService.saveWeighingData(boxBarcode,actualWeight,ratedWeight,returnStatus);
// 2. 判断是否超重
// 1. 判断是否超重
if (WeighData.RETURN_STATUS_RETURNED.equals(returnStatus)) {
// todo 超重处理
// 2. 保存称重数据
taskService.savePipelineWeigh(boxBarcode,actualWeight, Task.STATUS_RETURNED);
// todo 3.超重处理,解绑
return false;
} else {
// 正常重量
// 2. 保存称重数据
taskService.savePipelineWeigh(boxBarcode,actualWeight, Task.STATUS_CONVEYOR_START);
log.info("物料箱[{}]重量校验通过", boxBarcode);
return true;
}
@ -69,18 +74,37 @@ public class PipelineServiceImpl implements IPipelineService {
@Override
public BigDecimal getMaterialBoxWeight(String boxBarcode) {
// todo 2.查询箱信息 根据箱条码查询物料箱信息
// //Box box = boxMapper.selectByBarcode(boxBarcode);
// if (box == null) {
// throw new ServiceException("箱号不存在: " + boxBarcode);
// }
//
// // 3.检查是否已绑定
// if (!box.getBound()) {
// throw new ServiceException("该箱号未绑定预估重量");
// }
BigDecimal estimatedWeight = new BigDecimal(50);
return estimatedWeight;
// 2.查询箱信息 根据箱条码查询物料箱信息
Task task = taskService.getBoxBarcode(boxBarcode);
if (null == task ) {
throw new ServiceException("查询不到该物料箱: "+boxBarcode);
}
// 3.检查是否已绑定
if (null == task.getWeight()) {
throw new ServiceException("该箱号未绑定预估重量");
}
return task.getWeight();
}
@Override
public boolean receiveBoxArriveConveyorEnd(String boxBarcode) {
Task task = taskService.getBoxBarcode(boxBarcode);
if (null == task ) {
throw new ServiceException("查询不到该物料箱: "+boxBarcode);
}
if(null == task.getStationId()){
throw new ServiceException("查询不到站点信息: "+boxBarcode);
}
//查询站点 判断站点是否为空
Station station = stationService.getById(task.getStationId());
if(Station.STATUS_FREE.equals(station.getStationStatus())){
}
return false;
}
}

@ -27,12 +27,9 @@ package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.OrderBindMapper;
import org.springblade.desk.logistics.mapper.StationMapper;
import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.service.OrderBindService;
import org.springblade.desk.logistics.service.StationService;
import org.springblade.desk.logistics.service.IStationService;
import org.springframework.stereotype.Service;
/**
@ -43,7 +40,7 @@ import org.springframework.stereotype.Service;
*/
@Service
@Slf4j
public class StationServiceImpl extends BaseServiceImpl<StationMapper, Station> implements StationService {
public class StationServiceImpl extends BaseServiceImpl<StationMapper, Station> implements IStationService {
}

@ -26,15 +26,16 @@
package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.StationMapper;
import org.springblade.desk.logistics.mapper.TaskMapper;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.entity.Task;
import org.springblade.desk.logistics.service.StationService;
import org.springblade.desk.logistics.service.TaskService;
import org.springblade.desk.logistics.service.ITaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* 物流任务 服务类
*
@ -43,7 +44,20 @@ import org.springframework.stereotype.Service;
*/
@Service
@Slf4j
public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implements TaskService {
public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implements ITaskService {
@Autowired
TaskMapper taskMapper;
@Override
public void savePipelineWeigh(String boxBarcode, BigDecimal actualWeight, Integer statusReturned) {
// 1.查询物料箱 筛选状态
// 2.更新重量以及任务状态
}
@Override
public Task getBoxBarcode(String boxBarcode) {
return taskMapper.selectByBoxBarcode(boxBarcode);
}
}

Loading…
Cancel
Save