fix: 对接记录与例子
This commit is contained in:
@@ -1,13 +1,15 @@
|
|||||||
package org.nl.wms.sch.task_manage.task.tasks.hn;
|
package org.nl.wms.sch.task_manage.task.tasks.hn;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.Data;
|
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
|
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||||
|
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
@@ -19,12 +21,16 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
|||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.enums.*;
|
import org.nl.wms.sch.task_manage.enums.*;
|
||||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper;
|
||||||
|
import org.nl.wms.util.PointUtils;
|
||||||
import org.nl.wms.util.TaskUtils;
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -32,18 +38,15 @@ import java.util.List;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ldjun 混碾满料任务
|
* @author ldjun
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @date 2023年05月16日 16:44
|
* @date 2023年05月16日 16:44
|
||||||
* @desc desc
|
* @desc 混碾满料任务: 混碾机 -> 困料输送线
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
@Data
|
@TaskType("HLMLTask")
|
||||||
@TaskType("HNMLTask")
|
|
||||||
public class HNMLTask extends AbstractTask {
|
public class HNMLTask extends AbstractTask {
|
||||||
|
private static String TASK_CONFIG_CODE = "HLMLTask";
|
||||||
private static String TASK_CONFIG_CODE = "HNMLTask";
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -54,23 +57,28 @@ public class HNMLTask extends AbstractTask {
|
|||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdWorkorderService workorderService;
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
|
@Autowired
|
||||||
|
private IMdBaseMaterialService materialService;
|
||||||
|
@Autowired
|
||||||
|
private HNMapper hnMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
protected void updateStatus(String task_code, TaskStatus status) {
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
// 校验任务
|
// 校验任务
|
||||||
SchBaseTask taskObj = taskService.getById(task_code);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
throw new BadRequestException("该任务已完成!");
|
throw new BadRequestException("该任务已完成!");
|
||||||
}
|
}
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
throw new BadRequestException("该任务已取消!");
|
throw new BadRequestException("该任务已取消!");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
TaskUtils.setUpdateByAcs(taskObj);
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
} else if (status.equals(TaskStatus.FINISHED)) { // 完成
|
} else if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
@@ -84,32 +92,43 @@ public class HNMLTask extends AbstractTask {
|
|||||||
* 具体业务
|
* 具体业务
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void create() { // 找点+下发、 定时任务
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
protected void create() { // 找点+下发-定时任务
|
||||||
// 获取任务
|
// 获取任务
|
||||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||||
// 配置信息
|
// 配置信息
|
||||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||||
for (SchBaseTask task : tasks) {
|
for (SchBaseTask task : tasks) {
|
||||||
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||||
String extGroupData = task.getExt_group_data();
|
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(","))
|
||||||
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
.collect(Collectors.toList());
|
||||||
|
String requestParam = task.getRequest_param();// 任务的其他数据
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||||
// 找终点
|
// 找终点
|
||||||
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("未存在生产该料的压机!");
|
||||||
taskService.update(task);
|
taskService.updateById(task);
|
||||||
// 消息通知
|
// 消息通知
|
||||||
noticeService.createNotice("未找到所需点位!", TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// 叫料完成
|
||||||
|
// requestMaterialRecordService.callMaterialFinish(point.getRecord_id());
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code2(point.getPoint_code());
|
task.setPoint_code2(point.getPoint_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.update(task);
|
task.setRemark("");
|
||||||
|
task.setVehicle_type(GeneralDefinition.MATERIAL_CUP);
|
||||||
|
// 告知acs去左边右边
|
||||||
|
int number = getNumber(point);
|
||||||
|
task.setResponse_param(new JSONObject().fluentPut("direction", number).toJSONString());
|
||||||
|
taskService.updateById(task);
|
||||||
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
pointService.update(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
// this.renotifyAcs(task);
|
||||||
@@ -117,28 +136,28 @@ public class HNMLTask extends AbstractTask {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extData) {
|
private static int getNumber(SchBasePoint point) {
|
||||||
String workorderCode = extData.getString("workorder_code");
|
String deviceCode = point.getDevice_code(); // 获取设备编码
|
||||||
PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
|
int number = Integer.parseInt(deviceCode.replaceAll("[^0-9]", ""));
|
||||||
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
// 1左边2右边
|
||||||
: null;
|
number = (number % 2) == 0 ? 2 : (number % 2);
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
return number;
|
||||||
lam.in(SchBasePoint::getRegion_code, nextRegionStr)
|
}
|
||||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
|
||||||
.like(ObjectUtil.isNotEmpty(one), SchBasePoint::getCan_vehicle_type, one.getVehicle_type())
|
/**
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
* 根据压机工单的原料编码以及点位的更新时间
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
*
|
||||||
.or()
|
* @param nextRegionStr
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
* @param requestParam
|
||||||
.orderByAsc(SchBasePoint::getIn_order_seq)
|
* @return
|
||||||
.orderByAsc(SchBasePoint::getPoint_code);
|
*/
|
||||||
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject requestParam) {
|
||||||
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void forceFinish(String task_code) {
|
public void forceFinish(String task_code) { // 人工完成任务
|
||||||
SchBaseTask taskObj = taskService.getById(task_code);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
if (ObjectUtil.isEmpty(taskObj)) {
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
throw new BadRequestException("该任务不存在");
|
throw new BadRequestException("该任务不存在");
|
||||||
}
|
}
|
||||||
@@ -146,70 +165,74 @@ public class HNMLTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_code) {
|
public void cancel(String task_code) { // 人工取消任务
|
||||||
SchBaseTask taskObj = taskService.getById(task_code);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
if (ObjectUtil.isEmpty(taskObj)) {
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
throw new BadRequestException("该任务不存在");
|
throw new BadRequestException("该任务不存在");
|
||||||
}
|
}
|
||||||
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
// todo: 通知acs取消任务
|
||||||
}
|
}
|
||||||
|
|
||||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
// 获取参数
|
// 获取参数
|
||||||
String endPoint = taskObj.getPoint_code2(); // 终点
|
String endPoint = taskObj.getPoint_code2(); // 终点
|
||||||
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
|
||||||
? JSONObject.parseObject(taskObj.getExt_group_data())
|
|
||||||
: null;
|
|
||||||
// 载具编码:没有就创建一个
|
|
||||||
String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code()) ? taskObj.getVehicle_code() : IdUtil.getSnowflake(1, 1).nextIdStr();
|
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
PdmBdWorkorder workorderCode =
|
String responseParam = taskObj.getResponse_param();
|
||||||
ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
|
JSONObject responseObj = JSONObject.parseObject(responseParam);
|
||||||
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
|
// 要把数据存到组盘表。压制工单放进去,
|
||||||
.eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
|
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne(
|
||||||
: null;
|
new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||||
// 要把数据存到组盘表
|
.eq(SchBaseVehiclematerialgroup::getGroup_id, taskObj.getGroup_id()));
|
||||||
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
if (ObjectUtil.isEmpty(groupEntity)) {
|
||||||
groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
|
// 找不到组盘信息
|
||||||
? workorderCode.getMaterial_id()
|
throw new BadRequestException("找不到组盘信息");
|
||||||
: "");
|
}
|
||||||
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
|
|
||||||
? workorderCode.getStanding_time()
|
|
||||||
: 0);
|
|
||||||
groupEntity.setIs_full(ObjectUtil.isNotEmpty(extGroupData)
|
|
||||||
? extGroupData.getBoolean("is_full")
|
|
||||||
: true);
|
|
||||||
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(extGroupData)
|
|
||||||
? extGroupData.getInteger("material_qty")
|
|
||||||
: 0);
|
|
||||||
groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
|
|
||||||
? extGroupData.getBigDecimal("material_weight")
|
|
||||||
: BigDecimal.valueOf(0));
|
|
||||||
groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
|
|
||||||
? workorderCode.getWorkorder_code()
|
|
||||||
: "");
|
|
||||||
groupEntity.setVehicle_code(vehicle_code);
|
|
||||||
groupEntity.setVehicle_type(taskObj.getVehicle_type());
|
|
||||||
groupEntity.setPoint_code(endPoint);
|
|
||||||
groupEntity.setPoint_name(endPointObj.getPoint_name());
|
|
||||||
groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
|
|
||||||
groupEntity.setInstorage_time(DateUtil.now());
|
|
||||||
groupEntity.setTask_code(taskObj.getTask_code());
|
|
||||||
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
|
|
||||||
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
|
|
||||||
groupEntity.setIs_delete(false);
|
|
||||||
vehiclematerialgroupService.create(groupEntity);
|
|
||||||
|
|
||||||
// 终点去除正在执行的任务, 设置载具编码、载具类型、载具数量
|
// 终点去除正在执行的任务, 设置载具编码、载具类型、载具数量
|
||||||
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
||||||
endPointObj.setIng_task_code("");
|
endPointObj.setIng_task_code("");
|
||||||
endPointObj.setVehicle_code(vehicle_code);
|
|
||||||
endPointObj.setVehicle_type(taskObj.getVehicle_type());
|
|
||||||
endPointObj.setVehicle_qty(1);
|
endPointObj.setVehicle_qty(1);
|
||||||
endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); // 有料
|
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
|
||||||
pointService.update(endPointObj);
|
pointService.updateById(endPointObj);
|
||||||
|
// 终点为公用点位,需要获取左右方向
|
||||||
|
String parentPointCode = endPointObj.getParent_point_code();
|
||||||
|
String[] split = parentPointCode.split(",");
|
||||||
|
if (split.length > 1) {
|
||||||
|
parentPointCode = split[responseObj.getInteger("direction") - 1];
|
||||||
|
}
|
||||||
|
// 找到父点位
|
||||||
|
SchBasePoint yjDevice = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
|
.eq(SchBasePoint::getPoint_code, parentPointCode));
|
||||||
|
// 父点位(设备)需要切换成非空状态
|
||||||
|
PointUtils.setUpdateByType(yjDevice, taskFinishedType);
|
||||||
|
yjDevice.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
|
||||||
|
pointService.updateById(yjDevice);
|
||||||
|
// 找压机工单
|
||||||
|
PdmBdWorkorder one = workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
|
||||||
|
.eq(yjDevice != null, PdmBdWorkorder::getPoint_code, yjDevice.getPoint_code())
|
||||||
|
.eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode()));
|
||||||
|
if (ObjectUtil.isNotEmpty(one)) {
|
||||||
|
// 给组盘数据设置批次:压制工单+混砂机号+碾次
|
||||||
|
groupEntity.setWorkorder_code(one.getWorkorder_code());
|
||||||
|
StringBuilder pcsn = new StringBuilder();
|
||||||
|
pcsn.append(one.getWorkorder_code()).append(groupEntity.getPoint_code()).append(groupEntity.getMix_times());
|
||||||
|
groupEntity.setPcsn(pcsn.toString());
|
||||||
|
groupEntity.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||||
|
groupEntity.setPoint_name(endPointObj.getPoint_name());
|
||||||
|
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
|
||||||
|
groupEntity.setMaterial_id(one.getMaterial_id());
|
||||||
|
// *根据压机的工单物料标识查找静置时间
|
||||||
|
MdBaseMaterial mdBaseMaterial = materialService.getById(one.getMaterial_id());
|
||||||
|
groupEntity.setStanding_time(mdBaseMaterial.getStanding_time());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
taskObj.setRemark("任务完成");
|
// 更新组盘数据
|
||||||
|
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
|
groupEntity.setTask_code(taskObj.getTask_code()); // 当前任务的编码
|
||||||
|
TaskUtils.setGroupUpdateByType(groupEntity, taskFinishedType);
|
||||||
|
vehiclematerialgroupService.updateById(groupEntity);
|
||||||
|
// 起点清空 - 由ACS请求修改
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
taskObj.setFinished_type(taskFinishedType.getCode());
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
@@ -224,12 +247,67 @@ public class HNMLTask extends AbstractTask {
|
|||||||
: null;
|
: null;
|
||||||
if (one != null) {
|
if (one != null) {
|
||||||
one.setIng_task_code("");
|
one.setIng_task_code("");
|
||||||
pointService.update(one);
|
PointUtils.setUpdateByType(one, taskFinishedType);
|
||||||
|
pointService.updateById(one);
|
||||||
}
|
}
|
||||||
taskObj.setRemark("任务取消");
|
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskObj.setFinished_type(taskFinishedType.getCode());
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 组盘
|
||||||
|
@Override
|
||||||
|
public String setGroupPlate(JSONObject param) {
|
||||||
|
// 吨袋号(泥料号+2位年+月日时分+设备号+碾次)x
|
||||||
|
// LMS组盘时生成混料批次:压制工单+混砂机号+碾次
|
||||||
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
|
String vehicleType = param.getString("vehicle_type");
|
||||||
|
// 泥料物料对应不出物料标识
|
||||||
|
String materialCode = param.getString("material_code"); // 泥料编码
|
||||||
|
String mixTimes = param.getString("mix_number"); // 碾次
|
||||||
|
// 载具类型默认料盅
|
||||||
|
if (vehicleType == null) {
|
||||||
|
vehicleType = GeneralDefinition.MATERIAL_CUP;
|
||||||
|
}
|
||||||
|
String deviceCode = param.getString("device_code");
|
||||||
|
BigDecimal weight = param.getBigDecimal("weight");
|
||||||
|
SchBasePoint basePoint = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
|
.eq(SchBasePoint::getPoint_code, deviceCode)
|
||||||
|
.eq(SchBasePoint::getIs_used, true));
|
||||||
|
if (vehicleCode == null || vehicleCode.equals(GeneralDefinition.NO)) {
|
||||||
|
throw new BadRequestException("载具编码不能为空");
|
||||||
|
}
|
||||||
|
// 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入
|
||||||
|
// 找到不直接返回,用那条数据进行修改
|
||||||
|
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getGroupInfo(vehicleCode, vehicleType,
|
||||||
|
GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
|
if (groupEntity == null) {
|
||||||
|
groupEntity = new SchBaseVehiclematerialgroup();
|
||||||
|
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
|
}
|
||||||
|
// 要把数据存到组盘表
|
||||||
|
groupEntity.setMaterial_id(GeneralDefinition.UNKNOWN); // 物料标识等任务完成后赋值
|
||||||
|
groupEntity.setRedundance_material_code(materialCode);
|
||||||
|
groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
|
||||||
|
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
|
||||||
|
groupEntity.setCreate_time(DateUtil.now());
|
||||||
|
groupEntity.setVehicle_code(vehicleCode);
|
||||||
|
groupEntity.setVehicle_type(vehicleType);
|
||||||
|
groupEntity.setSource_vehicle_code(basePoint.getPoint_code());
|
||||||
|
groupEntity.setPoint_code(basePoint.getPoint_code()); // 当前位置
|
||||||
|
groupEntity.setPoint_name(basePoint.getPoint_name());
|
||||||
|
groupEntity.setMove_way(basePoint.getPoint_code()); // 头次
|
||||||
|
groupEntity.setMix_times(mixTimes); // 碾次
|
||||||
|
groupEntity.setInstorage_time(DateUtil.now());
|
||||||
|
groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(weight)// 重量
|
||||||
|
? weight
|
||||||
|
: BigDecimal.valueOf(0));
|
||||||
|
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 待绑定
|
||||||
|
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
|
||||||
|
groupEntity.setIs_delete(false);
|
||||||
|
vehiclematerialgroupService.saveOrUpdate(groupEntity);
|
||||||
|
return groupEntity.getGroup_id();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task.tasks.hn.mapper;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description:
|
||||||
|
* @Date: 2023/8/17
|
||||||
|
*/
|
||||||
|
public interface HNMapper {
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
package org.nl.wms.sch.task_manage.task.tasks.yz;
|
|
||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.nl.common.exception.BadRequestException;
|
|
||||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
|
||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
|
||||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
|
||||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
|
||||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
|
||||||
import org.nl.wms.util.PointUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @Author: lyd
|
|
||||||
* @Description: 压制缺料任务
|
|
||||||
* @Date: 2023/5/25
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@TaskType("YZQLTask")
|
|
||||||
public class YZQLTask extends AbstractTask {
|
|
||||||
private static String TASK_CONFIG_CODE = "YZQLTask";
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ISchBasePointService pointService;
|
|
||||||
@Autowired
|
|
||||||
private ISchBaseTaskService taskService;
|
|
||||||
@Autowired
|
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
|
||||||
@Autowired
|
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
|
||||||
@Autowired
|
|
||||||
private IPdmBdWorkorderService workorderService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void create() throws BadRequestException {
|
|
||||||
// 获取任务
|
|
||||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
|
||||||
// 配置信息
|
|
||||||
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
|
||||||
for (SchBaseTask task : tasks) {
|
|
||||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
|
||||||
// 找起点
|
|
||||||
String extGroupData = task.getExt_group_data();
|
|
||||||
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
|
||||||
jsonObject.put("vehicle_type", task.getVehicle_type());
|
|
||||||
SchBasePoint point = findStartPoint(startRegionStr, jsonObject);
|
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
|
||||||
task.setRemark("未找到所需点位!");
|
|
||||||
taskService.update(task);
|
|
||||||
// 消息通知
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// 设置起点并修改创建成功状态
|
|
||||||
task.setPoint_code1(point.getPoint_code());
|
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
|
||||||
task.setVehicle_code(point.getVehicle_code());
|
|
||||||
taskService.update(task);
|
|
||||||
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
|
||||||
pointService.update(point);
|
|
||||||
|
|
||||||
//下发
|
|
||||||
// this.renotifyAcs(task);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 找起点业务:根据起点区域寻找所需点位, 必须要工单
|
|
||||||
*
|
|
||||||
* @param startRegionStr : 区域列表
|
|
||||||
* @param extGroupData : 外部参数,包含条件所需的信息
|
|
||||||
* @return
|
|
||||||
* @description : JSONObject获取不到就是null
|
|
||||||
*/
|
|
||||||
private SchBasePoint findStartPoint(List<String> startRegionStr, JSONObject extGroupData) {
|
|
||||||
String workorderCode = extGroupData.getString("workorder_code");
|
|
||||||
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
|
||||||
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>().eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
|
||||||
: null;
|
|
||||||
Assert.notNull(workOrder, "工单不能为空!");
|
|
||||||
String vehicleType = workOrder.getVehicle_type();
|
|
||||||
String materialId = workOrder.getMaterial_id();
|
|
||||||
int standingTime = workOrder.getStanding_time(); // 静置时间
|
|
||||||
Assert.notNull(materialId, "物料不能为空!");
|
|
||||||
Assert.notNull(vehicleType, "载具类型不能为空!");
|
|
||||||
Assert.notNull(standingTime, "静置时间不能为空!");
|
|
||||||
// 找到所需要物料的载具编号
|
|
||||||
List<SchBaseVehiclematerialgroup> list = vehiclematerialgroupService.list(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getMaterial_id, materialId)
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())
|
|
||||||
.apply("DATE_ADD(instorage_time, INTERVAL " + standingTime + " MINUTE) <= NOW()")
|
|
||||||
.orderByAsc(SchBaseVehiclematerialgroup::getPoint_code));
|
|
||||||
// 获取第一个
|
|
||||||
SchBaseVehiclematerialgroup vehiclematerialgroup = ObjectUtil.isNotEmpty(list) ? list.get(0) : null;
|
|
||||||
if (ObjectUtil.isEmpty(vehiclematerialgroup)) return null;
|
|
||||||
SchBasePoint one = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
|
||||||
.in(SchBasePoint::getRegion_code, startRegionStr)
|
|
||||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.FULL_POINT.getCode())
|
|
||||||
.eq(SchBasePoint::getVehicle_code, vehiclematerialgroup.getVehicle_code())
|
|
||||||
.eq(SchBasePoint::getVehicle_type, vehicleType));
|
|
||||||
return one;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateStatus(String task_code, TaskStatus status) {
|
|
||||||
// 校验任务
|
|
||||||
SchBaseTask taskObj = taskService.getById(task_code);
|
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
|
||||||
throw new BadRequestException("该任务已完成!");
|
|
||||||
}
|
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
|
||||||
throw new BadRequestException("该任务已取消!");
|
|
||||||
}
|
|
||||||
// 获取参数
|
|
||||||
String startPoint = taskObj.getPoint_code1(); // 起点
|
|
||||||
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
|
||||||
? JSONObject.parseObject(taskObj.getExt_group_data())
|
|
||||||
: null;
|
|
||||||
SchBasePoint startPointObj = pointService.getById(startPoint);
|
|
||||||
// 根据传来的类型去对任务进行操作
|
|
||||||
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
|
||||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
|
||||||
taskObj.setRemark("执行中");
|
|
||||||
}
|
|
||||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
|
||||||
// 任务上有载具编码 -> 获取当前载具编码的组盘信息
|
|
||||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getVehicle_code, taskObj.getVehicle_code())
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getVehicle_type, taskObj.getVehicle_type())
|
|
||||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()));
|
|
||||||
// 将载具设置为已解绑
|
|
||||||
one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
|
||||||
vehiclematerialgroupService.update(one);
|
|
||||||
// 释放点位,将点位设置为空位,清空数据
|
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
|
||||||
PointUtils.clearPoint(startPointObj);
|
|
||||||
}
|
|
||||||
// 任务修改成完成
|
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
|
||||||
}
|
|
||||||
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
|
||||||
// 释放点位,起点正在执行的任务清空
|
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
|
||||||
startPointObj.setIng_task_code("");
|
|
||||||
pointService.update(startPointObj);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
taskService.update(taskObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void forceFinish(String task_code) {
|
|
||||||
this.updateStatus(task_code, TaskStatus.FINISHED);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void cancel(String task_code) {
|
|
||||||
this.updateStatus(task_code, TaskStatus.CANCELED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -4,9 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
@@ -14,11 +12,17 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
|||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
||||||
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.util.PointUtils;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -26,14 +30,13 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description: 压制送空载具任务
|
* @Description: 压制送空盅任务
|
||||||
* @Date: 2023/5/25
|
* @Date: 2023/5/25
|
||||||
*/
|
*/
|
||||||
@Component
|
@Component
|
||||||
@TaskType("YZSKTask")
|
@TaskType("YZSKTask")
|
||||||
public class YZSKTask extends AbstractTask {
|
public class YZSKTask extends AbstractTask {
|
||||||
private static String TASK_CONFIG_CODE = "YZSKTask";
|
private static String TASK_CONFIG_CODE = "YZSKTask";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -41,64 +44,72 @@ public class YZSKTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
|
||||||
private IPdmBdWorkorderService workorderService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
// 获取任务
|
// 获取任务
|
||||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||||
// 配置信息
|
// 配置信息
|
||||||
SchBaseTaskconfig taskConfig = taskConfigService.getById(TASK_CONFIG_CODE);
|
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||||
|
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||||
for (SchBaseTask task : tasks) {
|
for (SchBaseTask task : tasks) {
|
||||||
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
|
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||||
|
List<String> nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(","))
|
||||||
|
.collect(Collectors.toList());
|
||||||
// 找终点
|
// 找终点
|
||||||
String extGroupData = task.getExt_group_data();
|
String requestParam = task.getRequest_param();
|
||||||
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
|
JSONObject jsonObject = JSONObject.parseObject(requestParam);
|
||||||
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
|
String vehicleType = jsonObject.getString("vehicle_type");
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("送空盅任务未找到混料机空位!");
|
||||||
taskService.update(task);
|
taskService.updateById(task);
|
||||||
// 消息通知
|
// 消息通知
|
||||||
|
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(),
|
||||||
|
NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code2(point.getPoint_code());
|
task.setPoint_code2(point.getPoint_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.update(task);
|
if (task.getVehicle_type() == null) {
|
||||||
|
task.setVehicle_type(vehicleType != null ? vehicleType : GeneralDefinition.MATERIAL_CUP);
|
||||||
|
}
|
||||||
|
taskService.updateById(task);
|
||||||
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
pointService.update(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
//this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 寻找终点
|
* 在混料区域找一个空位放着
|
||||||
*
|
*
|
||||||
* @param nextRegionStr
|
* @param nextRegionStr
|
||||||
* @param extGroupData
|
* @param requestParam
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject extGroupData) {
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject requestParam) {
|
||||||
String workorderCode = extGroupData.getString("workorder_code");
|
String vehicleType = ObjectUtil.isNotEmpty(requestParam.getString("vehicle_type"))
|
||||||
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
? requestParam.getString("vehicle_type")
|
||||||
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
|
: GeneralDefinition.MATERIAL_CUP;
|
||||||
.eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
|
||||||
: null;
|
|
||||||
String vehicleType = ObjectUtil.isNotEmpty(workOrder) && ObjectUtil.isNotEmpty(workOrder.getVehicle_type())
|
|
||||||
? workOrder.getVehicle_type()
|
|
||||||
: null;
|
|
||||||
// 载具已经设置可为空,当不需要校验工单时候也不会出现空指针
|
// 载具已经设置可为空,当不需要校验工单时候也不会出现空指针
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
|
||||||
lam.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
lam.in(SchBasePoint::getRegion_code, nextRegionStr)
|
||||||
.like(vehicleType != null, SchBasePoint::getCan_vehicle_type, vehicleType)
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
|
||||||
|
.like(SchBasePoint::getCan_vehicle_type, vehicleType)
|
||||||
|
.eq(SchBasePoint::getPoint_type, GeneralDefinition.DOCKING_POINT) // 对接位
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
.or()
|
.or()
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
.orderByAsc(SchBasePoint::getIn_order_seq)
|
.orderByAsc(SchBasePoint::getIn_order_seq)
|
||||||
.orderByAsc(SchBasePoint::getPoint_code);
|
.orderByAsc(SchBasePoint::getPoint_code);
|
||||||
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||||
@@ -106,58 +117,87 @@ public class YZSKTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
protected void updateStatus(String task_code, TaskStatus status) {
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
// 校验任务
|
// 校验任务
|
||||||
SchBaseTask taskObj = taskService.getById(task_code);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
throw new BadRequestException("该任务已完成!");
|
throw new BadRequestException("该任务已完成!");
|
||||||
}
|
}
|
||||||
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
throw new BadRequestException("该任务已取消!");
|
throw new BadRequestException("该任务已取消!");
|
||||||
}
|
}
|
||||||
// 获取参数
|
|
||||||
String endPoint = taskObj.getPoint_code2(); // 获取终点
|
|
||||||
String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type()) ? taskObj.getVehicle_type() : "";
|
|
||||||
// 获取外部参数
|
|
||||||
JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
|
|
||||||
? JSONObject.parseObject(taskObj.getExt_group_data())
|
|
||||||
: null;
|
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
|
||||||
// 根据传来的类型去对任务进行操作
|
// 根据传来的类型去对任务进行操作
|
||||||
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
taskObj.setRemark("执行中");
|
taskObj.setRemark("执行中");
|
||||||
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
// 设置载具类型、点位状态、释放点位
|
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
if (ObjectUtil.isNotEmpty(endPoint)) {
|
|
||||||
endPointObj.setIng_task_code("");
|
|
||||||
endPointObj.setVehicle_type(vehicleType);
|
|
||||||
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
|
|
||||||
pointService.update(endPointObj);
|
|
||||||
}
|
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
|
||||||
taskObj.setRemark("任务完成");
|
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
||||||
// 释放点位
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
if (ObjectUtil.isNotEmpty(endPoint)) {
|
|
||||||
endPointObj.setIng_task_code("");
|
|
||||||
pointService.update(endPointObj);
|
|
||||||
}
|
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
|
||||||
taskObj.setRemark("任务取消");
|
|
||||||
}
|
}
|
||||||
taskService.update(taskObj);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void forceFinish(String task_code) {
|
public void forceFinish(String task_code) {
|
||||||
this.updateStatus(task_code, TaskStatus.FINISHED);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_code) {
|
public void cancel(String task_code) {
|
||||||
this.updateStatus(task_code, TaskStatus.CANCELED);
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
// 获取参数
|
||||||
|
String endPoint = taskObj.getPoint_code2(); // 获取终点
|
||||||
|
String vehicleType = ObjectUtil.isNotEmpty(taskObj.getVehicle_type())
|
||||||
|
? taskObj.getVehicle_type()
|
||||||
|
: GeneralDefinition.MATERIAL_CUP;
|
||||||
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
|
// 设置载具类型、点位状态、释放点位
|
||||||
|
if (ObjectUtil.isNotEmpty(endPoint)) {
|
||||||
|
endPointObj.setIng_task_code("");
|
||||||
|
endPointObj.setVehicle_type(vehicleType);
|
||||||
|
endPointObj.setVehicle_qty(1);
|
||||||
|
endPointObj.setVehicle_code(taskObj.getVehicle_code());
|
||||||
|
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
|
||||||
|
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
|
||||||
|
pointService.updateById(endPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType); // 区分完成者
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
// 获取参数
|
||||||
|
String endPoint = taskObj.getPoint_code2(); // 获取终点
|
||||||
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
|
// 释放点位
|
||||||
|
if (ObjectUtil.isNotEmpty(endPoint)) {
|
||||||
|
endPointObj.setIng_task_code("");
|
||||||
|
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
|
||||||
|
pointService.updateById(endPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
233
nladmin-ui/src/views/wms/ext/record/index.vue
Normal file
233
nladmin-ui/src/views/wms/ext/record/index.vue
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!--工具栏-->
|
||||||
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="90px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="模糊查询">
|
||||||
|
<el-input
|
||||||
|
v-model="query.blurry"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="对接名称/内容"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="请求方向">
|
||||||
|
<el-select v-model="query.interact_direction" placeholder="请求方向" clearable>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.interact_direction"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<rrOperation />
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
<crudOperation :permission="permission" />
|
||||||
|
<!--表单组件-->
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
:before-close="crud.cancelCU"
|
||||||
|
:visible.sync="crud.status.cu > 0"
|
||||||
|
:title="crud.status.title"
|
||||||
|
width="550px"
|
||||||
|
>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||||
|
<el-form-item label="对接名称">
|
||||||
|
<el-input v-model="form.interact_name" style="width: 370px;" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="响应编码">
|
||||||
|
<el-input v-model="form.code" style="width: 370px;" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="响应信息">
|
||||||
|
<el-input v-model="form.message" style="width: 370px;" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="请求报文">
|
||||||
|
<el-input v-model="formattedRequestParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="响应结果">
|
||||||
|
<el-input v-model="formattedResponseParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="记录时间">
|
||||||
|
<el-input v-model="form.record_time" style="width: 370px;" disabled/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="请求方向">
|
||||||
|
<!-- <el-input v-model="form.direction" style="width: 370px;" disabled/>-->
|
||||||
|
<el-select
|
||||||
|
disabled
|
||||||
|
v-model="form.direction"
|
||||||
|
size="mini"
|
||||||
|
placeholder="点位状态"
|
||||||
|
class="filter-item"
|
||||||
|
style="width: 370px;"
|
||||||
|
clearable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.interact_direction"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="text" @click="crud.cancelCU">取消</el-button>
|
||||||
|
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
size="mini"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
>
|
||||||
|
<el-table-column type="selection" width="55" />
|
||||||
|
<el-table-column
|
||||||
|
prop="interact_name"
|
||||||
|
label="对接名称"
|
||||||
|
:min-width="flexWidth('interact_name',crud.data,'对接名称')"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="code" label="响应编码" :min-width="flexWidth('code',crud.data,'响应编码')" />
|
||||||
|
<el-table-column prop="message" label="响应信息" :min-width="flexWidth('message',crud.data,'响应信息')" />
|
||||||
|
<el-table-column
|
||||||
|
prop="request_param"
|
||||||
|
label="请求报文"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:min-width="200"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="response_param"
|
||||||
|
label="响应结果"
|
||||||
|
show-overflow-tooltip
|
||||||
|
:min-width="200"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="record_time"
|
||||||
|
label="记录时间"
|
||||||
|
:min-width="flexWidth('record_time',crud.data,'记录时间')"
|
||||||
|
/>
|
||||||
|
<el-table-column prop="direction" label="方向" :min-width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ dict.label.interact_direction[scope.row.direction] }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="is_success" label="请求状态" :min-width="flexWidth('is_success',crud.data,'是否成功')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ scope.row.is_success ? '成功' : '失败'}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<udOperation
|
||||||
|
:data="scope.row"
|
||||||
|
:permission="permission"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crudSysInteractRecord from './sysInteractRecord'
|
||||||
|
import CRUD, { crud, form, header, presenter } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
import udOperation from '@crud/UD.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
|
||||||
|
const defaultForm = {
|
||||||
|
interact_id: null,
|
||||||
|
interact_name: null,
|
||||||
|
code: null,
|
||||||
|
message: null,
|
||||||
|
request_param: null,
|
||||||
|
response_param: null,
|
||||||
|
record_time: null,
|
||||||
|
direction: null,
|
||||||
|
is_success: null
|
||||||
|
}
|
||||||
|
export default {
|
||||||
|
name: 'SysInteractRecord',
|
||||||
|
dicts: ['interact_direction'],
|
||||||
|
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||||
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '外部系统接口记录',
|
||||||
|
url: 'api/sysInteractRecord',
|
||||||
|
idField: 'interact_id',
|
||||||
|
sort: 'interact_id,desc',
|
||||||
|
crudMethod: { ...crudSysInteractRecord },
|
||||||
|
optShow: {
|
||||||
|
add: false,
|
||||||
|
edit: false,
|
||||||
|
del: true,
|
||||||
|
download: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
permission: {},
|
||||||
|
rules: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
formattedRequestParam: {
|
||||||
|
get() {
|
||||||
|
try {
|
||||||
|
const jsonObject = JSON.parse(this.form.request_param) // 解析 JSON 字符串为 JavaScript 对象
|
||||||
|
return JSON.stringify(jsonObject, null, 2) // 使用 null 和 2 来进行格式化
|
||||||
|
} catch (error) {
|
||||||
|
// 错误处理,如果 JSON 解析失败则返回原始字符串
|
||||||
|
return this.form.request_param
|
||||||
|
}
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.form.request_param = value // 可以编辑响应结果并保存到数据属性中
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formattedResponseParam: {
|
||||||
|
get() {
|
||||||
|
try {
|
||||||
|
const jsonObject = JSON.parse(this.form.response_param) // 解析 JSON 字符串为 JavaScript 对象
|
||||||
|
return JSON.stringify(jsonObject, null, 2) // 使用 null 和 2 来进行格式化
|
||||||
|
} catch (error) {
|
||||||
|
// 错误处理,如果 JSON 解析失败则返回原始字符串
|
||||||
|
return this.form.response_param
|
||||||
|
}
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.form.response_param = value // 可以编辑响应结果并保存到数据属性中
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
27
nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js
Normal file
27
nladmin-ui/src/views/wms/ext/record/sysInteractRecord.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export function add(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/sysInteractRecord',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function del(ids) {
|
||||||
|
return request({
|
||||||
|
url: 'api/sysInteractRecord/',
|
||||||
|
method: 'delete',
|
||||||
|
data: ids
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function edit(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/sysInteractRecord',
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del }
|
||||||
Reference in New Issue
Block a user