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; 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主键 * ID主键

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

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

@ -5,4 +5,11 @@
<mapper namespace = "org.springblade.desk.logistics.mapper.TaskMapper"> <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> </mapper>

@ -37,6 +37,6 @@ import java.math.BigDecimal;
* @author BladeX * @author BladeX
* @since 2025-11-12 * @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 * @author BladeX
* @since 2025-11-12 * @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; import java.math.BigDecimal;
public interface OrderBoxService { public interface IOrderBoxService {
R upholdOrderPartWeight(String cardNo, BigDecimal actualWeight); R upholdOrderPartWeight(String cardNo, BigDecimal actualWeight);
R boxBinding(BoxBinding boxBinding); R boxBinding(BoxBinding boxBinding);

@ -53,4 +53,11 @@ public interface IPipelineService {
* @return * @return
*/ */
BigDecimal getMaterialBoxWeight(String boxBarcode); 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 * @author BladeX
* @since 2025-11-12 * @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; package org.springblade.desk.logistics.service;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.entity.Task; import org.springblade.desk.logistics.pojo.entity.Task;
import java.math.BigDecimal;
/** /**
* 物流任务 服务类 * 物流任务 服务类
* *
* @author BladeX * @author BladeX
* @since 2025-11-12 * @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.core.mp.base.BaseServiceImpl;
import org.springblade.desk.logistics.mapper.LocationMapper; import org.springblade.desk.logistics.mapper.LocationMapper;
import org.springblade.desk.logistics.pojo.entity.Location; 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; import org.springframework.stereotype.Service;
@ -41,7 +41,7 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
@Slf4j @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 lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; 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.mapper.OrderBindMapper;
import org.springblade.desk.logistics.pojo.entity.Location;
import org.springblade.desk.logistics.pojo.entity.OrderBind; import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.service.LocationService; import org.springblade.desk.logistics.service.IOrderBindService;
import org.springblade.desk.logistics.service.OrderBindService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -43,7 +40,7 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
@Slf4j @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) * Author: Chill Zhuang (bladejava@qq.com)
*/ */
package org.springblade.desk.logistics.service.impl; package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j; 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.pojo.entity .WeighData;
import org.springblade.desk.logistics.service.IPipelineService; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springblade.core.log.exception.ServiceException;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
@ -46,21 +47,25 @@ import java.math.BigDecimal;
public class PipelineServiceImpl implements IPipelineService { public class PipelineServiceImpl implements IPipelineService {
@Autowired @Autowired
IWeighDataService weighDataService; ITaskService taskService;
@Autowired
IStationService stationService;
@Override @Override
public boolean verifyConveyorBoxWeighing(String boxBarcode, BigDecimal actualWeight, BigDecimal ratedWeight, Integer returnStatus) { public boolean verifyConveyorBoxWeighing(String boxBarcode, BigDecimal actualWeight, BigDecimal ratedWeight, Integer returnStatus) {
// 1. 保存称重数据 // 1. 判断是否超重
weighDataService.saveWeighingData(boxBarcode,actualWeight,ratedWeight,returnStatus);
// 2. 判断是否超重
if (WeighData.RETURN_STATUS_RETURNED.equals(returnStatus)) { if (WeighData.RETURN_STATUS_RETURNED.equals(returnStatus)) {
// todo 超重处理 // 2. 保存称重数据
taskService.savePipelineWeigh(boxBarcode,actualWeight, Task.STATUS_RETURNED);
// todo 3.超重处理,解绑
return false; return false;
} else { } else {
// 正常重量 // 2. 保存称重数据
taskService.savePipelineWeigh(boxBarcode,actualWeight, Task.STATUS_CONVEYOR_START);
log.info("物料箱[{}]重量校验通过", boxBarcode); log.info("物料箱[{}]重量校验通过", boxBarcode);
return true; return true;
} }
@ -69,18 +74,37 @@ public class PipelineServiceImpl implements IPipelineService {
@Override @Override
public BigDecimal getMaterialBoxWeight(String boxBarcode) { public BigDecimal getMaterialBoxWeight(String boxBarcode) {
// todo 2.查询箱信息 根据箱条码查询物料箱信息 // 2.查询箱信息 根据箱条码查询物料箱信息
// //Box box = boxMapper.selectByBarcode(boxBarcode); Task task = taskService.getBoxBarcode(boxBarcode);
// if (box == null) { if (null == task ) {
// throw new ServiceException("箱号不存在: " + boxBarcode); throw new ServiceException("查询不到该物料箱: "+boxBarcode);
// } }
//
// // 3.检查是否已绑定 // 3.检查是否已绑定
// if (!box.getBound()) { if (null == task.getWeight()) {
// throw new ServiceException("该箱号未绑定预估重量"); throw new ServiceException("该箱号未绑定预估重量");
// } }
BigDecimal estimatedWeight = new BigDecimal(50);
return task.getWeight();
return estimatedWeight; }
@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 lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; 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.mapper.StationMapper;
import org.springblade.desk.logistics.pojo.entity.OrderBind;
import org.springblade.desk.logistics.pojo.entity.Station; import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.service.OrderBindService; import org.springblade.desk.logistics.service.IStationService;
import org.springblade.desk.logistics.service.StationService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -43,7 +40,7 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
@Slf4j @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; package org.springblade.desk.logistics.service.impl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springblade.core.mp.base.BaseServiceImpl; 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.mapper.TaskMapper;
import org.springblade.desk.logistics.pojo.entity.Station;
import org.springblade.desk.logistics.pojo.entity.Task; import org.springblade.desk.logistics.pojo.entity.Task;
import org.springblade.desk.logistics.service.StationService; import org.springblade.desk.logistics.service.ITaskService;
import org.springblade.desk.logistics.service.TaskService; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/** /**
* 物流任务 服务类 * 物流任务 服务类
* *
@ -43,7 +44,20 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
@Slf4j @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