add:任务下发按钮及逻辑

This commit is contained in:
2024-07-17 17:56:17 +08:00
parent ebc6330995
commit e9e5faa32a
2 changed files with 95 additions and 55 deletions

View File

@@ -1,5 +1,8 @@
package org.nl.wms.dispatch_manage.task.service.impl; package org.nl.wms.dispatch_manage.task.service.impl;
import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -11,6 +14,8 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.poi.ss.formula.functions.T;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.entity.PageQuery;
import org.nl.common.domain.exception.BadRequestException; import org.nl.common.domain.exception.BadRequestException;
import org.nl.common.enums.StatusEnum; import org.nl.common.enums.StatusEnum;
@@ -23,6 +28,7 @@ import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper;
import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery; import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery;
import org.nl.wms.external_system.acs.service.WmsToAcsService;
import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler; import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler;
import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService; import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService;
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution; import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
@@ -34,6 +40,7 @@ import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@@ -60,6 +67,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
@Lazy @Lazy
private MoveStorageTask moveStorageTask; private MoveStorageTask moveStorageTask;
@Autowired
private WmsToAcsService wmsToAcsService;
@Override @Override
public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) { public IPage<SchBaseTask> queryAll(SchBaseTaskQuery whereJson, PageQuery page) {
List<String> collect = ObjectUtil.isNotEmpty(whereJson.getMore_status()) List<String> collect = ObjectUtil.isNotEmpty(whereJson.getMore_status())
@@ -76,8 +86,6 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
} }
@Override @Override
public List<Map> getByVehicle(String vehicle_code) { public List<Map> getByVehicle(String vehicle_code) {
if (StringUtils.isEmpty(vehicle_code)) { if (StringUtils.isEmpty(vehicle_code)) {
@@ -143,6 +151,30 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
throw new BadRequestException(ex.getMessage()); throw new BadRequestException(ex.getMessage());
} }
} }
} else if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("下发"))) {
ArrayList<SchBaseTask> list = ListOf.of(task);
if (!CollectionUtils.isEmpty(list)) {
List<String> taskCodes = list.stream().map(SchBaseTask::getTask_code).collect(Collectors.toList());
TableDataInfo response = wmsToAcsService.interationToExt(list, "createTask");
if (!response.getCode().equals(String.valueOf(HttpStatus.HTTP_OK))) {
JSONArray results = (JSONArray) JSON.toJSON(response.getData());
if (!CollectionUtils.isEmpty(results)) {
for (Object result : results) {
Map resultM = (Map) result;
taskCodes.remove(resultM.get("task_code"));
this.update(new UpdateWrapper<SchBaseTask>()
.eq("task_code", resultM.get("task_code"))
.set("status", StatusEnum.FORM_STATUS.code("暂停"))
.set("update_time", DateUtil.now()).set("remark", resultM.get("msg")));
}
}
}
if (!CollectionUtils.isEmpty(taskCodes)) {
this.update(new UpdateWrapper<SchBaseTask>()
.set("status", StatusEnum.FORM_STATUS.code("下发"))
.in("task_code", taskCodes));
}
}
} else { } else {
this.update(new UpdateWrapper<SchBaseTask>() this.update(new UpdateWrapper<SchBaseTask>()
.set("status", param.getString("status")) .set("status", param.getString("status"))
@@ -151,11 +183,12 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
} }
/** /**
"type": * "type":
"rm" 入满 标记目标货位异常,重新分配货位;更新任务终点,反馈目的货位 * "rm" 入满 标记目标货位异常,重新分配货位;更新任务终点,反馈目的货位
"rzd"入库阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;更新任务终点,反馈目的货位 * "rzd"入库阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;更新任务终点,反馈目的货位
"ck"空出 修改目标货位为空位,任务直接取消,不扣件关联单据已出库数量 * "ck"空出 修改目标货位为空位,任务直接取消,不扣件关联单据已出库数量
"czd"取货阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;任务重新下发 * "czd"取货阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;任务重新下发
*
* @return * @return
*/ */
@Override @Override

View File

@@ -164,8 +164,15 @@
<el-table-column prop="create_time" show-overflow-tooltip show-tooltip-when-overflow label="创建时间"/> <el-table-column prop="create_time" show-overflow-tooltip show-tooltip-when-overflow label="创建时间"/>
<el-table-column prop="update_name" show-overflow-tooltip show-tooltip-when-overflow label="修改人"/> <el-table-column prop="update_name" show-overflow-tooltip show-tooltip-when-overflow label="修改人"/>
<el-table-column prop="update_time" show-overflow-tooltip show-tooltip-when-overflow label="修改时间"/> <el-table-column prop="update_time" show-overflow-tooltip show-tooltip-when-overflow label="修改时间"/>
<el-table-column v-permission="[]" label="操作" width="200px" align="center" fixed="right"> <el-table-column v-permission="[]" label="操作" width="250px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
type="text"
icon="el-icon-success"
@click="doOperate(scope.row, 'c')"
:disabled="scope.row.status!=='10' && scope.row.status!=='30' "
>下发
</el-button>
<el-button <el-button
type="text" type="text"
icon="el-icon-success" icon="el-icon-success"
@@ -287,7 +294,7 @@ export default {
status = '90' status = '90'
break break
case 'c':// 下发 case 'c':// 下发
status = '20' status = '15'
break break
case 'd':// 详情 case 'd':// 详情
status = 'view' status = 'view'