This commit is contained in:
2023-03-10 17:58:22 +08:00
parent 2be2b3f853
commit 4a46029a35
11 changed files with 129 additions and 52 deletions

View File

@@ -49,6 +49,14 @@ public class InstructionController {
return new ResponseEntity<>(instructionService.getAll(whereJson, page), HttpStatus.OK);
}
@Log("导出指令")
@ApiOperation("导出指令")
@GetMapping(value = "/getAll/download")
//@PreAuthorize("@el.check('instruction:list')")
public void getAllDownload(HttpServletResponse response, Map whereJson) throws IOException {
instructionService.download(instructionService.queryAll(whereJson), response);
}
@GetMapping("/unfinish")
@Log("查询所有未完成指令")
@ApiOperation("查询所有未完成指令")

View File

@@ -146,7 +146,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
map.put("flag", "2");
String code = (String) whereJson.get("code");
String vehicle_code = (String) whereJson.get("vehicle_code");
String material_type = (String) whereJson.get("material_type");
String instruction_type = (String) whereJson.get("instruction_type");
String status = (String) whereJson.get("status");
String point_code = (String) whereJson.get("point_code");
String create_time = (String) whereJson.get("createTime");
@@ -157,8 +157,8 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
if (!StrUtil.isEmpty(vehicle_code)) {
map.put("vehicle_code", vehicle_code);
}
if (!StrUtil.isEmpty(material_type)) {
map.put("material_type", material_type);
if (!StrUtil.isEmpty(instruction_type)) {
map.put("instruction_type", instruction_type);
}
if (!StrUtil.isEmpty(status)) {
map.put("status", status);
@@ -195,7 +195,10 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
ins.put("start_point_code2", jo.get("start_point_code2"));
ins.put("next_point_code", jo.get("next_point_code"));
ins.put("next_point_code2", jo.get("next_point_code2"));
ins.put("matarial", jo.get("matarial"));
ins.put("agv_system_type", jo.get("agv_system_type"));
ins.put("agv_inst_type", jo.get("agv_inst_type"));
ins.put("car_no", jo.get("car_no"));
ins.put("weight", jo.get("weight"));
ins.put("remark", jo.get("remark"));
ins.put("create_by", jo.get("create_by"));
ins.put("create_time", jo.get("create_time"));
@@ -653,15 +656,25 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
map.put("执行编码", instruction.getExecute_code());
map.put("执行信息", instruction.getExecute_message());
map.put("起始点位编码", instruction.getStart_point_code());
map.put("起始点位编码2", instruction.getStart_point_code2());
map.put("起始设备编码", instruction.getStart_device_code());
map.put("起始设备编码2", instruction.getStart_device_code2());
map.put("目标点位编码", instruction.getNext_point_code());
map.put("目标点位编码2", instruction.getNext_point_code2());
map.put("目标设备编码", instruction.getNext_device_code());
map.put("目标设备编码2", instruction.getNext_device_code2());
map.put("放货点位编码", instruction.getPut_point_code());
map.put("放货设备编码", instruction.getPut_device_code());
map.put("", instruction.getFrom_x());
map.put("", instruction.getFrom_y());
map.put("", instruction.getFrom_z());
map.put("", instruction.getTo_x());
map.put("", instruction.getTo_y());
map.put("", instruction.getTo_z());
map.put("agv车号", instruction.getCarno());
map.put("重量", instruction.getWeight());
map.put("agv系统类型", instruction.getAgv_system_type());
map.put("agv指令类型", instruction.getAgv_inst_type());
map.put("最后一条指令标识", instruction.getLast_instruction_id());
map.put("是否允许修改", instruction.getCan_modify());
map.put("备注", instruction.getRemark());

View File

@@ -117,8 +117,8 @@
OPTION 输入.vehicle_code <> ""
inst.vehicle_code LIKE CONCAT ( '%', 输入.vehicle_code, '%' )
ENDOPTION
OPTION 输入.material_type <> ""
inst.material = 输入.material_type
OPTION 输入.instruction_type <> ""
inst.instruction_type = 输入.instruction_type
ENDOPTION
OPTION 输入.point_code <> ""
(

View File

@@ -62,6 +62,14 @@ public class TaskController {
return new ResponseEntity<>(taskService.getAll(whereJson, page), HttpStatus.OK);
}
@Log("导出历史任务")
@ApiOperation("导出历史任务")
@GetMapping(value = "/getAll/download")
//@PreAuthorize("@el.check('task:list')")
public void getAllDownload(HttpServletResponse response, Map whereJson) throws IOException {
taskService.download(taskService.queryAll(whereJson), response);
}
@PostMapping
@Log("新增任务")
@ApiOperation("新增任务")

View File

@@ -217,7 +217,6 @@ public interface TaskService {
*/
void download(List<TaskDto> dtos, HttpServletResponse response) throws IOException;
/**
* 根据触摸屏点击保存创建任务
*

View File

@@ -217,7 +217,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
map.put("flag", "2");
String task_code = (String) whereJson.get("task_code");
String vehicle_code = (String) whereJson.get("vehicle_code");
String material_type = (String) whereJson.get("material_type");
String task_type = (String) whereJson.get("task_type");
String status = (String) whereJson.get("status");
String point_code = (String) whereJson.get("point_code");
String create_time = (String) whereJson.get("createTime");
@@ -228,8 +228,8 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
if (!StrUtil.isEmpty(vehicle_code)) {
map.put("vehicle_code", vehicle_code);
}
if (!StrUtil.isEmpty(material_type)) {
map.put("material_type", material_type);
if (!StrUtil.isEmpty(task_type)) {
map.put("task_type", task_type);
}
if (!StrUtil.isEmpty(status)) {
map.put("status", status);
@@ -1224,12 +1224,20 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
map.put("起始设备编码", acsTask.getStart_device_code());
map.put("目标点位编码", acsTask.getNext_point_code());
map.put("目标设备编码", acsTask.getNext_device_code());
map.put("", acsTask.getFrom_x());
map.put("", acsTask.getFrom_y());
map.put("", acsTask.getFrom_z());
map.put("", acsTask.getTo_x());
map.put("起始点位编码2", acsTask.getStart_point_code2());
map.put("起始设备编码2", acsTask.getStart_device_code2());
map.put("目标点位编码2", acsTask.getNext_point_code2());
map.put("目标设备编码2", acsTask.getNext_device_code2());
map.put("放货点位编码", acsTask.getPut_point_code());
map.put("放货设备编码", acsTask.getPut_device_code());
map.put("", acsTask.getTo_y());
map.put("", acsTask.getTo_z());
map.put("重量", acsTask.getWeight());
map.put("agv系统类型", acsTask.getAgv_system_type());
map.put("立库任务类型", acsTask.getStorage_task_type());
map.put("烘箱温度", acsTask.getTemperature());
map.put("烘箱时间", acsTask.getOven_time());
map.put("agv车号", acsTask.getCarno());
map.put("路由方案名称", acsTask.getRoute_plan_name());
map.put("路由方案编码", acsTask.getRoute_plan_code());
map.put("是否需要反馈上位系统", acsTask.getIs_needfeedback());

View File

@@ -17,10 +17,11 @@
输入.task_code TYPEAS s_string
输入.vehicle_code TYPEAS s_string
输入.material_type TYPEAS s_string
输入.status TYPEAS s_string
输入.point_code TYPEAS s_string
输入.task_type TYPEAS s_string
输入.status TYPEAS s_string
输入.point_code TYPEAS s_string
输入.is_over TYPEAS s_string
输入.create_time TYPEAS time
输入.create_time TYPEAS time
输入.end_time TYPEAS time
[临时表]
--这边列出来的临时表就会在运行期动态创建
@@ -97,8 +98,8 @@ IF 输入.flag = "2"
OPTION 输入.vehicle_code <> ""
task.vehicle_code LIKE CONCAT ( '%', 输入.vehicle_code, '%' )
ENDOPTION
OPTION 输入.material_type <> ""
task.material = 输入.material_type
OPTION 输入.task_type <> ""
task.task_type = 输入.task_type
ENDOPTION
OPTION 输入.point_code <> ""
(

View File

@@ -23,16 +23,16 @@
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.material_type"
v-model="query.instruction_type"
clearable
filterable
size="small"
placeholder="物料类型"
placeholder="指令类型"
class="filter-item"
style="width: 190px"
@change="crud.toQuery"
>
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
<el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
<el-select
v-model="query.status"
@@ -96,7 +96,7 @@
@selection-change="crud.selectionChangeHandler"
>
<el-table-column v-if="false" prop="instruction_id" label="指令标识" />
<el-table-column prop="instruction_code" label="指令编号" />
<el-table-column prop="instruction_code" label="指令编号" width="200" />
<el-table-column prop="task_code" label="任务号" />
<el-table-column prop="vehicle_code" label="载具号" />
<el-table-column prop="instruction_type" label="指令类型" width="120">
@@ -113,7 +113,18 @@
<el-table-column prop="next_point_code" label="终点" />
<el-table-column prop="start_point_code2" label="起点2" />
<el-table-column prop="next_point_code2" label="终点2" />
<el-table-column prop="matarial" label="物料" />
<el-table-column prop="car_no" label="车号" />
<el-table-column prop="agv_system_type" label="AGV系统类型">
<template slot-scope="scope">
{{ dict.label.agv_system_type[scope.row.agv_system_type] }}
</template>
</el-table-column>
<el-table-column prop="agv_inst_type" label="AGV指令类型">
<!-- <template slot-scope="scope">-->
<!-- {{ dict.label.agv_inst_type[scope.row.agv_inst_type] }}-->
<!-- </template>-->
</el-table-column>
<el-table-column prop="weight" label="重量" />
<el-table-column prop="quantity" label="数量" />
<el-table-column prop="remark" label="描述" />
<el-table-column prop="create_by" label="创建者" />
@@ -171,7 +182,7 @@ const defaultForm = {
update_time: null
}
export default {
dicts: ['task_status', 'task_type'],
dicts: ['task_status', 'task_type', 'instruction_type', 'agv_system_type'],
name: 'Instruction',
components: { pagination, crudOperation, Search },
mixins: [presenter(), header(), form(defaultForm), crud()],
@@ -184,6 +195,11 @@ export default {
query: { is_over: '1' },
crudMethod: { ...crudInstruction },
optShow: {
add: false,
edit: false,
del: false,
reset: false,
download: true
}
})
},

View File

@@ -34,16 +34,16 @@
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.material_type"
v-model="query.task_type"
clearable
filterable
size="small"
placeholder="物料类型"
placeholder="任务类型"
class="filter-item"
style="width: 190px"
@change="crud.toQuery"
>
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
<el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
<el-select
v-model="query.status"
@@ -230,7 +230,7 @@
@selection-change="crud.selectionChangeHandler"
>
<el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" label="任务号" />
<el-table-column prop="task_code" label="任务号" width="200" />
<el-table-column prop="vehicle_code" label="载具号" />
<el-table-column prop="task_type" label="任务类型" width="120">
<template slot-scope="scope">
@@ -247,7 +247,20 @@
<el-table-column prop="next_point_code" label="终点" />
<el-table-column prop="start_point_code2" label="起点2" />
<el-table-column prop="start_point_code2" label="终点2" />
<el-table-column prop="matarial" label="物料" />
<el-table-column prop="car_no" label="车号" />
<el-table-column prop="agv_system_type" label="AGV系统类型">
<template slot-scope="scope">
{{ dict.label.agv_system_type[scope.row.agv_system_type] }}
</template>
</el-table-column>
<el-table-column prop="storage_task_type" label="立库任务类型">
<template slot-scope="scope">
{{ dict.label.storage_task_type[scope.row.storage_task_type] }}
</template>
</el-table-column>
<el-table-column prop="weight" label="重量" />
<el-table-column prop="temperature" label="温度" />
<el-table-column prop="oven_time" label="烘箱时间" />
<el-table-column prop="quantity" label="数量" />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="create_by" label="创建者" />
@@ -292,7 +305,7 @@ const defaultForm = {
export default {
name: 'Task',
components: { pagination, crudOperation, Search },
dicts: ['task_status', 'task_type'],
dicts: ['task_status', 'task_type', 'agv_system_type', 'storage_task_type'],
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({
@@ -302,7 +315,13 @@ export default {
sort: 'task_id,desc',
query: { is_over: '1' },
crudMethod: { ...crudTask },
optShow: {}
optShow: {
add: false,
edit: false,
del: false,
reset: false,
download: true
}
})
},
data() {

View File

@@ -34,16 +34,16 @@
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.material_type"
v-model="query.task_type"
clearable
filterable
size="small"
placeholder="物料类型"
placeholder="任务类型"
class="filter-item"
style="width: 190px"
@change="crud.toQuery"
>
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
<el-option v-for="item in dict.task_type" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
<el-select
v-model="query.status"
@@ -87,7 +87,7 @@
@selection-change="crud.selectionChangeHandler"
>
<el-table-column v-if="false" prop="task_id" label="任务标识" />
<el-table-column prop="task_code" label="任务号(指令编号)" />
<el-table-column prop="task_code" label="任务号(指令编号)" width="200" />
<el-table-column prop="vehicle_code" label="载具号" />
<el-table-column prop="task_type" label="任务类型" width="120">
<template slot-scope="scope">
@@ -104,7 +104,24 @@
<el-table-column prop="next_point_code" label="终点" />
<el-table-column prop="start_point_code2" label="起点2" />
<el-table-column prop="next_point_code2" label="终点2" />
<el-table-column prop="matarial" label="物料" />
<el-table-column prop="car_no" label="车号" />
<el-table-column prop="agv_system_type" label="AGV系统类型">
<template slot-scope="scope">
{{ dict.label.agv_system_type[scope.row.agv_system_type] }}
</template>
</el-table-column>
<el-table-column prop="agv_inst_type" label="AGV指令类型">
<!-- <template slot-scope="scope">-->
<!-- {{ dict.label.agv_inst_type[scope.row.agv_inst_type] }}-->
<!-- </template>-->
</el-table-column>
<el-table-column prop="storage_task_type" label="立库任务类型">
<template slot-scope="scope">
{{ dict.label.storage_task_type[scope.row.storage_task_type] }}
</template>
</el-table-column>
<el-table-column prop="weight" label="重量" />
<el-table-column prop="temperature" label="温度" />
<el-table-column prop="quantity" label="数量" />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="create_by" label="创建者" />
@@ -141,7 +158,7 @@ const defaultForm = {
export default {
name: 'Task',
components: { pagination, crudOperation, Search },
dicts: ['task_status', 'task_type'],
dicts: ['task_status', 'task_type', 'agv_system_type', 'storage_task_type'],
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({ title: '任务', url: 'api/task/getAll', idField: 'task_id', sort: 'task_id,desc', crudMethod: { ...crudTask }, optShow: {

View File

@@ -22,18 +22,6 @@
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
<el-select
v-model="query.material_type"
clearable
filterable
size="small"
placeholder="物料类型"
class="filter-item"
style="width: 190px"
@change="crud.toQuery"
>
<el-option v-for="item in materialList" :key="item.id" :label="item.label" :value="item.value" />
</el-select>
<el-select
v-model="query.status"
clearable
@@ -344,13 +332,13 @@
<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="put_point_code" label="中转点" width="100px" />
<!-- <el-table-column prop="agv_task_type" label="AGV任务类型" width="120px" />-->
<!-- <el-table-column prop="agv_task_type" label="AGV任务类型" width="120px" />-->
<el-table-column prop="agv_system_type" label="AGV系统类型" width="120px">
<template slot-scope="scope">
{{ dict.label.agv_system_type[scope.row.agv_system_type] }}
</template>
</el-table-column>
<el-table-column prop="storage_task_type" label="立库任务类型" width="120px" >
<el-table-column prop="storage_task_type" label="立库任务类型" width="120px">
<template slot-scope="scope">
{{ dict.label.storage_task_type[scope.row.storage_task_type] }}
</template>