工序维护、工单管理、区域管理、点位管理、任务管理等bug修复与添加生产区域判断

This commit is contained in:
2023-03-21 19:26:13 +08:00
parent ca0b9a858d
commit e181a4a6e7
18 changed files with 220 additions and 174 deletions

View File

@@ -136,19 +136,9 @@ public class WorkProcedureServiceImpl implements WorkProcedureService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteAll(Long[] ids) { public void deleteAll(Long[] ids) {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure"); WQLObject wo = WQLObject.getWQLObject("pdm_bi_workProcedure");
for (Long workProcedure_id : ids) { for (Long workProcedure_id : ids) {
JSONObject param = new JSONObject(); wo.delete("workProcedure_id = '" + workProcedure_id + "'");
param.put("workprocedure_id", String.valueOf(workProcedure_id));
param.put("is_delete", "1");
param.put("update_optid", currentUserId);
param.put("update_optname", nickName);
param.put("update_time", DateUtil.now());
wo.delete(param);
} }
} }

View File

@@ -68,6 +68,7 @@ public class ProduceWorkorderServiceImpl implements ProduceWorkorderService {
String parent_id = MapUtil.getStr(whereJson, "product_series"); String parent_id = MapUtil.getStr(whereJson, "product_series");
String sale_id = MapUtil.getStr(whereJson, "sale_id"); String sale_id = MapUtil.getStr(whereJson, "sale_id");
String is_error = MapUtil.getStr(whereJson, "is_error"); String is_error = MapUtil.getStr(whereJson, "is_error");
String product_area = MapUtil.getStr(whereJson, "product_area");
String product_series = ""; String product_series = "";
JSONObject map = new JSONObject(); JSONObject map = new JSONObject();
map.put("flag", "1"); map.put("flag", "1");
@@ -75,6 +76,7 @@ public class ProduceWorkorderServiceImpl implements ProduceWorkorderService {
map.put("shift_type_scode", shift_type_scode); map.put("shift_type_scode", shift_type_scode);
map.put("begin_time", begin_time); map.put("begin_time", begin_time);
map.put("end_time", end_time); map.put("end_time", end_time);
map.put("product_area", product_area);
if (StrUtil.isNotEmpty(order_status)) { if (StrUtil.isNotEmpty(order_status)) {
order_status = order_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); order_status = order_status.replace("[\"", "").replace("\"]", "").replace("\"", "");
} }

View File

@@ -20,6 +20,7 @@
输入.workprocedure_code TYPEAS s_string 输入.workprocedure_code TYPEAS s_string
输入.order_status TYPEAS s_string 输入.order_status TYPEAS s_string
输入.shift_type_scode TYPEAS s_string 输入.shift_type_scode TYPEAS s_string
输入.product_area TYPEAS s_string
输入.begin_time TYPEAS s_string 输入.begin_time TYPEAS s_string
输入.end_time TYPEAS s_string 输入.end_time TYPEAS s_string
输入.produceorder_code TYPEAS s_string 输入.produceorder_code TYPEAS s_string
@@ -83,6 +84,9 @@
OPTION 输入.is_error <> "" OPTION 输入.is_error <> ""
ShiftOrder.is_error = 输入.is_error ShiftOrder.is_error = 输入.is_error
ENDOPTION ENDOPTION
OPTION 输入.product_area <> ""
ShiftOrder.product_area = 输入.product_area
ENDOPTION
OPTION 输入.product_series <> "" OPTION 输入.product_series <> ""
material.product_series in 输入.product_series material.product_series in 输入.product_series
ENDOPTION ENDOPTION

View File

@@ -140,7 +140,7 @@ public class DeviceServiceImpl implements DeviceService {
@Override @Override
public JSONArray getWorkprocedure() { public JSONArray getWorkprocedure() {
WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure"); WQLObject wo = WQLObject.getWQLObject("pdm_bi_workprocedure");
final JSONArray resultJSONArray = wo.query("is_delete = '0'").getResultJSONArray(0); final JSONArray resultJSONArray = wo.query("is_used = '0'").getResultJSONArray(0);
return resultJSONArray; return resultJSONArray;
} }

View File

@@ -4,13 +4,13 @@ package org.nl.wms.sch.manage;
* Task状态:00生成 ,01下发02、执行中03、完成 * Task状态:00生成 ,01下发02、执行中03、完成
*/ */
public enum TaskStatusEnum { public enum TaskStatusEnum {
CREATED("01", "生成"), CREATED("1", "生成"),
SURE_START("02", "确定起点"), SURE_START("2", "确定起点"),
SURE_END("03", "确定终点"), SURE_END("3", "确定终点"),
START_AND_POINT("04", "起点终点确认"), START_AND_POINT("4", "起点终点确认"),
ISSUE("05", "下发"), ISSUE("5", "下发"),
EXECUTING("06", "执行中"), EXECUTING("6", "执行中"),
FINISHED("07", "完成"); FINISHED("7", "完成");
private String name; private String name;
private String code; private String code;

View File

@@ -55,14 +55,12 @@ public class PointServiceImpl implements PointService {
map.put("col_num", whereJson.get("col_num")); map.put("col_num", whereJson.get("col_num"));
map.put("layer_num", whereJson.get("layer_num")); map.put("layer_num", whereJson.get("layer_num"));
map.put("name", whereJson.get("name")); map.put("name", whereJson.get("name"));
map.put("product_area", whereJson.get("product_area"));
JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc"); JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc");
JSONArray content = json.getJSONArray("content"); JSONArray content = json.getJSONArray("content");
JSONArray res = new JSONArray(); JSONArray res = new JSONArray();
for (int i = 0; i < content.size(); i++) { for (int i = 0; i < content.size(); i++) {
JSONObject object = content.getJSONObject(i); JSONObject object = content.getJSONObject(i);
// 可以存放的载具类型
String[] can_vehicle_types = object.getString("can_vehicle_type").split(",");
object.put("can_vehicle_types", can_vehicle_types);
String region_code = object.getString("region_code"); String region_code = object.getString("region_code");
String point_status = object.getString("point_status"); String point_status = object.getString("point_status");
String point_type = object.getString("point_type"); String point_type = object.getString("point_type");
@@ -133,14 +131,8 @@ public class PointServiceImpl implements PointService {
if (ObjectUtil.isNotEmpty(byCode)) { if (ObjectUtil.isNotEmpty(byCode)) {
throw new BadRequestException("存在相同的点位编码"); throw new BadRequestException("存在相同的点位编码");
} }
String can_vehicle_type = String.join(",", dto.getCan_vehicle_types());
dto.setCan_vehicle_type(can_vehicle_type);
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextIdStr()); dto.setPoint_id(IdUtil.getSnowflake(1, 1).nextIdStr());
dto.setCreate_id(currentUserId); dto.setCreate_id(currentUserId);
dto.setCreate_name(nickName); dto.setCreate_name(nickName);
@@ -168,9 +160,6 @@ public class PointServiceImpl implements PointService {
String currentUserId = SecurityUtils.getCurrentUserId(); String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName(); String nickName = SecurityUtils.getCurrentNickName();
String can_vehicle_type = String.join(",", dto.getCan_vehicle_types());
dto.setCan_vehicle_type(can_vehicle_type);
String now = DateUtil.now(); String now = DateUtil.now();
dto.setUpdate_time(now); dto.setUpdate_time(now);
dto.setUpdate_id(currentUserId); dto.setUpdate_id(currentUserId);
@@ -182,9 +171,9 @@ public class PointServiceImpl implements PointService {
dto.setVehicle_type(""); dto.setVehicle_type("");
dto.setVehicle_code(""); dto.setVehicle_code("");
dto.setVehicle_qty(0); dto.setVehicle_qty(0);
} else if (pointStatus.equals("2")) { // 空载具 } else if (pointStatus.equals("3")) { // 空载具
dto.setMaterial_id(null); dto.setMaterial_id(null);
} else if (pointStatus.equals("3")) { // 有料 } else if (pointStatus.equals("2")) { // 有料
if (ObjectUtil.isEmpty(dto.getMaterial_id())) throw new BadRequestException("物料不能为空"); if (ObjectUtil.isEmpty(dto.getMaterial_id())) throw new BadRequestException("物料不能为空");
JSONObject materialObj = materialBaseTab.query("material_id = '" + dto.getMaterial_id() + "'").uniqueResult(0); JSONObject materialObj = materialBaseTab.query("material_id = '" + dto.getMaterial_id() + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(materialObj)) throw new BadRequestException("未找到该物料"); if (ObjectUtil.isEmpty(materialObj)) throw new BadRequestException("未找到该物料");

View File

@@ -36,10 +36,12 @@ public class RegionServiceImpl implements RegionService {
@Override @Override
public Map<String, Object> queryAll(Map whereJson, Pageable page) { public Map<String, Object> queryAll(Map whereJson, Pageable page) {
String region_code = MapUtil.getStr(whereJson, "region_code"); String region_code = MapUtil.getStr(whereJson, "region_code");
String product_area = MapUtil.getStr(whereJson, "product_area");
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("flag", "1"); map.put("flag", "1");
if (ObjectUtil.isNotEmpty(region_code)) map.put("region_code","%" + region_code + "%"); if (ObjectUtil.isNotEmpty(region_code)) map.put("region_code","%" + region_code + "%");
if (ObjectUtil.isNotEmpty(product_area)) map.put("product_area", product_area);
JSONObject json = WQL.getWO("QSCH_REGION_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "region.region_code ASC"); JSONObject json = WQL.getWO("QSCH_REGION_01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "region.region_code ASC");
return json; return json;

View File

@@ -51,6 +51,7 @@ public class TaskServiceImpl implements TaskService {
JSONObject whereJson = JSONObject.parseObject(JSON.toJSONString(form)); JSONObject whereJson = JSONObject.parseObject(JSON.toJSONString(form));
String task_status = whereJson.getString("task_status"); String task_status = whereJson.getString("task_status");
map.put("product_area", whereJson.getString("product_area"));
if (StrUtil.isNotEmpty(task_status)) { if (StrUtil.isNotEmpty(task_status)) {
task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", ""); task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", "");
} }

View File

@@ -19,6 +19,7 @@
输入.name TYPEAS s_string 输入.name TYPEAS s_string
输入.point_type TYPEAS s_string 输入.point_type TYPEAS s_string
输入.point_status TYPEAS s_string 输入.point_status TYPEAS s_string
输入.product_area TYPEAS s_string
输入.block_num TYPEAS s_string 输入.block_num TYPEAS s_string
输入.row_num TYPEAS s_string 输入.row_num TYPEAS s_string
输入.col_num TYPEAS s_string 输入.col_num TYPEAS s_string
@@ -78,6 +79,9 @@
OPTION 输入.lock_type <> "" OPTION 输入.lock_type <> ""
point.lock_type = 输入.lock_type point.lock_type = 输入.lock_type
ENDOPTION ENDOPTION
OPTION 输入.product_area <> ""
point.product_area = 输入.product_area
ENDOPTION
OPTION 输入.point_status <> "" OPTION 输入.point_status <> ""
point.point_status = 输入.point_status point.point_status = 输入.point_status
ENDOPTION ENDOPTION

View File

@@ -15,6 +15,7 @@
################################################# #################################################
输入.flag TYPEAS s_string 输入.flag TYPEAS s_string
输入.region_code TYPEAS s_string 输入.region_code TYPEAS s_string
输入.product_area TYPEAS s_string
[临时表] [临时表]
--这边列出来的临时表就会在运行期动态创建 --这边列出来的临时表就会在运行期动态创建
@@ -46,12 +47,13 @@
SCH_BASE_Region region SCH_BASE_Region region
WHERE WHERE
1=1 1=1
OPTION 输入.product_area <> ""
OPTION 输入.region_code <> "" region.product_area = 输入.product_area
(region.region_code like 输入.region_code or ENDOPTION
region.region_name like 输入.region_code) OPTION 输入.region_code <> ""
(region.region_code like 输入.region_code or
region.region_name like 输入.region_code)
ENDOPTION ENDOPTION
ENDSELECT ENDSELECT
ENDPAGEQUERY ENDPAGEQUERY
ENDIF ENDIF

View File

@@ -14,12 +14,13 @@
## 表字段对应输入参数 ## 表字段对应输入参数
################################################# #################################################
输入.flag TYPEAS s_string 输入.flag TYPEAS s_string
输入.task_status TYPEAS s_string 输入.task_status TYPEAS s_string
输入.finished_type TYPEAS s_string 输入.finished_type TYPEAS s_string
输入.task_type TYPEAS s_string 输入.task_type TYPEAS s_string
输入.point_code1 TYPEAS s_string 输入.point_code1 TYPEAS s_string
输入.point_code2 TYPEAS s_string 输入.point_code2 TYPEAS s_string
输入.task_code TYPEAS s_string 输入.task_code TYPEAS s_string
输入.product_area TYPEAS s_string
输入.vehicle_code TYPEAS s_string 输入.vehicle_code TYPEAS s_string
输入.begin_time TYPEAS s_string 输入.begin_time TYPEAS s_string
输入.end_time TYPEAS s_string 输入.end_time TYPEAS s_string
@@ -76,7 +77,7 @@
WHERE WHERE
task.is_delete = '0' task.is_delete = '0'
OPTION 输入.task_type <> "" OPTION 输入.task_type <> ""
task.task_type = 输入.task_type task.task_type = ( select md2.class_code from md_pb_classstandard md2 where md2.class_id = 输入.task_type )
ENDOPTION ENDOPTION
OPTION 输入.finished_type <> "" OPTION 输入.finished_type <> ""
task.finished_type = 输入.finished_type task.finished_type = 输入.finished_type
@@ -87,6 +88,9 @@
OPTION 输入.end_time <> "" OPTION 输入.end_time <> ""
task.create_time <= 输入.end_time task.create_time <= 输入.end_time
ENDOPTION ENDOPTION
OPTION 输入.product_area <> ""
task.product_area = 输入.product_area
ENDOPTION
OPTION 输入.unFinish <> "" OPTION 输入.unFinish <> ""
task.task_status <> '7' task.task_status <> '7'
ENDOPTION ENDOPTION

View File

@@ -190,7 +190,7 @@ import pagination from '@crud/Pagination'
const defaultForm = { const defaultForm = {
workprocedure_id: null, workprocedure_id: null,
product_area: null, product_area: 'A1',
workprocedure_code: null, workprocedure_code: null,
workprocedure_name: null, workprocedure_name: null,
worksection_type_scode: null, worksection_type_scode: null,

View File

@@ -10,6 +10,23 @@
label-width="90px" label-width="90px"
label-suffix=":" label-suffix=":"
> >
<el-form-item label="生产区域">
<el-select
v-model="query.product_area"
clearable
filterable
size="mini"
placeholder="区域类型"
class="filter-item"
@change="crud.toQuery()"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<!-- 搜索 --> <!-- 搜索 -->
<el-form-item label="工单编号"> <el-form-item label="工单编号">
<el-input <el-input
@@ -180,6 +197,20 @@
width="1200px" width="1200px"
> >
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="160px"> <el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="160px">
<el-form-item label="生产区域" prop="product_area">
<el-select
v-model="form.product_area"
placeholder=""
style="width: 200px"
>
<el-option
v-for="item in dict.product_area"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所属工序" prop="workprocedure_id"> <el-form-item label="所属工序" prop="workprocedure_id">
<el-select <el-select
v-model="form.workprocedure_id" v-model="form.workprocedure_id"
@@ -324,7 +355,7 @@
<el-link type="warning" @click="toView(scope.row)">{{ scope.row.workorder_code }}</el-link> <el-link type="warning" @click="toView(scope.row)">{{ scope.row.workorder_code }}</el-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="shift_type_scode" label="班次类型" > <el-table-column prop="shift_type_scode" label="班次类型">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.PDM_BI_SHIFTTYPE[scope.row.shift_type_scode] }} {{ dict.label.PDM_BI_SHIFTTYPE[scope.row.shift_type_scode] }}
</template> </template>
@@ -334,16 +365,16 @@
<el-table-column prop="plan_qty" label="计划数量" /> <el-table-column prop="plan_qty" label="计划数量" />
<el-table-column prop="real_qty" label="实际数量" /> <el-table-column prop="real_qty" label="实际数量" />
<el-table-column prop="person_name" label="操作员" /> <el-table-column prop="person_name" label="操作员" />
<el-table-column prop="person_real_qty" label="人员实际数量" width="100" show-overflow-tooltip/> <el-table-column prop="person_real_qty" label="人员实际数量" width="100" show-overflow-tooltip />
<el-table-column prop="dq_real_qty" label="电气实际数量" width="100" show-overflow-tooltip/> <el-table-column prop="dq_real_qty" label="电气实际数量" width="100" show-overflow-tooltip />
<el-table-column prop="material_name" label="物料名称" width="120" show-overflow-tooltip/> <el-table-column prop="material_name" label="物料名称" width="120" show-overflow-tooltip />
<el-table-column prop="workprocedure_name" label="工序名称" width="120" show-overflow-tooltip/> <el-table-column prop="workprocedure_name" label="工序名称" width="120" show-overflow-tooltip />
<el-table-column prop="material_weight" label="物料单重" width="100"/> <el-table-column prop="material_weight" label="物料单重" width="100" />
<el-table-column prop="planproducestart_date" label="计划开始时间" width="100" show-overflow-tooltip/> <el-table-column prop="planproducestart_date" label="计划开始时间" width="100" show-overflow-tooltip />
<el-table-column prop="planproduceend_date" label="计划结束时间" width="100" show-overflow-tooltip/> <el-table-column prop="planproduceend_date" label="计划结束时间" width="100" show-overflow-tooltip />
<el-table-column prop="realproducestart_date" label="实际开始时间" width="100" show-overflow-tooltip/> <el-table-column prop="realproducestart_date" label="实际开始时间" width="100" show-overflow-tooltip />
<el-table-column prop="realproduceend_date" label="实际结束时间" width="100" show-overflow-tooltip/> <el-table-column prop="realproduceend_date" label="实际结束时间" width="100" show-overflow-tooltip />
<el-table-column prop="current_device_code" label="当前设备编码" width="100" show-overflow-tooltip/> <el-table-column prop="current_device_code" label="当前设备编码" width="100" show-overflow-tooltip />
<el-table-column prop="is_canupdate_update" label="操作工是否允许修改报工数量" width="200" show-overflow-tooltip> <el-table-column prop="is_canupdate_update" label="操作工是否允许修改报工数量" width="200" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_canupdate_update] }} {{ dict.label.IS_OR_NOT[scope.row.is_canupdate_update] }}
@@ -354,7 +385,7 @@
{{ dict.label.MPS_BD_ORDERSTATUS[scope.row.workorder_status] }} {{ dict.label.MPS_BD_ORDERSTATUS[scope.row.workorder_status] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="is_needmove" label="是否搬运" > <el-table-column prop="is_needmove" label="是否搬运">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_needmove] }} {{ dict.label.IS_OR_NOT[scope.row.is_needmove] }}
</template> </template>
@@ -364,17 +395,17 @@
{{ dict.label.WORKORDER_CREATE_TYPE[scope.row.create_type] }} {{ dict.label.WORKORDER_CREATE_TYPE[scope.row.create_type] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="is_error" label="是否异常" > <el-table-column prop="is_error" label="是否异常">
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.IS_OR_NOT[scope.row.is_error] }} {{ dict.label.IS_OR_NOT[scope.row.is_error] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="error_info" label="异常信息" show-overflow-tooltip/> <el-table-column prop="error_info" label="异常信息" show-overflow-tooltip />
<el-table-column prop="remark" label="备注" /> <el-table-column prop="remark" label="备注" />
<el-table-column prop="create_name" label="创建人" show-overflow-tooltip/> <el-table-column prop="create_name" label="创建人" show-overflow-tooltip />
<el-table-column prop="create_time" label="创建时间" show-overflow-tooltip /> <el-table-column prop="create_time" label="创建时间" show-overflow-tooltip />
<el-table-column prop="update_name" label="修改人" show-overflow-tooltip/> <el-table-column prop="update_name" label="修改人" show-overflow-tooltip />
<el-table-column prop="update_time" label="修改时间" show-overflow-tooltip/> <el-table-column prop="update_time" label="修改时间" show-overflow-tooltip />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right"> <el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<udOperation <udOperation
@@ -422,7 +453,7 @@ const defaultForm = {
workorder_code: null, workorder_code: null,
shift_type_scode: null, shift_type_scode: null,
workprocedure_id: null, workprocedure_id: null,
product_area: null, product_area: 'A1',
plan_qty: null, plan_qty: null,
real_qty: null, real_qty: null,
person_real_qty: null, person_real_qty: null,
@@ -455,10 +486,10 @@ export default {
name: 'Produceshiftorder', name: 'Produceshiftorder',
components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, MaterDtl, Treeselect, ViewDialog, UploadDialog, ReplaceDeviceDialog }, components: { AddDialog, pagination, crudOperation, rrOperation, udOperation, MaterDtl, Treeselect, ViewDialog, UploadDialog, ReplaceDeviceDialog },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT'], dicts: ['PDM_BI_SHIFTTYPE', 'MPS_BD_ORDERSTATUS', 'WORKORDER_CREATE_TYPE', 'is_used', 'PDM_BI_ORDERTYPE', 'IS_OR_NOT', 'product_area'],
cruds() { cruds() {
return CRUD({ return CRUD({
title: '工单', url: 'api/produceWorkorder', idField: 'produceorder_id', sort: 'produceorder_id,desc', title: '工单', url: 'api/produceWorkorder', idField: 'workorder_id', sort: 'workorder_id,desc',
optShow: { optShow: {
add: true, add: true,
edit: false, edit: false,
@@ -468,6 +499,7 @@ export default {
}, },
query: { query: {
order_status: '-1', order_status: '-1',
product_area: 'A1',
is_error: '0' is_error: '0'
}, },
crudMethod: { ...crudProduceshiftorder } crudMethod: { ...crudProduceshiftorder }
@@ -739,7 +771,7 @@ export default {
}, },
[CRUD.HOOK.beforeToAdd]() { [CRUD.HOOK.beforeToAdd]() {
this.initDataPlan() this.initDataPlan()
}, }
// [CRUD.HOOK.afterToEdit]() { // [CRUD.HOOK.afterToEdit]() {
// const editForm1 = JSON.parse(JSON.stringify(this.form)) // const editForm1 = JSON.parse(JSON.stringify(this.form))
// this.getNotWorkDeviceByWorkproceduceId(editForm1.workprocedure_id) // this.getNotWorkDeviceByWorkproceduceId(editForm1.workprocedure_id)

View File

@@ -10,6 +10,23 @@
label-width="90px" label-width="90px"
label-suffix=":" label-suffix=":"
> >
<el-form-item label="生产区域">
<el-select
v-model="query.product_area"
clearable
filterable
size="mini"
placeholder="区域类型"
class="filter-item"
@change="crud.toQuery()"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="模糊搜索"> <el-form-item label="模糊搜索">
<el-input <el-input
v-model="query.name" v-model="query.name"
@@ -202,6 +219,20 @@
width="540px" width="540px"
> >
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px"> <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="110px">
<el-form-item label="生产区域" prop="product_area">
<el-select
v-model="form.product_area"
placeholder=""
style="width: 370px"
>
<el-option
v-for="item in dict.product_area"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="false" label="点位标识" prop="point_id"> <el-form-item v-if="false" label="点位标识" prop="point_id">
<el-input v-model="form.point_id" style="width: 370px;" /> <el-input v-model="form.point_id" style="width: 370px;" />
</el-form-item> </el-form-item>
@@ -219,32 +250,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="上一区域" prop="pre_region_code">
<el-select
v-model="form.pre_region_code"
placeholder="请选择"
style="width: 370px;"
>
<el-option
v-for="item in regionList"
:label="item.region_name"
:value="item.region_code"
/>
</el-select>
</el-form-item>
<el-form-item label="下一区域" prop="next_region_code">
<el-select
v-model="form.next_region_code"
placeholder="请选择"
style="width: 370px;"
>
<el-option
v-for="item in regionList"
:label="item.region_name"
:value="item.region_code"
/>
</el-select>
</el-form-item>
<el-form-item label="点位编码" prop="point_code"> <el-form-item label="点位编码" prop="point_code">
<el-input v-model="form.point_code" style="width: 370px;" /> <el-input v-model="form.point_code" style="width: 370px;" />
</el-form-item> </el-form-item>
@@ -269,9 +274,9 @@
</el-form-item> </el-form-item>
<el-form-item label="绑定设备" prop="device_code"> <el-form-item label="绑定设备" prop="device_code">
<el-select <el-select
v-model="form.device_code"
clearable clearable
filterable filterable
v-model="form.device_code"
placeholder="请选择" placeholder="请选择"
style="width: 370px;" style="width: 370px;"
> >
@@ -282,22 +287,6 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="点位位置" prop="point_location">
<el-select
v-model="form.point_location"
clearable
size="mini"
placeholder="点位位置"
class="filter-item"
style="width: 370px;"
>
<el-option
v-for="item in dict.point_location"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="锁定类型" prop="lock_type"> <el-form-item label="锁定类型" prop="lock_type">
<el-select <el-select
v-model="form.lock_type" v-model="form.lock_type"
@@ -331,39 +320,19 @@
<el-form-item v-if="form.point_status !== '1'" label="载具编码" prop="vehicle_code"> <el-form-item v-if="form.point_status !== '1'" label="载具编码" prop="vehicle_code">
<el-input v-model="form.vehicle_code" clearable style="width: 370px;" /> <el-input v-model="form.vehicle_code" clearable style="width: 370px;" />
</el-form-item> </el-form-item>
<el-form-item label="已放载具类型" prop="vehicle_type"> <!-- <el-form-item v-if="form.point_status === '3'" label="库存数" prop="ivt_qty">-->
<el-select v-model="form.vehicle_type" placeholder="请选择" clearable style="width: 370px;"> <!-- <el-input-number :controls="false" class="clear-number-input" v-model="form.ivt_qty" type="number" :min="1" :precision="3" :max="99999" label="库存数" size="mini" />-->
<el-option <!-- </el-form-item>-->
v-for="item in dict.storagevehicle_type" <el-form-item v-if="form.point_status === '2'" label="物料来源">
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="可放载具类型" prop="can_vehicle_types">
<el-select v-model="form.can_vehicle_types" multiple placeholder="请选择" style="width: 370px;">
<el-option
v-for="item in dict.storagevehicle_type"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item v-if="form.point_status === '3'" label="库存数" prop="ivt_qty">-->
<!-- <el-input-number :controls="false" class="clear-number-input" v-model="form.ivt_qty" type="number" :min="1" :precision="3" :max="99999" label="库存数" size="mini" />-->
<!-- </el-form-item>-->
<el-form-item v-if="form.point_status === '3'" label="物料来源">
<el-radio-group v-model="choose" size="mini"> <el-radio-group v-model="choose" size="mini">
<el-radio-button label="物料" /> <el-radio-button label="物料" />
<el-radio-button label="工单" /> <el-radio-button label="工单" />
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="false" label="物料名称" prop="vehicle_code"> <el-form-item v-if="false" label="物料名称" prop="vehicle_code">
<el-input suffix-icon="el-icon-date" v-model="form.material_id" clearable style="width: 370px;" @focus="getMaterial" /> <el-input v-model="form.material_id" suffix-icon="el-icon-date" clearable style="width: 370px;" @focus="getMaterial" />
</el-form-item> </el-form-item>
<el-form-item v-if="form.point_status === '3'" label="物料名称" prop="vehicle_code"> <el-form-item v-if="form.point_status === '2'" label="物料名称" prop="vehicle_code">
<el-input v-model="form.material_name" clearable style="width: 370px;" @focus="getMaterial" /> <el-input v-model="form.material_name" clearable style="width: 370px;" @focus="getMaterial" />
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="备注">
@@ -392,11 +361,6 @@
</el-table-column> </el-table-column>
<el-table-column prop="point_name" label="点位名称" width="150" sortable show-overflow-tooltip /> <el-table-column prop="point_name" label="点位名称" width="150" sortable show-overflow-tooltip />
<el-table-column prop="region_name" label="区域名称" min-width="120" show-overflow-tooltip /> <el-table-column prop="region_name" label="区域名称" min-width="120" show-overflow-tooltip />
<el-table-column prop="point_location" label="位置">
<template slot-scope="scope">
{{ scope.row.point_location ? '下' : '上' }}
</template>
</el-table-column>
<el-table-column prop="pre_region_name" label="上一区域" min-width="120" show-overflow-tooltip /> <el-table-column prop="pre_region_name" label="上一区域" min-width="120" show-overflow-tooltip />
<el-table-column prop="next_region_name" label="下一区域" min-width="120" show-overflow-tooltip /> <el-table-column prop="next_region_name" label="下一区域" min-width="120" show-overflow-tooltip />
<el-table-column prop="material_name" label="物料名称" min-width="120" show-overflow-tooltip /> <el-table-column prop="material_name" label="物料名称" min-width="120" show-overflow-tooltip />
@@ -408,7 +372,7 @@
{{ dict.label.storagevehicle_type[scope.row.vehicle_type] }} {{ dict.label.storagevehicle_type[scope.row.vehicle_type] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="vehicle_code" label="载具编码" min-width="120"/> <el-table-column prop="vehicle_code" label="载具编码" min-width="120" />
<el-table-column prop="vehicle_qty" label="载具数量" /> <el-table-column prop="vehicle_qty" label="载具数量" />
<el-table-column prop="remark" label="备注" min-width="100" show-overflow-tooltip /> <el-table-column prop="remark" label="备注" min-width="100" show-overflow-tooltip />
<el-table-column prop="is_used" label="是否启用"> <el-table-column prop="is_used" label="是否启用">
@@ -459,7 +423,7 @@ const defaultForm = {
point_id: null, point_id: null,
point_code: null, point_code: null,
point_name: null, point_name: null,
product_area: null, product_area: 'A1',
region_code: null, region_code: null,
pre_region_code: null, pre_region_code: null,
next_region_code: null, next_region_code: null,
@@ -469,8 +433,6 @@ const defaultForm = {
material_id: null, material_id: null,
material_code: null, material_code: null,
device_code: null, device_code: null,
can_vehicle_type: null,
can_vehicle_types: null,
vehicle_max_qty: null, vehicle_max_qty: null,
vehicle_type: null, vehicle_type: null,
vehicle_code: null, vehicle_code: null,
@@ -499,7 +461,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Point', name: 'Point',
dicts: ['storagevehicle_type', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'point_location'], dicts: ['storagevehicle_type', 'd_lock_type', 'SCH_TASK_TYPE_DTL', 'point_location', 'product_area'],
components: { WorkOrderDialog, MaterialDialog, pagination, crudOperation, rrOperation, udOperation, ViewDialog }, components: { WorkOrderDialog, MaterialDialog, pagination, crudOperation, rrOperation, udOperation, ViewDialog },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() { cruds() {
@@ -514,7 +476,10 @@ export default {
download: false, download: false,
reset: true reset: true
}, },
crudMethod: { ...crudPoint } crudMethod: { ...crudPoint },
query: {
product_area: 'A1'
}
}) })
}, },
@@ -546,19 +511,9 @@ export default {
region_code: [ region_code: [
{ required: true, message: '区域类型不能为空', trigger: 'blur' } { required: true, message: '区域类型不能为空', trigger: 'blur' }
], ],
pre_region_code: [
{ required: true, message: '上一区域类型不能为空', trigger: 'blur' }
],
next_region_code: [
{ required: true, message: '下一区域类型不能为空', trigger: 'blur' }
],
lock_type: [ lock_type: [
{ required: true, message: '锁定类型不能为空', trigger: 'blur' } { required: true, message: '锁定类型不能为空', trigger: 'blur' }
],
can_vehicle_types: [
{ required: true, message: '载具存放类型不能为空', trigger: 'blur' }
] ]
} }
} }
}, },

View File

@@ -3,17 +3,41 @@
<!--工具栏--> <!--工具栏-->
<div class="head-container"> <div class="head-container">
<div v-if="crud.props.searchToggle"> <div v-if="crud.props.searchToggle">
<!-- 搜索 --> <el-form
<label class="el-form-item-label">模糊搜索</label> :inline="true"
<el-input class="demo-form-inline"
v-model="query.region_code" label-position="right"
clearable label-width="90px"
placeholder="编码、名称" label-suffix=":"
style="width: 185px;" >
class="filter-item" <el-form-item label="生产区域">
@keyup.enter.native="crud.toQuery" <el-select
/> v-model="query.product_area"
<rrOperation :crud="crud" /> clearable
filterable
size="mini"
placeholder="区域类型"
class="filter-item"
@change="crud.toQuery()"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="编码/名称">
<el-input
v-model="query.region_code"
clearable
placeholder="输入编码或名称"
class="filter-item"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<rrOperation />
</el-form>
</div> </div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" /> <crudOperation :permission="permission" />
@@ -26,6 +50,20 @@
width="550px" width="550px"
> >
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="生产区域" prop="product_area">
<el-select
v-model="form.product_area"
placeholder=""
style="width: 370px"
>
<el-option
v-for="item in dict.product_area"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="区域编码" prop="region_code"> <el-form-item label="区域编码" prop="region_code">
<el-input v-model="form.region_code" style="width: 370px;" /> <el-input v-model="form.region_code" style="width: 370px;" />
</el-form-item> </el-form-item>
@@ -56,13 +94,13 @@
style="width: 100%;" style="width: 100%;"
@selection-change="crud.selectionChangeHandler" @selection-change="crud.selectionChangeHandler"
> >
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')"/> <el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')" />
<el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')" /> <el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')" />
<el-table-column prop="product_area" label="生产区域" :min-width="flexWidth('product_area',crud.data,'生产区域')" /> <el-table-column prop="product_area" label="生产区域" :min-width="flexWidth('product_area',crud.data,'生产区域')" />
<el-table-column prop="point_type_explain" label="点位类型说明" :min-width="flexWidth('point_type_explain',crud.data,'点位类型说明')" /> <el-table-column prop="point_type_explain" label="点位类型说明" :min-width="flexWidth('point_type_explain',crud.data,'点位类型说明')" />
<el-table-column prop="point_status_explain" label="点位状态说明" :min-width="flexWidth('point_status_explain',crud.data,'点位状态说明')" /> <el-table-column prop="point_status_explain" label="点位状态说明" :min-width="flexWidth('point_status_explain',crud.data,'点位状态说明')" />
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')"/> <el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')"/> <el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" /> <el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right"> <el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -90,6 +128,7 @@ import pagination from '@crud/Pagination'
const defaultForm = { const defaultForm = {
region_code: null, region_code: null,
region_name: null, region_name: null,
product_area: 'A1',
point_type_explain: null, point_type_explain: null,
point_status_explain: null, point_status_explain: null,
remark: null, remark: null,
@@ -102,6 +141,7 @@ const defaultForm = {
} }
export default { export default {
name: 'Region', name: 'Region',
dicts: ['product_area'],
components: { pagination, crudOperation, rrOperation, udOperation }, components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() { cruds() {
@@ -111,6 +151,9 @@ export default {
idField: 'region_code', idField: 'region_code',
sort: 'region_code,desc', sort: 'region_code,desc',
crudMethod: { ...crudRegion }, crudMethod: { ...crudRegion },
query: {
product_area: 'A1'
},
optShow: { optShow: {
add: true, add: true,
edit: false, edit: false,

View File

@@ -10,6 +10,23 @@
label-width="80px" label-width="80px"
label-suffix=":" label-suffix=":"
> >
<el-form-item label="生产区域">
<el-select
v-model="query.product_area"
clearable
filterable
size="mini"
placeholder="区域类型"
class="filter-item"
@change="hand"
>
<el-option
v-for="item in dict.product_area"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="任务号"> <el-form-item label="任务号">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label> <label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-input <el-input
@@ -117,13 +134,13 @@
<el-table-column v-if="true" prop="material_id" label="物料标识" min-width="150" show-overflow-tooltip /> <el-table-column v-if="true" prop="material_id" label="物料标识" min-width="150" show-overflow-tooltip />
<el-table-column prop="task_code" label="任务编码" min-width="100" show-overflow-tooltip /> <el-table-column prop="task_code" label="任务编码" min-width="100" show-overflow-tooltip />
<el-table-column v-if="false" prop="task_type" label="任务类型" /> <el-table-column v-if="false" prop="task_type" label="任务类型" />
<el-table-column prop="acs_task_type" label="acs任务类型" min-width="120" show-overflow-tooltip > <el-table-column prop="acs_task_type" label="acs任务类型" min-width="120" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.acs_task_type[scope.row.acs_task_type] }} {{ dict.label.SCH_TASK_TYPE_DTL[scope.row.acs_task_type] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="task_name" label="任务描述" min-width="120" show-overflow-tooltip /> <el-table-column prop="task_name" label="任务描述" min-width="120" show-overflow-tooltip />
<el-table-column prop="finished_type" label="任务完成类型" min-width="100" show-overflow-tooltip > <el-table-column prop="finished_type" label="任务完成类型" min-width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.task_finished_type[scope.row.finished_type] }} {{ dict.label.task_finished_type[scope.row.finished_type] }}
</template> </template>
@@ -132,7 +149,7 @@
<el-table-column v-if="false" prop="task_status" label="任务状态" /> <el-table-column v-if="false" prop="task_status" label="任务状态" />
<el-table-column prop="product_area" label="生产区域" /> <el-table-column prop="product_area" label="生产区域" />
<el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName" /> <el-table-column prop="task_status_name" label="任务状态" width="95px" :formatter="formatTaskStatusName" />
<el-table-column prop="vehicle_type" label="载具类型" min-width="100" show-overflow-tooltip > <el-table-column prop="vehicle_type" label="载具类型" min-width="100" show-overflow-tooltip>
<template slot-scope="scope"> <template slot-scope="scope">
{{ dict.label.vehicle_type[scope.row.vehicle_type] }} {{ dict.label.vehicle_type[scope.row.vehicle_type] }}
</template> </template>
@@ -141,8 +158,8 @@
<el-table-column prop="point1_region_name" label="起点区域" width="120" /> <el-table-column prop="point1_region_name" label="起点区域" width="120" />
<el-table-column prop="point_code2" label="终点" min-width="100" show-overflow-tooltip /> <el-table-column prop="point_code2" label="终点" min-width="100" show-overflow-tooltip />
<el-table-column prop="point2_region_name" label="终点区域" min-width="120" show-overflow-tooltip /> <el-table-column prop="point2_region_name" label="终点区域" min-width="120" show-overflow-tooltip />
<!-- <el-table-column prop="point_code3" label="等待点" min-width="100" show-overflow-tooltip />--> <!-- <el-table-column prop="point_code3" label="等待点" min-width="100" show-overflow-tooltip />-->
<!-- <el-table-column prop="point3_region_name" label="等待点区域" min-width="120" show-overflow-tooltip />--> <!-- <el-table-column prop="point3_region_name" label="等待点区域" min-width="120" show-overflow-tooltip />-->
<el-table-column prop="point_code3" label="点位3" min-width="100" show-overflow-tooltip /> <el-table-column prop="point_code3" label="点位3" min-width="100" show-overflow-tooltip />
<el-table-column prop="point3_region_name" label="点位3区域" min-width="120" show-overflow-tooltip /> <el-table-column prop="point3_region_name" label="点位3区域" min-width="120" show-overflow-tooltip />
<el-table-column prop="point_code4" label="点位4" min-width="100" show-overflow-tooltip /> <el-table-column prop="point_code4" label="点位4" min-width="100" show-overflow-tooltip />
@@ -214,7 +231,7 @@ import crudClassstandard from '@/api/wms/basedata/master/classstandard'
export default { export default {
name: 'Task', name: 'Task',
dicts: ['acs_task_type', 'vehicle_type', 'task_finished_type'], dicts: ['SCH_TASK_TYPE_DTL', 'vehicle_type', 'task_finished_type', 'product_area'],
components: { components: {
pagination, crudOperation, rrOperation, Treeselect, udOperation pagination, crudOperation, rrOperation, Treeselect, udOperation
}, },
@@ -233,6 +250,7 @@ export default {
next_point_code: '', next_point_code: '',
task_type: '', task_type: '',
finished_type: '', finished_type: '',
product_area: 'A1',
task_status: '' task_status: ''
}, },
optShow: { optShow: {