代码更新:
1.修复创建工作 2.增加拣选任务查询界面
This commit is contained in:
parent
061ef4050e
commit
bc42c796d7
|
|
@ -124,7 +124,7 @@ public class JobComponent {
|
|||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("创建工作时发生错误:{}", convertJsonString(e));
|
||||
logger.error("创建工作时发生错误:{}", convertJsonString(e.getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -150,7 +150,7 @@ public class JobComponent {
|
|||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("执行工作时发生错误:{}", convertJsonString(e));
|
||||
logger.error("执行工作时发生错误:{}", convertJsonString(e.getMessage()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@ public class TaskController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 查找所有物料
|
||||
* 查找所有任务
|
||||
*/
|
||||
@PostMapping("/getTasksByPage")
|
||||
@ResponseBody
|
||||
|
|
@ -1072,9 +1072,7 @@ public class TaskController {
|
|||
@PostMapping("/queryFinishByStandAndGoods")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "查询当前站台的正在拣选的物料是否完成", logMethod = "queryFinishByStandAndGoods")
|
||||
public String queryFinishByStandAndGoods(@RequestBody WorkQuery workQuery) {
|
||||
logger.info("查询当前站台的正在拣选的物料是否完成:{},ip地址:{}", convertJsonString(workQuery), HttpUtils.getIpAddr(servletRequest));
|
||||
ResponseEntity response = new ResponseEntity();
|
||||
try {
|
||||
String validateInfo = validateService.validateGetWorkVoRequest(workQuery);
|
||||
|
|
@ -1206,6 +1204,7 @@ public class TaskController {
|
|||
workFlow.setWorkStatus(2);// 已完成
|
||||
}
|
||||
// 更新workFlow
|
||||
workFlow.setFinishTime(LocalDateTime.now());
|
||||
workFlowService.updateById(workFlow);
|
||||
// 更新库存数量
|
||||
Stock existStock = stockService.getOne(new LambdaQueryWrapper<Stock>()
|
||||
|
|
@ -1919,7 +1918,6 @@ public class TaskController {
|
|||
boolean hasInTask = taskService.exists(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
||||
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||
.eq(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode())
|
||||
.likeRight(Task::getTaskId, "RK_"));
|
||||
if (hasInTask) {
|
||||
taskService.update(new LambdaUpdateWrapper<Task>()
|
||||
|
|
|
|||
88
src/main/java/com/wms/controller/TaskMonitorController.java
Normal file
88
src/main/java/com/wms/controller/TaskMonitorController.java
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
package com.wms.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wms.annotation.MyLog;
|
||||
import com.wms.constants.enums.ResponseCode;
|
||||
import com.wms.entity.app.ResponseEntity;
|
||||
import com.wms.entity.app.dto.PageDto;
|
||||
import com.wms.entity.app.request.PickTaskQuery;
|
||||
import com.wms.entity.app.request.TaskQuery;
|
||||
import com.wms.entity.app.vo.PickTaskVo;
|
||||
import com.wms.entity.app.vo.TaskVO;
|
||||
import com.wms.entity.table.PickTask;
|
||||
import com.wms.entity.table.Task;
|
||||
import com.wms.service.PickTaskService;
|
||||
import com.wms.utils.HttpUtils;
|
||||
import com.wms.utils.StringUtils;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.transaction.annotation.Isolation;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import static com.wms.utils.StringUtils.convertJsonString;
|
||||
|
||||
/**
|
||||
* 任务监控控制类
|
||||
*/
|
||||
@Controller
|
||||
@CrossOrigin
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||
@RequestMapping(value = "/wms/taskMonitor")
|
||||
public class TaskMonitorController {
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
/**
|
||||
* 请求头部信息
|
||||
*/
|
||||
private final HttpServletRequest servletRequest;
|
||||
/**
|
||||
* 拣选任务服务
|
||||
*/
|
||||
private final PickTaskService pickTaskService;
|
||||
|
||||
/**
|
||||
* 查询拣选任务---分页
|
||||
*
|
||||
* @param pickTaskQuery 查询参数
|
||||
* @return 查询结果
|
||||
*/
|
||||
@PostMapping("/getPickTasksByPage")
|
||||
@ResponseBody
|
||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||
@MyLog(logTitle = "查询拣选任务", logMethod = "getPickTasksByPage")
|
||||
public String getTasksByPage(@RequestBody PickTaskQuery pickTaskQuery) {
|
||||
logger.info("接收到查询拣选任务请求:{},ip地址:{}", convertJsonString(pickTaskQuery), HttpUtils.getIpAddr(servletRequest));
|
||||
ResponseEntity response = new ResponseEntity();
|
||||
try {
|
||||
Page<PickTask> page = pickTaskQuery.toMpPage();
|
||||
//更新条件
|
||||
LambdaQueryWrapper<PickTask> lambdaQueryWrapper = new LambdaQueryWrapper<PickTask>()
|
||||
.eq(pickTaskQuery.getPickStatus() != null, PickTask::getPickStatus, pickTaskQuery.getPickStatus())
|
||||
.like(StringUtils.isNotEmpty(pickTaskQuery.getPickTaskId()), PickTask::getPickTaskId, pickTaskQuery.getPickTaskId())
|
||||
.like(StringUtils.isNotEmpty(pickTaskQuery.getVehicleId()), PickTask::getVehicleId, pickTaskQuery.getVehicleId())
|
||||
.like(StringUtils.isNotEmpty(pickTaskQuery.getStandId()), PickTask::getStandId, pickTaskQuery.getStandId());
|
||||
Page<PickTask> pickTasksPage = pickTaskService.page(page, lambdaQueryWrapper);
|
||||
// 生成数据
|
||||
PageDto<PickTaskVo> pageDto = PageDto.of(pickTasksPage, pickTasks -> BeanUtil.copyProperties(pickTasks, PickTaskVo.class));
|
||||
response.setCode(ResponseCode.OK.getCode());
|
||||
response.setMessage("查询拣选任务成功");
|
||||
response.setReturnData(pageDto);
|
||||
return convertJsonString(response);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("查询拣选任务发生异常");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("查询拣选任务发生异常");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
}
|
||||
}
|
||||
44
src/main/java/com/wms/entity/app/request/PickTaskQuery.java
Normal file
44
src/main/java/com/wms/entity/app/request/PickTaskQuery.java
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
package com.wms.entity.app.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 拣选任务查询类
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class PickTaskQuery extends PageQuery {
|
||||
/**
|
||||
* 拣选任务号
|
||||
*/
|
||||
@JsonProperty("pickTaskId")
|
||||
private String pickTaskId;
|
||||
/**
|
||||
* 载具号
|
||||
*/
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 站台号
|
||||
*/
|
||||
@JsonProperty("standId")
|
||||
private String standId;
|
||||
/**
|
||||
* 拣选任务状态
|
||||
* -1:暂时不可发送
|
||||
* 0:初始化
|
||||
* 1:已发送
|
||||
* 2:已完成
|
||||
*/
|
||||
@JsonProperty("pickStatus")
|
||||
private Integer pickStatus;
|
||||
/**
|
||||
* 最近更新时间
|
||||
*/
|
||||
@JsonProperty("lastUpdateTime")
|
||||
private LocalDateTime lastUpdateTime;
|
||||
}
|
||||
39
src/main/java/com/wms/entity/app/vo/PickTaskVo.java
Normal file
39
src/main/java/com/wms/entity/app/vo/PickTaskVo.java
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package com.wms.entity.app.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class PickTaskVo {
|
||||
/**
|
||||
* 拣选任务号
|
||||
*/
|
||||
@JsonProperty("pickTaskId")
|
||||
private String pickTaskId;
|
||||
/**
|
||||
* 载具号
|
||||
*/
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 站台号
|
||||
*/
|
||||
@JsonProperty("standId")
|
||||
private String standId;
|
||||
/**
|
||||
* 拣选任务状态
|
||||
* -1:暂时不可发送
|
||||
* 0:初始化
|
||||
* 1:已发送
|
||||
* 2:已完成
|
||||
*/
|
||||
@JsonProperty("pickStatus")
|
||||
private Integer pickStatus;
|
||||
/**
|
||||
* 最近更新时间
|
||||
*/
|
||||
@JsonProperty("lastUpdateTime")
|
||||
private LocalDateTime lastUpdateTime;
|
||||
}
|
||||
|
|
@ -232,7 +232,7 @@ public class ValidateServiceImplements implements IValidateService {
|
|||
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||
.eq(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode());
|
||||
if (!taskService.exists(queryWrapper)) {
|
||||
return "当前载具没有入库或回库任务";
|
||||
return "当前载具没有待下发的入库或回库任务";
|
||||
}
|
||||
|
||||
return "";
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
|||
} catch (Exception e) {
|
||||
logger.error("获取重要记录清理天数错误,使用默认值365天");
|
||||
}
|
||||
|
||||
// 普通记录---入出库记录、拣选任务记录
|
||||
// 重要记录---盘点记录、工作总结、库存更新记录、非计划领料记录、上传文件记录
|
||||
} catch (Exception exception) {
|
||||
// 回滚事务
|
||||
|
|
|
|||
|
|
@ -66,11 +66,11 @@ public class WmsTaskServiceImplements implements IWmsTaskService {
|
|||
tempInTask.setUserName(taskInRequest.getUserName());
|
||||
try {
|
||||
if (!taskService.save(tempInTask)) {
|
||||
return "添加空入库任务失败";
|
||||
result = "添加空入库任务失败";
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("添加空入库任务异常:{}", convertJsonString(e));
|
||||
return "添加空入库任务失败";
|
||||
result = "添加空入库任务失败";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -370,18 +370,19 @@ public class WorkServiceImplements implements IWorkService {
|
|||
*/
|
||||
private void findWorks(String workStation, List<WorkFlow> workFlows, String model) {
|
||||
// 查到当前站台所有的小工位
|
||||
List<WorkStationConfig> currentStationConfigsOfNwl = workStationConfigService.list(new LambdaQueryWrapper<WorkStationConfig>()
|
||||
.eq(WorkStationConfig::getWorkStation, workStation)
|
||||
.eq(Objects.equals(model, "MWL"), WorkStationConfig::getModel, model)
|
||||
.ne(!Objects.equals(model, "MWL"), WorkStationConfig::getModel, "MWL"));
|
||||
LambdaQueryWrapper<WorkStationConfig> stationConfigQueryWrapper = new LambdaQueryWrapper<WorkStationConfig>().eq(WorkStationConfig::getWorkStation, workStation);
|
||||
if (Objects.equals(model, "MWL")) {
|
||||
stationConfigQueryWrapper.eq(WorkStationConfig::getModel, "MWL");
|
||||
} else {
|
||||
stationConfigQueryWrapper.ne(WorkStationConfig::getModel, "MWL");
|
||||
}
|
||||
List<WorkStationConfig> currentStationConfigsOfNwl = workStationConfigService.list(stationConfigQueryWrapper);
|
||||
// 当前站台未分配库位
|
||||
if (currentStationConfigsOfNwl == null || currentStationConfigsOfNwl.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 今日开工的工单和小工位
|
||||
Map<String, WorkCenterAndOrderDto> tasksOfTodayMap = new HashMap<>();
|
||||
// 防止重复查询
|
||||
Map<String, KateDBS> ordersAndDBSMap = new HashMap<>();
|
||||
Map<String, List<WorkCenterAndOrderDto>> tasksOfTodayMap = new HashMap<>();
|
||||
// 根据所有小工位,查到对应的任务
|
||||
for (WorkStationConfig workConfig : currentStationConfigsOfNwl) {
|
||||
// 查询当前小工位是否已经判断过开工日期
|
||||
|
|
@ -397,17 +398,17 @@ public class WorkServiceImplements implements IWorkService {
|
|||
if (kateWorkOrders == null || kateWorkOrders.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
List<WorkCenterAndOrderDto> toDaysOrders = new ArrayList<>();
|
||||
// 防止重复查询
|
||||
Map<String, KateDBS> ordersAndDBSMap = new HashMap<>();
|
||||
for (KateOrders kateWorkOrder : kateWorkOrders) {
|
||||
KateDBS kateDBS;
|
||||
if (ordersAndDBSMap.containsKey(kateWorkOrder.getWorkOrder())) {
|
||||
kateDBS = ordersAndDBSMap.get(kateWorkOrder.getWorkOrder());
|
||||
} else {
|
||||
if (!ordersAndDBSMap.containsKey(kateWorkOrder.getWorkOrder())) {
|
||||
// 从DBS表查询对应的工单以及开工时间
|
||||
kateDBS = kateDBSService.getOne(new LambdaQueryWrapper<KateDBS>()
|
||||
KateDBS kateDBS = kateDBSService.getOne(new LambdaQueryWrapper<KateDBS>()
|
||||
.eq(KateDBS::getWorkOrder, kateWorkOrder.getWorkOrder())
|
||||
.ne(KateDBS::getDbsStatus, 2)
|
||||
.orderByAsc(KateDBS::getWorkSequence));
|
||||
}
|
||||
.orderByAsc(KateDBS::getWorkSequence)
|
||||
.last("limit 1"));
|
||||
if (kateDBS == null || StringUtils.isEmpty(kateDBS.getWorkOrder())) {// 不存在对应的工单计划
|
||||
continue;
|
||||
}
|
||||
|
|
@ -420,15 +421,17 @@ public class WorkServiceImplements implements IWorkService {
|
|||
wcoDto.setWorkCenter(workConfig.getSmallBox());
|
||||
wcoDto.setWorkOrder(kateWorkOrder.getWorkOrder());
|
||||
wcoDto.setStartDate(LocalDateTime.now().toLocalDate().atStartOfDay());
|
||||
// 减少后续重复查询数据库
|
||||
tasksOfTodayMap.put(workConfig.getSmallBox(), wcoDto);
|
||||
toDaysOrders.add(wcoDto);
|
||||
}
|
||||
}
|
||||
}
|
||||
tasksOfTodayMap.put(workConfig.getSmallBox(), toDaysOrders);
|
||||
}
|
||||
// 判断是否有今天开工的工单和小工位
|
||||
if (!tasksOfTodayMap.isEmpty()) {
|
||||
for (String smallBoxKey : tasksOfTodayMap.keySet()) {
|
||||
WorkCenterAndOrderDto currentWorkCenterAndOrderDto = tasksOfTodayMap.get(smallBoxKey);
|
||||
List<WorkCenterAndOrderDto> currentWorkCenterAndOrderDtoList = tasksOfTodayMap.get(smallBoxKey);
|
||||
for (WorkCenterAndOrderDto currentWorkCenterAndOrderDto : currentWorkCenterAndOrderDtoList) {
|
||||
// 通过工单表查询到对应的工单
|
||||
List<KateOrders> kateWorkOrderList = kateOrdersService.list(new LambdaQueryWrapper<KateOrders>()
|
||||
.eq(KateOrders::getWorkOrder, currentWorkCenterAndOrderDto.getWorkOrder())
|
||||
|
|
@ -455,3 +458,4 @@ public class WorkServiceImplements implements IWorkService {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user