Merge branch 'master' of http://121.40.234.130:8899/root/lanzhouhailiang_one
This commit is contained in:
@@ -290,7 +290,7 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
|
||||
dos.flush();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
log.error("下发agv数据异常:" + e.getMessage());
|
||||
log.info("下发agv数据异常:" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
|
||||
}
|
||||
|
||||
@@ -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("查询所有未完成指令")
|
||||
|
||||
@@ -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"));
|
||||
@@ -235,7 +238,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
@Override
|
||||
public Instruction findByCode(String code) {
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
|
||||
JSONObject json = wo.query("instruction_code ='" + code + "'").uniqueResult(0);
|
||||
JSONObject json = wo.query("instruction_code ='" + code + "'","create_time desc").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json)) {
|
||||
return null;
|
||||
}
|
||||
@@ -246,7 +249,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
@Override
|
||||
public Instruction findByTaskcode(String code) {
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
|
||||
JSONObject json = wo.query("task_code ='" + code + "'").uniqueResult(0);
|
||||
JSONObject json = wo.query("task_code ='" + code + "'","create_time desc").uniqueResult(0);
|
||||
final Instruction obj = json.toJavaObject(Instruction.class);
|
||||
return obj;
|
||||
}
|
||||
@@ -285,7 +288,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
||||
wherecaluse = " and " + wherecaluse;
|
||||
}
|
||||
WQLObject wo = WQLObject.getWQLObject("acs_instruction");
|
||||
JSONObject json = wo.query("task_id ='" + id + "'" + wherecaluse).uniqueResult(0);
|
||||
JSONObject json = wo.query("task_id ='" + id + "'" + wherecaluse,"create_time desc").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(json)) {
|
||||
return json.toJavaObject(Instruction.class);
|
||||
}
|
||||
@@ -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());
|
||||
|
||||
@@ -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 <> ""
|
||||
(
|
||||
|
||||
@@ -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("新增任务")
|
||||
|
||||
@@ -217,7 +217,6 @@ public interface TaskService {
|
||||
*/
|
||||
void download(List<TaskDto> dtos, HttpServletResponse response) throws IOException;
|
||||
|
||||
|
||||
/**
|
||||
* 根据触摸屏点击保存创建任务
|
||||
*
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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 <> ""
|
||||
(
|
||||
|
||||
@@ -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
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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: {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -91,6 +91,15 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
|
||||
@SneakyThrows
|
||||
public void create(Map userDetail) {
|
||||
SysUser sysUser = new SysUser();
|
||||
//userDetail 中 createTime是string类型BeanUtils.populate不支持解析或者使用MapStruct
|
||||
ConvertUtils.register((m, o) -> {
|
||||
try {
|
||||
if (o == null){ return null; }
|
||||
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(o.toString());
|
||||
}catch (Exception ex){
|
||||
return new Date();
|
||||
}
|
||||
}, Date.class);
|
||||
BeanUtils.populate(sysUser,userDetail);
|
||||
// 默认密码 123456
|
||||
if (ObjectUtil.isEmpty(sysUser.getPassword())) {
|
||||
|
||||
@@ -4,6 +4,7 @@ package org.nl.wms.pda.st.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.druid.sql.visitor.functions.If;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -57,6 +58,8 @@ public class PdaCheckServiceImpl implements PdaCheckService {
|
||||
@Override
|
||||
public JSONObject checkQueryDtl(JSONObject whereJson) {
|
||||
|
||||
WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl");
|
||||
|
||||
String box_no = whereJson.getString("box_no");
|
||||
|
||||
JSONObject map = new JSONObject();
|
||||
@@ -64,6 +67,15 @@ public class PdaCheckServiceImpl implements PdaCheckService {
|
||||
map.put("check_code", whereJson.getString("check_code"));
|
||||
if (ObjectUtil.isNotEmpty(box_no)) map.put("storagevehicle_code","%"+box_no+"%");
|
||||
|
||||
JSONObject jsonDtl = dtlTab.query("check_code = '" + whereJson.getString("check_code") + "' and storagevehicle_code = '" + box_no + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonDtl)) {
|
||||
throw new BadRequestException("此箱号不在此盘点单中:"+box_no);
|
||||
} else {
|
||||
if (!StrUtil.equals(jsonDtl.getString("status"), "1")) {
|
||||
throw new BadRequestException("此箱号已盘点");
|
||||
}
|
||||
}
|
||||
|
||||
JSONArray resultJSONArray = WQL.getWO("PDA_CHECK").addParamMap(map).process().getResultJSONArray(0);
|
||||
|
||||
// 已盘点数: 不等于生成状态
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
package org.nl.wms.st.returns.rest;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.st.outbill.service.impl.CheckOutBillServiceImpl;
|
||||
import org.nl.wms.st.returns.service.InAndOutReturnService;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@@ -62,4 +67,11 @@ public class InAndOutReturnlController {
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation("导出数据")
|
||||
@GetMapping(value = "/download")
|
||||
public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
|
||||
JSONArray outBillDis = SpringContextHolder.getBean(CheckOutBillServiceImpl.class).getOutBillDis(whereJson);
|
||||
inAndOutReturnService.download(outBillDis, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
public interface InAndOutReturnService {
|
||||
@@ -24,4 +26,6 @@ public interface InAndOutReturnService {
|
||||
|
||||
void disupload(JSONObject whereJson);
|
||||
|
||||
void download(JSONArray arr, HttpServletResponse response) throws IOException;
|
||||
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.utils.FileUtil;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.system.service.user.ISysUserService;
|
||||
import org.nl.system.service.user.dao.SysUser;
|
||||
@@ -32,9 +33,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* PC端出入库新增
|
||||
@@ -675,6 +676,40 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void download(JSONArray array, HttpServletResponse response) throws IOException {
|
||||
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
JSONObject json = array.getJSONObject(i);
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
|
||||
map.put("物料编码", json.getString("material_code"));
|
||||
map.put("物料名称", json.getString("material_name"));
|
||||
map.put("子卷批次号", json.getString("pcsn"));
|
||||
map.put("sap批次", json.getString("sap_pcsn"));
|
||||
map.put("箱号", json.getString("box_no"));
|
||||
map.put("重量", json.getString("real_qty"));
|
||||
map.put("仓位", json.getString("struct_code"));
|
||||
|
||||
String statusName = "";
|
||||
if (StrUtil.equals(json.getString("work_status"), "00")) {
|
||||
statusName = "未生成";
|
||||
} else if (StrUtil.equals(json.getString("work_status"), "01")) {
|
||||
statusName = "生成";
|
||||
} else if (StrUtil.equals(json.getString("work_status"), "02")) {
|
||||
statusName = "执行中";
|
||||
} else if (StrUtil.equals(json.getString("work_status"), "99")) {
|
||||
statusName = "完成";
|
||||
}
|
||||
map.put("状态", statusName);
|
||||
list.add(map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upload(JSONObject whereJson) {
|
||||
//出库分配表
|
||||
|
||||
@@ -208,6 +208,18 @@
|
||||
>
|
||||
不回传
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-thumb"
|
||||
size="mini"
|
||||
:loading="showDtlLoading"
|
||||
:disabled="crud.selections.length !== 1"
|
||||
@click="downdtl"
|
||||
>
|
||||
导出
|
||||
</el-button>
|
||||
</crudOperation>
|
||||
<!--表格渲染-->
|
||||
<el-table
|
||||
@@ -267,6 +279,8 @@ import crudOperation from '@crud/CRUD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
import ViewDialog from '@/views/wms/st/inAndOutReturn/ViewDialog'
|
||||
import crudUserStor from '@/views/wms/basedata/st/userStor/userStor'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Return',
|
||||
@@ -295,7 +309,8 @@ export default {
|
||||
mstrow: {},
|
||||
fullscreenLoading: false,
|
||||
storlist: [],
|
||||
billtypelist: []
|
||||
billtypelist: [],
|
||||
showDtlLoading: false
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
@@ -453,6 +468,18 @@ export default {
|
||||
} else if (row.upload_sap === '1') {
|
||||
return '是'
|
||||
}
|
||||
},
|
||||
downdtl() {
|
||||
const _selectData = this.$refs.table.selection
|
||||
if (this.currentRow !== null) {
|
||||
crud.downloadLoading = true
|
||||
download('/api/inandoutreturn/download', { 'iostorinv_id': _selectData[0].iostorinv_id }).then(result => {
|
||||
downloadFile(result, '出入库单据明细', 'xlsx')
|
||||
crud.downloadLoading = false
|
||||
}).catch(() => {
|
||||
crud.downloadLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user