| | |
| | | import com.zy.asrs.wms.apis.wcs.entity.request.TaskDescribe;
|
| | | import com.zy.asrs.wms.apis.wcs.entity.request.TaskParam;
|
| | | import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse;
|
| | | import com.zy.asrs.wms.asrs.entity.Task;
|
| | | import com.zy.asrs.wms.asrs.entity.*;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.OrderOutMergeDto;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.LocStsType;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.TaskStsType;
|
| | | import com.zy.asrs.wms.asrs.service.TaskService;
|
| | | import com.zy.asrs.wms.asrs.service.WorkService;
|
| | | import com.zy.asrs.wms.asrs.service.*;
|
| | | import com.zy.asrs.wms.asrs.service.impl.LocServiceImpl;
|
| | | import com.zy.asrs.wms.utils.Utils;
|
| | | import lombok.extern.slf4j.Slf4j;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.http.HttpEntity;
|
| | |
| | | private RestTemplate restTemplate;
|
| | | @Autowired
|
| | | private WorkService workService;
|
| | |
|
| | | @Resource
|
| | | private SystemProperties properties;
|
| | | @Autowired
|
| | | private LocServiceImpl locService;
|
| | | @Autowired
|
| | | private LocDetlService locDetlService;
|
| | | @Autowired
|
| | | private TaskDetlService taskDetlService;
|
| | | @Autowired
|
| | | private LocDetlFieldService locDetlFieldService;
|
| | | @Autowired
|
| | | private TaskDetlFieldService taskDetlFieldService;
|
| | | @Autowired
|
| | | private CacheSiteService cacheSiteService;
|
| | | @Autowired
|
| | | private OperationPortService operationPortService;
|
| | |
|
| | | /***
|
| | | * 入库任务---通知ESS输送线流动
|
| | |
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 生成自动盘点任务
|
| | | */
|
| | | @Scheduled(cron = "0/50 * * * * ?")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void genCheckTask() {
|
| | | Loc locs = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocStsId, LocStsType.F.val()).orderByAsc(Loc::getLocNo).last("limit 1"));
|
| | | if (Objects.isNull(locs)) {
|
| | | return;
|
| | | }
|
| | | List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().select(Task::getId).eq(Task::getTaskType, 107L));
|
| | | if (!tasks.isEmpty() && tasks.size() >= 4) {
|
| | | //默认生成四个盘点任务,超过4个,停止生成盘点任务;
|
| | | return;
|
| | | }
|
| | | OperationPort operationPort = operationPortService.getOne(new LambdaQueryWrapper<OperationPort>().last("ORDER BY RAND() LIMIT 1;"));
|
| | | if (operationPort == null || Objects.isNull(operationPort)) {
|
| | | throw new CoolException("作业口不存在");
|
| | | }
|
| | | Task task = new Task();
|
| | | task.setTaskNo(workService.generateTaskNo(TaskStsType.GENERATE_OUT.id));
|
| | | task.setTaskSts(TaskStsType.GENERATE_OUT.id);
|
| | | task.setTaskType(107L); //默认107盘点任务,盘点任务没有,按103处理
|
| | | task.setIoPri(workService.generateIoPri(TaskStsType.GENERATE_OUT.id));
|
| | | task.setOriginLoc(locs.getLocNo());
|
| | | task.setTargetSite(operationPort.getFlag());
|
| | | task.setBarcode(locs.getBarcode());
|
| | |
|
| | | if (!taskService.save(task)) {
|
| | | throw new CoolException("任务生成失败!!");
|
| | | }
|
| | |
|
| | | List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locs.getId()));
|
| | | if (locDetls.isEmpty()) {
|
| | | throw new CoolException("明细不存在!!");
|
| | | }
|
| | |
|
| | | for (LocDetl locDetl : locDetls) {
|
| | | TaskDetl taskDetl = new TaskDetl();
|
| | | taskDetl.sync(locDetl);
|
| | | taskDetl.setId(null);
|
| | | taskDetl.setTaskId(task.getId());
|
| | | taskDetl.setTaskNo(task.getTaskNo());
|
| | | taskDetl.setAnfme(locDetl.getAnfme());
|
| | | taskDetl.setStock(locDetl.getAnfme());
|
| | | taskDetl.setWaveId(null);
|
| | | taskDetl.setWaveNo(null);
|
| | | taskDetl.setOrderId(null);
|
| | | taskDetl.setOrderNo(null);
|
| | | if (!taskDetlService.save(taskDetl)) {
|
| | | throw new CoolException("保存工作档明细失败");
|
| | | }
|
| | |
|
| | | List<LocDetlField> locDetlFields = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId()));
|
| | | for (LocDetlField locDetlField : locDetlFields) {
|
| | | TaskDetlField taskDetlField = new TaskDetlField();
|
| | | taskDetlField.sync(locDetlField);
|
| | | taskDetlField.setId(null);
|
| | | taskDetlField.setDetlId(taskDetl.getId());
|
| | | if (!taskDetlFieldService.save(taskDetlField)) {
|
| | | throw new CoolException("明细扩展生成失败");
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | if (!locService.update(new LambdaUpdateWrapper<Loc>().eq(Loc::getId, locs.getId())
|
| | | .set(Loc::getUpdateTime, new Date())
|
| | | .set(Loc::getLocStsId, LocStsType.R.val()))) {
|
| | | throw new CoolException("库位状态修改失败!!");
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | /***
|
| | | * 入库任务---下发入库任务
|