fix:界面优化,代码规约

This commit is contained in:
2023-12-05 18:49:53 +08:00
parent 57a0b71916
commit 059a47f595
16 changed files with 209 additions and 391 deletions

View File

@@ -71,6 +71,7 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
return "NDC在线连接";
}
@Override
public void autoRun() throws IOException {
System.out.println("NDCAgv链接开始");
ISysParamService ISysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);

View File

@@ -1,225 +1,33 @@
package org.nl.acs.device_driver.basedriver.led_screen;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.agv.server.NDCAgvService;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.RouteableDeviceDriver;
import org.nl.acs.device_driver.driver.AbstractDeviceDriver;
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
import org.nl.acs.ext.wms.service.AcsToWmsService;
import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl;
import org.nl.acs.instruction.domain.Instruction;
import org.nl.acs.instruction.service.InstructionService;
import org.nl.acs.log.service.DeviceExecuteLogService;
import org.nl.acs.monitor.DeviceStageMonitor;
import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.route.service.RouteLineService;
import org.nl.acs.task.service.TaskService;
import org.nl.config.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Date;
/**
* LED点阵屏
* @author 涂强
*/
@Slf4j
@Data
@RequiredArgsConstructor
public class LedScreenDeviceDriver extends AbstractDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor {
@Autowired
DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class);
@Autowired
InstructionService instructionService = SpringContextHolder.getBean("instructionServiceImpl");
@Autowired
DeviceService deviceservice = SpringContextHolder.getBean("deviceServiceImpl");
@Autowired
RouteLineService routelineserver = SpringContextHolder.getBean("routeLineServiceImpl");
@Autowired
TaskService taskserver = SpringContextHolder.getBean("taskServiceImpl");
@Autowired
RouteLineService routeLineService = SpringContextHolder.getBean(RouteLineService.class);
@Autowired
AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class);
@Autowired
DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class);
@Autowired
NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvService.class);
Integer hasGoods = 0;
int error = 0;
Boolean iserror = false;
Boolean islock = false;
int branchProtocol = 0;
int last_branchProtocol = 0;
//是否需要输入物料
String input_material = "0";
//备注
String remark = "";
//数量
String qty = "";
//批次
String batch = "";
//物料
String material = "";
//目标点位
String purpose = "";
//当前指令
Instruction inst = null;
//上次指令
Instruction last_inst = null;
boolean requireSucess = false;
//触摸屏手动触发任务
private Boolean is_has_task = false;
//申请搬运任务
private Boolean apply_handling = false;
//申请物料
private Boolean apply_material = false;
// 1取货完成 2放货完成 3进入区域 4离开区域
private int flag;
//人工确认信号 默认0 agv到达后请求置1 等人工确认后变为2 反馈agv后继续为0
private int manua_confirm = 0;
String device_code = null;
String container;
String container_type_desc;
String last_container_type_desc;
String last_container;
private Date instruction_require_time = new Date();
private Date instruction_finished_time = new Date();
private int instruction_require_time_out;
String message;
// 1 上位系统允许进入 2 上位系统允许离开
int status = 0;
int agvphase = 0;
int index = 0;
int mode = 2;
int move;
@Override
public void execute() {
hasGoods = this.getDevice().getHas_goods();
batch = this.getDevice().getBatch();
device_code = this.getDeviceCode();
if (agvphase == 0x03) {
if (ObjectUtil.isNotEmpty(inst)) {
inst.setExecute_status("1");
instructionService.update(inst);
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
agvphase = 0;
index = 0;
inst = null;
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
} else {
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
}
}
if (agvphase == 0x05) {
if (ObjectUtil.isNotEmpty(inst)) {
inst.setExecute_status("2");
instructionService.update(inst);
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
// OneNDCSocketConnectionAutoRun.write(data);
agvphase = 0;
index = 0;
inst = null;
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
} else {
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
}
}
if (agvphase == 0x07) {
if (ObjectUtil.isNotEmpty(inst)) {
inst.setExecute_status("5");
instructionService.update(inst);
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
// OneNDCSocketConnectionAutoRun.write(data);
agvphase = 0;
index = 0;
inst = null;
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
} else {
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
}
}
if (agvphase == 0x09) {
if (ObjectUtil.isNotEmpty(inst)) {
inst.setExecute_status("6");
instructionService.update(inst);
byte[] data = agvService.sendAgvOneModeInst(agvphase, index, 0);
// OneNDCSocketConnectionAutoRun.write(data);
agvphase = 0;
index = 0;
inst = null;
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "反馈成功");
} else {
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + agvphase + "等待反馈");
}
}
}
@Override
public JSONObject getDeviceStatusName() {
JSONObject jo = new JSONObject();
String mode = "";
String action = "";
String move = "";
if (this.getMode() == 0) {
mode = "未联机";
} else if (this.getMode() == 1) {
mode = "单机";
} else if (this.getMode() == 2) {
mode = "联机";
} else if (this.getMode() == 3) {
mode = "运行中";
}
if (this.getMove() == 0) {
move = "无货";
jo.put("hasGoods", false);
} else if (this.getMove() == 1) {
move = "有货";
jo.put("hasGoods", true);
} else if (this.getMove() == 2) {
move = "有托盘有货";
jo.put("hasGoods", true);
}
jo.put("device_name", this.getDevice().getDevice_name());
jo.put("mode", mode);
jo.put("move", move);
jo.put("action", action);
jo.put("isOnline", true);
jo.put("error", this.getError());
jo.put("isError", this.getIserror());
return jo;
public JSONObject getDeviceStatusName() throws Exception {
return null;
}
@Override
public void setDeviceStatus(JSONObject data) {

View File

@@ -44,7 +44,7 @@ public class SiemensConveyorDefination implements OpcDeviceDriverDefination {
@Override
public List<DeviceType> getFitDeviceTypes() {
List<DeviceType> types = new LinkedList();
types.add(DeviceType.station);
types.add(DeviceType.conveyor);
return types;
}

View File

@@ -1313,8 +1313,8 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
instdto.setAgv_inst_type("1");
instructionservice.create2(instdto);
// acsTask.setTask_status("1");
// this.update(acsTask);
acsTask.setTask_status("1");
this.update(acsTask);
return instdto;
}

View File

@@ -1,56 +1,32 @@
package org.nl.acs.taskscreen.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.auto.initial.ApplicationAutoInitial;
import org.nl.acs.common.base.PageInfo;
import org.nl.acs.common.base.impl.CommonServiceImpl;
import org.nl.acs.device.domain.Device;
import org.nl.acs.device.domain.DeviceExtra;
import org.nl.acs.device.service.DeviceService;
import org.nl.acs.device.service.dto.DeviceDto;
import org.nl.acs.device.service.dto.DeviceExtraDto;
import org.nl.acs.device.service.dto.DeviceQueryParam;
import org.nl.acs.device.service.mapper.DeviceExtraMapper;
import org.nl.acs.device.service.mapper.DeviceMapper;
import org.nl.acs.device_driver.DeviceDriver;
import org.nl.acs.device_driver.basedriver.belt_conveyor.BeltConveyorDeviceDriver;
import org.nl.acs.device_driver.basedriver.led_screen.LedScreenDeviceDriver;
import org.nl.acs.device_driver.basedriver.siemens_conveyor.SiemensConveyorDeviceDriver;
import org.nl.acs.instruction.domain.Instruction;
import org.nl.acs.opc.DeviceAppService;
import org.nl.acs.opc.DeviceAppServiceImpl;
import org.nl.acs.storage_cell.service.dto.StorageCellDto;
import org.nl.acs.taskscreen.mapper.TaskScreenMapper;
import org.nl.acs.taskscreen.service.TaskScreenService;
import org.nl.acs.utils.ConvertUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author tuqiang
@@ -91,24 +67,24 @@ public class TaskScreenServiceImpl extends CommonServiceImpl<TaskScreenMapper, D
}
@Override
public JSONObject getLedMessage(String device_code) {
if (!ObjectUtil.isNotEmpty(device_code)) {
return null;
public JSONObject getLedMessage(String deviceCode) {
JSONObject json = new JSONObject();
if (!ObjectUtil.isNotEmpty(deviceCode)) {
return json;
}
//获取关联设备驱动信息
DeviceDto deviceDto = deviceService.findByCode(device_code);
String device_id = deviceDto.getDevice_id();
DeviceExtra deviceExtra = deviceExtraMapper.findByDeviceId(device_id, "link_device_code");
String extra_value = deviceExtra.getExtra_value();
List<String> extraDeviceCodes = getExtraDeviceCodes(extra_value);
DeviceDto deviceDto = deviceService.findByCode(deviceCode);
String deviceId = deviceDto.getDevice_id();
DeviceExtra deviceExtra = deviceExtraMapper.findByDeviceId(deviceId, "link_device_code");
String extraValue = deviceExtra.getExtra_value();
List<String> extraDeviceCodes = getExtraDeviceCodes(extraValue);
if (CollUtil.isEmpty(extraDeviceCodes) || extraDeviceCodes.size() < 0) {
throw new BadRequestException("没有查询到数据");
}
String deviceCode = extraDeviceCodes.get(0);
DeviceDto link_device = deviceService.findByCode(deviceCode);
String device_code1 = link_device.getDevice_code();
Device device = deviceAppservice.findDeviceByCode(device_code1);
JSONObject json = new JSONObject();
String deviceCode1 = extraDeviceCodes.get(0);
DeviceDto linkDevice = deviceService.findByCode(deviceCode1);
String linkDeviceCode = linkDevice.getDevice_code();
Device device = deviceAppservice.findDeviceByCode(linkDeviceCode);
if (device.getDeviceDriver() instanceof BeltConveyorDeviceDriver) {
BeltConveyorDeviceDriver beltConveyorDeviceDriver;
beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) device.getDeviceDriver();

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View File

@@ -1,22 +1,22 @@
export default {
'Inst': {
'table': {
'instruction_code': 'Nomor_instruksi',
'instruction_type': 'Jenis_instruksi',
'task_code': 'Nomor_tugas',
'vehicle_code': 'Nomor_kendaraan',
'instruction_status': 'Status_perintah',
'send_status': 'Status_pengiriman',
'start_point_code': 'Titik_penjemputan',
'next_point_code': 'Titik_pengantaran',
'put_point_code': 'Titik_pembuangan',
'execute_device_code': 'Perangkat_eksekusi_saat_ini',
'carno': 'Nomor_kendaraan',
'instruction_code': 'Nomor Instruksi',
'instruction_type': 'Jenis Instruksi',
'task_code': 'Nomor Tugas',
'vehicle_code': 'Nomor Kendaraan',
'instruction_status': 'Status Perintah',
'send_status': 'Status Pengiriman',
'start_point_code': 'Titik Penjemputan',
'next_point_code': 'Titik Pengantaran',
'put_point_code': 'Titik Pembuangan',
'execute_device_code': 'Perangkat eksekusi',
'carno': 'Nomor kendaraan',
'remark': 'deskripsi',
'create_by': 'Dibuat_oleh',
'create_time': 'Waktu_pembuatan',
'update_by': 'Diubah_oleh',
'update_time': 'Ubah_waktu',
'create_by': 'Dibuat oleh',
'create_time': 'Waktu pembuatan',
'update_by': 'Diubah oleh',
'update_time': 'Ubah waktu',
'input_taskCode_or_instCode': 'Masukkan nomor tugas atau nomor instruksi',
'input_vehicleCode': 'Masukkan nomor kendaraan',
'material': 'Jenis barang',

View File

@@ -46,7 +46,7 @@
</span>
</el-dropdown-menu>
</el-dropdown>
<el-dropdown class="right-menu-item" style="font-size: 14px" trigger="click" @command="langChange">
<el-dropdown class="right-menu-item" trigger="click" @command="langChange">
<span class="el-dropdown-link">
{{ language }} <i class="el-icon-caret-bottom" />
</span>

View File

@@ -14,7 +14,7 @@
</template>
<script>
import Logo from '@/assets/images/logo.png'
import Logo from '@/assets/images/newloge.png'
import variables from '@/assets/styles/variables.scss'
export default {
name: 'SidebarLogo',

View File

@@ -126,20 +126,20 @@
>
<el-table-column type="selection" width="55" />
<el-table-column v-if="false" prop="device_id" :label="$t('device.device_table_title.device_identification')" />
<el-table-column sortable prop="device_code" :label="$t('device.device_table_title.device_encoding')" />
<el-table-column sortable prop="device_code" :label="$t('device.device_table_title.device_encoding')" :min-width="flexWidth('device_code',crud.data,$t('device.device_table_title.device_encoding'))"/>
<el-table-column sortable :label="$t('device.device_table_title.device_name')" :prop="$langPre.computedProp('device_name')" :min-width="flexWidth($langPre.computedProp('device_name'),crud.data,$t('device.device_table_title.device_name'))" />
<el-table-column :label="$t('device.device_table_title.device_type')">
<el-table-column prop="device_type_name" :label="$t('device.device_table_title.device_type')" :min-width="flexWidth('device_type_name',crud.data,$t('device.device_table_title.device_type'))">
<template slot-scope="scope">
<div>{{ scope.row.device_type_name }}</div>
</template>
</el-table-column>
<el-table-column :label="$t('device.device_table_title.region')">
<el-table-column prop="region_name" :label="$t('device.device_table_title.region')" :min-width="flexWidth('region_name',crud.data,$t('device.device_table_title.region'))">
<template slot-scope="scope">
<div>{{ scope.row.region_name }}</div>
</template>
</el-table-column>
<el-table-column sortable prop="seq_num" :label="$t('device.device_table_title.sequence_number')" />
<el-table-column prop="is_config" :label="$t('device.device_table_title.configured')" width="75px">
<el-table-column sortable prop="seq_num" :label="$t('device.device_table_title.sequence_number')" :min-width="flexWidth('seq_num',crud.data,$t('device.device_table_title.sequence_number'))"/>
<el-table-column prop="is_config" :label="$t('device.device_table_title.configured')" :min-width="flexWidth('is_config',crud.data,$t('device.device_table_title.configured'))">
<template slot-scope="scope">
<span v-if="scope.row.is_config=='true' ">是</span>
<span v-else>否</span>
@@ -147,7 +147,7 @@
</el-table-column>
<!-- <el-table-column prop="manufacturer" label="生产厂家" />-->
<!-- <el-table-column prop="manufacturer_phone" label="厂家电话" />-->
<el-table-column prop="remark" :label="$t('device.device_table_title.descriptive_information')" />
<el-table-column prop="remark" :label="$t('device.device_table_title.descriptive_information')" :min-width="flexWidth('remark',crud.data,$t('device.device_table_title.descriptive_information'))"/>
<el-table-column v-permission="['admin','device:edit','device:del']" :label="$t('common.Operate')" width="200px" align="center">
<template slot-scope="scope">
<udOperation

View File

@@ -98,17 +98,17 @@
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="opc_code" :label="$t('opc.table_title.opc_code')" width="100" />
<el-table-column prop="opc_name" :label="$t('opc.table_title.opc_name')" />
<el-table-column prop="opc_host" :label="$t('opc.table_title.opc_address')" min-width="130" />
<el-table-column prop="type" :label="$t('opc.table_title.type')" />
<el-table-column prop="user" :label="$t('common.username')" min-width="100" />
<el-table-column prop="password" :label="$t('common.password')" />
<el-table-column prop="prog_id" :label="$t('opc.table_title.program_id')" min-width="150" />
<el-table-column prop="cls_id" :label="$t('opc.table_title.registry_id')" min-width="150" />
<el-table-column prop="domain" label="domain" />
<el-table-column prop="remark" :label="$t('opc.table_title.remark')" min-width="100" />
<el-table-column prop="create_time" :label="$t('common.create_time')" />
<el-table-column prop="opc_code" :label="$t('opc.table_title.opc_code')" width="130px"/>
<el-table-column prop="opc_name" :label="$t('opc.table_title.opc_name')" :min-width="flexWidth('opc_name',crud.data,$t('opc.table_title.opc_name'))"/>
<el-table-column prop="opc_host" :label="$t('opc.table_title.opc_address')" :min-width="flexWidth('opc_host',crud.data,$t('opc.table_title.opc_address'))" />
<el-table-column prop="type" :label="$t('opc.table_title.type')" :min-width="flexWidth('type',crud.data,$t('opc.table_title.type'))"/>
<el-table-column prop="user" :label="$t('common.username')" :min-width="flexWidth('user',crud.data,$t('opc.table_title.username'))"/>
<el-table-column prop="password" :label="$t('common.password')" :min-width="flexWidth('password',crud.data,$t('opc.table_title.password'))"/>
<el-table-column prop="prog_id" :label="$t('opc.table_title.program_id')" :min-width="flexWidth('prog_id',crud.data,$t('opc.table_title.program_id'))" />
<el-table-column prop="cls_id" :label="$t('opc.table_title.registry_id')" :min-width="flexWidth('cls_id',crud.data,$t('opc.table_title.registry_id'))" />
<el-table-column prop="domain" label="domain" :min-width="flexWidth('domain',crud.data,$t('opc.table_title.domain'))"/>
<el-table-column prop="remark" :label="$t('opc.table_title.remark')" :min-width="flexWidth('remark',crud.data,$t('opc.table_title.remark'))"/>
<el-table-column prop="create_time" :label="$t('common.create_time')" :min-width="flexWidth('create_time',crud.data,$t('opc.table_title.create_time'))"/>
<el-table-column :label="$t('common.Operate')" width="200px" align="center" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleClick(scope.row,'1')">{{ $t('common.Update') }}</el-button>

View File

@@ -120,69 +120,66 @@
>
<el-table-column type="selection" width="55" />
<el-table-column v-if="false" prop="instruction_id" label="指令标识" />
<el-table-column prop="instruction_code" :label="$t('Inst.table.instruction_code')" />
<el-table-column prop="instruction_type" :label="$t('Inst.table.instruction_type')">
<el-table-column prop="instruction_code" :label="$t('Inst.table.instruction_code')" :min-width="flexWidth('instruction_code',crud.data,$t('Inst.table.instruction_code'))" />
<el-table-column prop="instruction_type" :label="$t('Inst.table.instruction_type')" :min-width="flexWidth('instruction_type',crud.data,$t('Inst.table.instruction_type'))">
<template slot-scope="scope">
{{ dict.label.task_type[scope.row.instruction_type] }}
</template>
</el-table-column>
<!-- <el-table-column prop="link_num" label="关联编号" />-->
<el-table-column prop="task_code" :label="$t('Inst.table.task_code')" />
<el-table-column prop="vehicle_code" :label="$t('Inst.table.vehicle_code')" />
<el-table-column prop="instruction_status" :label="$t('Inst.table.instruction_status')">
<template slot-scope="scope">
<span v-if="scope.row.instruction_status=='0' ">{{ $t('Inst.table.ready') }}</span>
<span v-if="scope.row.instruction_status=='1' ">{{ $t('Inst.table.Execution') }}</span>
<span v-if="scope.row.instruction_status=='2' ">{{ $t('Inst.table.Finish') }}</span>
</template>
</el-table-column>
<el-table-column prop="send_status" :label="$t('Inst.table.send_status')">
<template slot-scope="scope">
<span v-if="scope.row.send_status=='0' ">{{ $t('Inst.table.undelivered') }}</span>
<span v-if="scope.row.send_status=='1' ">{{ $t('Inst.table.succeed') }}</span>
<span v-if="scope.row.send_status=='2' ">{{ $t('Inst.table.fail') }}</span>
</template>
</el-table-column>
<el-table-column prop="start_point_code" :label="$t('Inst.table.start_point_code')" />
<el-table-column prop="next_point_code" :label="$t('Inst.table.next_point_code')" />
<!-- <el-table-column prop="start_point_code2" label="取货点2" />-->
<!-- <el-table-column prop="next_point_code2" label="放货点2" />-->
<el-table-column prop="put_point_code" :label="$t('Inst.table.put_point_code')" />
<el-table-column prop="execute_device_code" :label="$t('Inst.table.execute_device_code')" width="130" />
<el-table-column prop="carno" :label="$t('Inst.table.carno')" />
<!-- <el-table-column prop="compound_inst" label="复合指令">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.compound_inst==='0' ">否</span>-->
<!-- <span v-if="scope.row.compound_inst==='1' ">是</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column prop="compound_inst_data" width="200" label="复合路线" />-->
<!-- <el-table-column prop="matarial" label="物料" />-->
<!-- <el-table-column prop="quantity" label="数量" />-->
<el-table-column prop="remark" :label="$t('Inst.table.remark')" />
<el-table-column prop="create_by" :label="$t('Inst.table.create_by')" />
<el-table-column prop="create_time" :label="$t('Inst.table.create_time')" width="135" />
<el-table-column prop="update_by" :label="$t('Inst.table.update_by')" />
<el-table-column prop="update_time" :label="$t('Inst.table.update_time')" width="135" />
<el-table-column prop="put_point_code" :label="$t('Inst.table.put_point_code')" :min-width="flexWidth('put_point_code',crud.data,$t('Inst.table.put_point_code'))" />
<el-table-column prop="execute_device_code" :label="$t('Inst.table.execute_device_code')" :min-width="flexWidth('execute_device_code',crud.data,$t('Inst.table.execute_device_code'))"/>
<el-table-column prop="carno" :label="$t('Inst.table.carno')" :min-width="flexWidth('carno',crud.data,$t('Inst.table.carno'))" />
<el-table-column prop="remark" :label="$t('Inst.table.remark')" :min-width="flexWidth('remark',crud.data,$t('Inst.table.remark'))"/>
<el-table-column prop="create_by" :label="$t('Inst.table.create_by')" :min-width="flexWidth('create_by',crud.data,$t('Inst.table.create_by'))" />
<el-table-column prop="create_time" :label="$t('Inst.table.create_time')" :min-width="flexWidth('create_time',crud.data,$t('Inst.table.create_time'))"/>
<el-table-column prop="update_by" :label="$t('Inst.table.update_by')" :min-width="flexWidth('update_by',crud.data,$t('Inst.table.update_by'))"/>
<el-table-column prop="update_time" :label="$t('Inst.table.update_time')" :min-width="flexWidth('update_time',crud.data,$t('Inst.table.update_time'))" />
<el-table-column
v-permission="['admin','instruction:edit','instruction:del']"
fixed="left"
:label="$t('common.Operate')"
width="150px"
width="250px"
align="center"
>
<template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand">
<span class="el-dropdown-link">
<i class="el-icon-menu" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('Inst.table.Finish') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('common.Cancel') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">{{ $t('common.Forced_cancellation') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'d')">{{ $t('common.Initialize') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-dropdown trigger="click" @command="handleCommand">-->
<!-- <span class="el-dropdown-link">-->
<!-- <i class="el-icon-menu" />-->
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('Inst.table.Finish') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('common.Cancel') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">{{ $t('common.Forced_cancellation') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'d')">{{ $t('common.Initialize') }}</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<el-button
type="text"
icon="el-icon-finished"
@click="handleCommand(scope.$index, scope.row,'a')"
>
{{ $t('Inst.table.Finish') }}
</el-button>
<el-button
type="text"
icon="el-icon-circle-close"
@click="handleCommand(scope.$index, scope.row,'b')"
>
{{ $t('common.Cancel') }}
</el-button>
<el-button
type="text"
icon="el-icon-folder-add"
@click="handleCommand(scope.$index, scope.row,'c')"
>
{{ $t('common.Forced_cancellation') }}
</el-button>
<el-button
type="text"
icon="el-icon-folder-add"
@click="handleCommand(scope.$index, scope.row,'d')"
>
{{ $t('common.Initialize') }}
</el-button>
</template>
</el-table-column>
</el-table>
@@ -344,19 +341,19 @@ export default {
'command': command
}
},
handleCommand(command) {
switch (command.command) {
handleCommand(index, row, command) {
switch (command) {
case 'a':// 完成
this.finish(command.index, command.row)
this.finish(index, row)
break
case 'b':// 取消
this.cancel(command.index, command.row)
this.cancel(index, row)
break
case 'c':// 强制取消
this.forceCancel(command.index, command.row)
this.forceCancel(index, row)
break
case 'd':// 初始化
this.init(command.index, command.row)
this.init(index, row)
break
}
}

View File

@@ -162,7 +162,7 @@
>
<el-table-column type="selection" width="55" />
<el-table-column v-if="false" prop="line_uuid" label="路线标识" />
<el-table-column prop="device_code" :label="$t('device.device_table_title.device_encoding')" />
<el-table-column prop="device_code" :label="$t('device.device_table_title.device_encoding')" :min-width="flexWidth('device_code',crud.data,$t('device.device_table_title.device_encoding'))" />
<el-table-column v-if="false" prop="device_code" :label="$t('device.device_table_title.device_name')" />
<el-table-column prop="type" :label="$t('route.table_title.type')">
<template slot-scope="scope">
@@ -175,7 +175,7 @@
<el-table-column v-if="false" prop="next_device_code" min-width="120" label="后置设备类型" />
<el-table-column prop="weights" :label="$t('route.table_title.weights')" />
<el-table-column :label="$t('common.is_on')" align="center" prop="is_active">
<el-table-column :label="$t('common.is_on')" align="center" prop="is_active" :min-width="flexWidth('is_active',crud.data,$t('common.is_on'))">
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_active"

View File

@@ -325,25 +325,25 @@
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="25" />
<el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" width="100" />
<el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" width="120">
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" :min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))" />
<el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" :min-width="flexWidth('task_type',crud.data,$t('task.txt_box.Task_type'))">
<template slot-scope="scope">
{{ dict.label.task_type[scope.row.task_type] }}
</template>
</el-table-column>
<!-- <el-table-column prop="link_num" label="关联编号" />-->
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" width="100" />
<el-table-column prop="task_status" :label="$t('task.txt_box.Task_status')" width="100">
<template slot-scope="scope" width="60">
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" :min-width="flexWidth('vehicle_code',crud.data,$t('task.txt_box.Vehicle_number'))" />
<el-table-column prop="task_status" :label="$t('task.txt_box.Task_status')" :min-width="flexWidth('task_status',crud.data,$t('task.txt_box.Task_status'))">
<template slot-scope="scope" width="78px">
<span v-if="scope.row.task_status==='0' ">{{ $t('task.select.Ready') }}</span>
<span v-if="scope.row.task_status==='1' ">{{ $t('task.select.In_progress') }}</span>
<span v-if="scope.row.task_status==='2' ">{{ $t('task.select.Completed') }}</span>
</template>
</el-table-column>
<el-table-column prop="priority" :label="$t('task.txt_box.Priority')" width="100" />
<el-table-column prop="start_point_code" :label="$t('task.select.Pickup_point')" width="100px" />
<el-table-column prop="priority" :label="$t('task.txt_box.Priority')" :min-width="flexWidth('priority',crud.data,$t('task.txt_box.Priority'))" />
<el-table-column prop="start_point_code" :label="$t('task.select.Pickup_point')" :min-width="flexWidth('start_point_code',crud.data,$t('task.select.Pickup_point'))" />
<!-- <el-table-column prop="put_point_code" label="倒料点" width="100" />-->
<el-table-column prop="next_point_code" :label="$t('task.select.Delivery_point')" width="120px" />
<el-table-column prop="next_point_code" :label="$t('task.select.Delivery_point')" :min-width="flexWidth('next_point_code',crud.data,$t('task.select.Delivery_point'))" />
<!-- <el-table-column prop="start_point_code2" label="取货点2" width="120px" />-->
<!-- <el-table-column prop="next_point_code2" label="放货点2" width="120px" />-->
<!-- <el-table-column prop="compound_task" label="复合任务">-->
@@ -355,21 +355,43 @@
<!-- <el-table-column prop="compound_task_data" width="200" label="复合路线" />-->
<!-- <el-table-column prop="matarial" label="物料" />-->
<!-- <el-table-column prop="quantity" label="数量" />-->
<el-table-column prop="remark" :label="$t('task.select.Remark')" />
<el-table-column prop="create_by" :label="$t('task.select.Creator')" />
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" width="135" />
<el-table-column v-permission="['admin','task:edit','task:del']" fixed="left" :label="$t('task.select.Operation')" width="80px" align="center">
<el-table-column prop="remark" :label="$t('task.select.Remark')" :min-width="flexWidth('remark',crud.data,$t('task.select.Remark'))" />
<el-table-column prop="create_by" :label="$t('task.select.Creator')" :min-width="flexWidth('create_by',crud.data,$t('task.select.Creator'))" />
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" :min-width="flexWidth('create_time',crud.data,$t('task.select.Create_time'))" />
<el-table-column v-permission="['admin','task:edit','task:del']" :label="$t('task.select.Operation')" width="200px" align="center">
<template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand">
<span class="el-dropdown-link">
<i class="el-icon-menu" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('task.select.Completed') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('task.select.Cancel') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">{{ $t('task.select.Create_command') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-dropdown trigger="click" @command="handleCommand">-->
<!-- <span class="el-dropdown-link">-->
<!-- <i class="el-icon-menu" />-->
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('task.select.Completed') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('task.select.Cancel') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'c')">{{ $t('task.select.Create_command') }}</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<!-- </template>-->
<el-button
type="text"
icon="el-icon-finished"
@click="handleCommand(scope.$index, scope.row,'a')"
>
{{ $t('task.select.Completed') }}
</el-button>
<el-button
type="text"
icon="el-icon-circle-close"
@click="handleCommand(scope.$index, scope.row,'b')"
>
{{ $t('task.select.Cancel') }}
</el-button>
<el-button
type="text"
icon="el-icon-folder-add"
@click="handleCommand(scope.$index, scope.row,'c')"
>
{{ $t('task.select.Create_command') }}
</el-button>
</template>
</el-table-column>
</el-table>
@@ -578,16 +600,16 @@ export default {
'command': command
}
},
handleCommand(command) {
switch (command.command) {
handleCommand(index, row, command) {
switch (command) {
case 'a':// 完成
this.finish(command.index, command.row)
this.finish(index, row)
break
case 'b':// 取消
this.cancel(command.index, command.row)
this.cancel(index, row)
break
case 'c':// 创建指令
this.createInst(command.index, command.row)
this.createInst(index, row)
break
}
},

View File

@@ -91,37 +91,51 @@
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column v-permission="['admin','taskFeedback:edit','taskFeedback:del']" fixed="left" :label="$t('task.select.Operation')" width="100px" align="center">
<el-table-column v-if="false" prop="taskback_id" label="任务反馈标识" />
<el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" :min-width="flexWidth('task_code',crud.data,$t('task.txt_box.Task_code'))" />
<el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" :min-width="flexWidth('task_type',crud.data,$t('task.txt_box.Task_type'))"/>
<el-table-column prop="task_status" :label="$t('task.txt_box.Task_status')" :min-width="flexWidth('task_status',crud.data,$t('task.txt_box.Task_status'))"/>
<el-table-column prop="start_point_code" :label="$t('task.select.Starting_point')" :min-width="flexWidth('start_point_code',crud.data,$t('task.txt_box.Starting_point'))"/>
<el-table-column prop="next_point_code" :label="$t('task.select.Target_point')" :min-width="flexWidth('next_point_code',crud.data,$t('task.txt_box.Target_point'))"/>
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" :min-width="flexWidth('vehicle_code',crud.data,$t('task.txt_box.Vehicle_number'))"/>
<el-table-column prop="is_finished" :label="$t('task.select.Is_it_completed')" :min-width="flexWidth('is_finished',crud.data,$t('task.select.Is_it_completed'))"/>
<el-table-column prop="error_code" :label="$t('task.select.error_code')" :min-width="flexWidth('error_code',crud.data,$t('task.select.error_code'))"/>
<el-table-column prop="start_time" :label="$t('task.select.start_time')" :min-width="flexWidth('start_time',crud.data,$t('task.select.start_time'))"/>
<el-table-column prop="finish_time" :label="$t('task.select.finish_time')" :min-width="flexWidth('finish_time',crud.data,$t('task.select.finish_time'))"/>
<el-table-column prop="create_type" :label="$t('task.select.create_type')" :min-width="flexWidth('create_type',crud.data,$t('task.select.create_type'))"/>
<el-table-column prop="finish_type" :label="$t('task.select.finish_type')" :min-width="flexWidth('finish_type',crud.data,$t('task.select.finish_type'))"/>
<el-table-column prop="retry_times" :label="$t('task.select.retry_times')" :min-width="flexWidth('retry_times',crud.data,$t('task.select.retry_times'))"/>
<el-table-column prop="remark" :label="$t('task.select.Remark')" :min-width="flexWidth('remark',crud.data,$t('task.select.remark'))"/>
<el-table-column prop="create_by" :label="$t('task.select.Creator')" :min-width="flexWidth('create_by',crud.data,$t('task.select.Creator'))"/>
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" :min-width="flexWidth('create_time',crud.data,$t('task.select.Create_time'))"/>
<el-table-column v-permission="['admin','taskFeedback:edit','taskFeedback:del']" :label="$t('task.select.Operation')" width="200px" align="center">
<template slot-scope="scope">
<el-dropdown trigger="click" @command="handleCommand">
<span class="el-dropdown-link">
<i class="el-icon-menu" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('task.select.Reset') }}</el-dropdown-item>
<el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('task.select.Void') }}</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<!-- <el-dropdown trigger="click" @command="handleCommand">-->
<!-- <span class="el-dropdown-link">-->
<!-- <i class="el-icon-menu" />-->
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'a')">{{ $t('task.select.Reset') }}</el-dropdown-item>-->
<!-- <el-dropdown-item :command="beforeHandleCommand(scope.$index, scope.row,'b')">{{ $t('task.select.Void') }}</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
<el-button
type="text"
icon="el-icon-finished"
@click="handleCommand(scope.$index, scope.row,'a')"
>
{{ $t('task.select.Reset') }}
</el-button>
<el-button
type="text"
icon="el-icon-circle-close"
@click="handleCommand(scope.$index, scope.row,'b')"
>
{{ $t('task.select.Void') }}
</el-button>
</template>
</el-table-column>
<el-table-column v-if="false" prop="taskback_id" label="任务反馈标识" />
<el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" :label="$t('task.txt_box.Task_code')" />
<el-table-column prop="task_type" :label="$t('task.txt_box.Task_type')" />
<el-table-column prop="task_status" :label="$t('task.txt_box.Task_status')" />
<el-table-column prop="start_point_code" :label="$t('task.select.Starting_point')" />
<el-table-column prop="next_point_code" :label="$t('task.select.Target_point')" />
<el-table-column prop="vehicle_code" :label="$t('task.txt_box.Vehicle_number')" />
<el-table-column prop="is_finished" :label="$t('task.select.Is_it_completed')" />
<el-table-column prop="error_code" :label="$t('task.select.error_code')" />
<el-table-column prop="start_time" :label="$t('task.select.start_time')" />
<el-table-column prop="finish_time" :label="$t('task.select.finish_time')" />
<el-table-column prop="create_type" :label="$t('task.select.create_type')" />
<el-table-column prop="finish_type" :label="$t('task.select.finish_type')" />
<el-table-column prop="retry_times" :label="$t('task.select.retry_times')" />
<el-table-column prop="remark" :label="$t('task.select.Remark')" />
<el-table-column prop="create_by" :label="$t('task.select.Creator')" />
<el-table-column prop="create_time" :label="$t('task.select.Create_time')" />
</el-table>
<!--分页组件-->
<pagination />
@@ -224,13 +238,13 @@ export default {
'command': command
}
},
handleCommand(command) {
switch (command.command) {
handleCommand(index, row, command) {
switch (command) {
case 'a':// 重置
this.retry(command.index, command.row)
this.retry(index, row)
break
case 'b':// 作废
this.invalid(command.index, command.row)
this.invalid(index, row)
break
}
}

View File

@@ -30,7 +30,7 @@
</el-form>
</template>
</el-table-column>
<el-table-column prop="username" :label="$t('monitor.table.username')" />
<el-table-column prop="username" :label="$t('monitor.table.username')" />
<el-table-column prop="request_ip" label="IP" />
<el-table-column show-overflow-tooltip prop="address" :label="$t('monitor.table.IP_source')" />
<el-table-column prop="description" :label="$t('monitor.table.description')" show-overflow-tooltip />
@@ -40,7 +40,7 @@
<span>{{ parseTime(scope.row.create_time) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('monitor.table.exception_details')" width="100px">
<el-table-column :label="$t('monitor.table.exception_details')" :min-width="flexWidth('',crud.data,$t('opc.table_title.exception_details'))">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="info(scope.row.log_id)">{{ $t('monitor.table.view_details') }}</el-button>
</template>