监控大屏更新
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.ext.dp.service.imp;
|
package org.nl.wms.ext.dp.service.imp;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -12,6 +13,8 @@ import org.nl.modules.system.service.dto.UserDto;
|
|||||||
import org.nl.utils.RsaUtils;
|
import org.nl.utils.RsaUtils;
|
||||||
import org.nl.wms.ext.dp.service.BigScreenService;
|
import org.nl.wms.ext.dp.service.BigScreenService;
|
||||||
import org.nl.wql.WQL;
|
import org.nl.wql.WQL;
|
||||||
|
import org.nl.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wql.core.engine.object.WO;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -162,9 +165,11 @@ public class BigScreenServiceImpl implements BigScreenService {
|
|||||||
//查询熟化区的入库转储任务
|
//查询熟化区的入库转储任务
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
|
|
||||||
|
//静止中
|
||||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "11").process()
|
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "11").process()
|
||||||
.getResultJSONArray(0);
|
.getResultJSONArray(0);
|
||||||
|
|
||||||
|
//静止完成
|
||||||
JSONArray allrows2 = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "12").process()
|
JSONArray allrows2 = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "12").process()
|
||||||
.getResultJSONArray(0);
|
.getResultJSONArray(0);
|
||||||
jo.put("allrows", allrows);
|
jo.put("allrows", allrows);
|
||||||
@@ -235,6 +240,23 @@ public class BigScreenServiceImpl implements BigScreenService {
|
|||||||
//查询熟化仓位信息
|
//查询熟化仓位信息
|
||||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "5").process()
|
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "5").process()
|
||||||
.getResultJSONArray(0);
|
.getResultJSONArray(0);
|
||||||
|
//物料标签明细表【md_base_materialLabelDtl】
|
||||||
|
WQLObject materialLabelDtlTab = WQLObject.getWQLObject("md_base_materialLabelDtl");
|
||||||
|
//拼接库存信息
|
||||||
|
for (int i = 0; i < allrows.size(); i++) {
|
||||||
|
JSONObject json = allrows.getJSONObject(i);
|
||||||
|
String labeldtl_uuid = json.getString("labeldtl_uuid");
|
||||||
|
if (StrUtil.isNotEmpty(labeldtl_uuid)) {
|
||||||
|
JSONObject jsonObject1 = materialLabelDtlTab.query("labeldtl_uuid = '" + labeldtl_uuid + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonObject1)) {
|
||||||
|
JSONObject labelObj = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "13").addParam("labeldtl_uuid", labeldtl_uuid).process().uniqueResult(0);
|
||||||
|
//配方-批次-重量(YC-B8-1000)
|
||||||
|
String material_ivt_info = labelObj.getString("formula") + "-" + labelObj.getString("pcsn") + "-" + labelObj.getString("weight");
|
||||||
|
json.put("material_ivt_info", material_ivt_info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return allrows;
|
return allrows;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,6 +373,24 @@ public class BigScreenServiceImpl implements BigScreenService {
|
|||||||
//查询熟化仓位信息
|
//查询熟化仓位信息
|
||||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "10").process()
|
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "10").process()
|
||||||
.getResultJSONArray(0);
|
.getResultJSONArray(0);
|
||||||
|
//物料标签明细表【md_base_materialLabelDtl】
|
||||||
|
WQLObject materialLabelDtlTab = WQLObject.getWQLObject("md_base_materialLabelDtl");
|
||||||
|
//拼接库存信息
|
||||||
|
for (int i = 0; i < allrows.size(); i++) {
|
||||||
|
JSONObject json = allrows.getJSONObject(i);
|
||||||
|
String labeldtl_uuid = json.getString("labeldtl_uuid");
|
||||||
|
if (StrUtil.isNotEmpty(labeldtl_uuid)) {
|
||||||
|
JSONObject jsonObject1 = materialLabelDtlTab.query("labeldtl_uuid = '" + labeldtl_uuid + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonObject1)) {
|
||||||
|
JSONObject labelObj = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "13").addParam("labeldtl_uuid", labeldtl_uuid).process().uniqueResult(0);
|
||||||
|
//配方-批次-重量(YC-B8-1000)
|
||||||
|
String material_ivt_info = labelObj.getString("formula") + "-" + labelObj.getString("pcsn") + "-" + labelObj.getString("weight");
|
||||||
|
json.put("material_ivt_info", material_ivt_info);
|
||||||
|
json.put("color", labelObj.getString("color"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
return allrows;
|
return allrows;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,10 @@
|
|||||||
#################################################
|
#################################################
|
||||||
## 表字段对应输入参数
|
## 表字段对应输入参数
|
||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
输入.date_begin TYPEAS s_string
|
输入.date_begin TYPEAS s_string
|
||||||
输入.date_end TYPEAS s_string
|
输入.date_end TYPEAS s_string
|
||||||
|
输入.labeldtl_uuid TYPEAS s_string
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
--这边列出来的临时表就会在运行期动态创建
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
@@ -171,6 +172,7 @@ IF 输入.flag = "3"
|
|||||||
material.formula,
|
material.formula,
|
||||||
point.point_code AS struct_code,
|
point.point_code AS struct_code,
|
||||||
ivt.label_code,
|
ivt.label_code,
|
||||||
|
ivt.labeldtl_uuid,
|
||||||
CASE
|
CASE
|
||||||
|
|
||||||
WHEN point.is_active = '0' THEN
|
WHEN point.is_active = '0' THEN
|
||||||
@@ -392,23 +394,41 @@ IF 输入.flag = "8"
|
|||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "12"
|
IF 输入.flag = "12"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
round ( sum( ivt.canuse_qty ), 0 ) AS finished_quantity,
|
round ( sum( ivt.canuse_qty ), 0 ) AS finished_quantity,
|
||||||
ivt.label_code,
|
ivt.label_code,
|
||||||
mst.formula,
|
mst.formula,
|
||||||
mst.pcsn
|
mst.pcsn
|
||||||
FROM
|
FROM
|
||||||
st_ivt_structivt ivt
|
st_ivt_structivt ivt
|
||||||
LEFT JOIN sch_base_point point ON point.point_uuid = ivt.struct_uuid
|
LEFT JOIN sch_base_point point ON point.point_uuid = ivt.struct_uuid
|
||||||
LEFT JOIN md_base_materialLabelMst mst ON ivt.label_uuid = ivt.label_uuid
|
LEFT JOIN md_base_materialLabelMst mst ON ivt.label_uuid = ivt.label_uuid
|
||||||
WHERE
|
WHERE
|
||||||
TIMESTAMPDIFF( HOUR, ivt.instorage_time, now( ) ) >= ivt.stand_hour
|
TIMESTAMPDIFF( HOUR, ivt.instorage_time, now( ) ) >= ivt.stand_hour
|
||||||
AND point.area_type IN ( '01', '02' )
|
AND point.area_type IN ( '01', '02' )
|
||||||
GROUP BY
|
GROUP BY
|
||||||
mst.formula,mst.pcsn,ivt.label_code
|
mst.formula,mst.pcsn,ivt.label_code
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "13"
|
||||||
|
SELECT
|
||||||
|
mst.material_uuid,
|
||||||
|
mst.material_code,
|
||||||
|
mst.material_name,
|
||||||
|
mst.formula,
|
||||||
|
mst.pcsn,
|
||||||
|
mst.color,
|
||||||
|
dtl.weight
|
||||||
|
FROM
|
||||||
|
md_base_materialLabelDtl dtl
|
||||||
|
LEFT JOIN md_base_materialLabelMst mst ON dtl.label_uuid = mst.label_uuid
|
||||||
|
OPTION 输入.labeldtl_uuid <> ""
|
||||||
|
dtl.labeldtl_uuid = 输入.labeldtl_uuid
|
||||||
|
ENDOPTION
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,12 @@ public class ProduceTaskController {
|
|||||||
produceTaskService.materialBack(map);
|
produceTaskService.materialBack(map);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@ApiOperation("空托回库")
|
||||||
|
@PostMapping("/emptyVehicleBack")
|
||||||
|
public ResponseEntity<Object> emptyVehicleBack(@RequestBody Map map) {
|
||||||
|
produceTaskService.emptyVehicleBack(map);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("根据设备id查询任务")
|
@ApiOperation("根据设备id查询任务")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
|
|||||||
@@ -131,6 +131,12 @@ public interface ProduceTaskService {
|
|||||||
* @param map
|
* @param map
|
||||||
*/
|
*/
|
||||||
void materialBack(Map map);
|
void materialBack(Map map);
|
||||||
|
/**
|
||||||
|
* 空托回库
|
||||||
|
*
|
||||||
|
* @param map
|
||||||
|
*/
|
||||||
|
void emptyVehicleBack(Map map);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -507,6 +507,28 @@ public class ProduceTaskServiceImpl implements ProduceTaskService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void emptyVehicleBack(Map map) {
|
||||||
|
String id = MapUtil.getStr(map, "id");
|
||||||
|
if (StrUtil.isEmpty(id)) throw new BadRequestException("所选屏位置不能为空!");
|
||||||
|
|
||||||
|
String point_code = "BCPSL0" + id;
|
||||||
|
//判断点位上有没有托盘,没有托盘不允许回库
|
||||||
|
// JSONObject pointObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + point_code + "'").uniqueResult(0);
|
||||||
|
// String vehicle_code = pointObj.optString("vehicle_code");
|
||||||
|
|
||||||
|
//判断是否有到该设备的未完成的AGV任务
|
||||||
|
//任务基础表【sch_base_task】
|
||||||
|
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
|
||||||
|
JSONObject taskJson = taskTab.query(" is_delete='0' and task_status<>'06' and start_point_code = '" + point_code + "' and handle_class = '" + InEmptyVehicleTask.class.getName() + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(taskJson)) throw new BadRequestException("该设备有未完成的搬运任务,不能重复操作!");
|
||||||
|
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("start_point_code", point_code);
|
||||||
|
InEmptyVehicleTask inEmptyVehicleTask = new InEmptyVehicleTask();
|
||||||
|
inEmptyVehicleTask.createTask(param);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public JSONArray queryIdDevice(String id) {
|
public JSONArray queryIdDevice(String id) {
|
||||||
@@ -571,10 +593,10 @@ public class ProduceTaskServiceImpl implements ProduceTaskService {
|
|||||||
//标签标识
|
//标签标识
|
||||||
String label_uuid = labelObj.getString("label_uuid");
|
String label_uuid = labelObj.getString("label_uuid");
|
||||||
HashMap param = new HashMap();
|
HashMap param = new HashMap();
|
||||||
param.put("flag","1");
|
param.put("flag", "1");
|
||||||
param.put("label_uuid",label_uuid);
|
param.put("label_uuid", label_uuid);
|
||||||
JSONObject jsonObject = WQL.getWO("QPDM_PRODUCETASK_005").addParamMap(param).process().uniqueResult(0);
|
JSONObject jsonObject = WQL.getWO("QPDM_PRODUCETASK_005").addParamMap(param).process().uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(jsonObject))return jsonObject.getString("ivt_qty");
|
if (ObjectUtil.isNotEmpty(jsonObject)) return jsonObject.getString("ivt_qty");
|
||||||
return "0";
|
return "0";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,6 +121,8 @@ public class InEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
String task_status = TaskStatusEnum.SURE_START.getCode();
|
String task_status = TaskStatusEnum.SURE_START.getCode();
|
||||||
String start_point_code = etvObj.optString("start_point_code");
|
String start_point_code = etvObj.optString("start_point_code");
|
||||||
String next_point_code = etvObj.optString("next_point_code");
|
String next_point_code = etvObj.optString("next_point_code");
|
||||||
|
|
||||||
|
|
||||||
JSONObject jsonTask = new JSONObject();
|
JSONObject jsonTask = new JSONObject();
|
||||||
jsonTask.put("task_uuid", IdUtil.simpleUUID());
|
jsonTask.put("task_uuid", IdUtil.simpleUUID());
|
||||||
jsonTask.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
jsonTask.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||||
|
|||||||
@@ -90,6 +90,13 @@ export function materialBack(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function emptyVehicleBack(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/produceTask/emptyVehicleBack',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function queryIdDevice(id) {
|
export function queryIdDevice(id) {
|
||||||
return request({
|
return request({
|
||||||
@@ -138,5 +145,5 @@ export function queryIvtByPscn(data) {
|
|||||||
export default {
|
export default {
|
||||||
add, edit, del, getDevice, getMaterial,
|
add, edit, del, getDevice, getMaterial,
|
||||||
getProduceStatus, importExcel, queryTask, querAllTask,
|
getProduceStatus, importExcel, queryTask, querAllTask,
|
||||||
callMaterial, finish, queryIdDevice, popSeek, queryOne, saveOrder, forceFinish, materialBack, queryIvtByPscn
|
callMaterial, finish, queryIdDevice, popSeek, queryOne, saveOrder, forceFinish, materialBack, queryIvtByPscn, emptyVehicleBack
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,8 @@
|
|||||||
<el-button type="primary" icon="el-icon-thumb" @click="fresh">界面刷新</el-button>
|
<el-button type="primary" icon="el-icon-thumb" @click="fresh">界面刷新</el-button>
|
||||||
<el-button type="warning" icon="el-icon-position" @click="callMaterial">生产叫料</el-button>
|
<el-button type="warning" icon="el-icon-position" @click="callMaterial">生产叫料</el-button>
|
||||||
<el-button type="success" icon="el-icon-finished" @click="finish">生产完成</el-button>
|
<el-button type="success" icon="el-icon-finished" @click="finish">生产完成</el-button>
|
||||||
<el-button type="info" icon="el-icon-top-left" @click="materialBack">余料回库</el-button>
|
<el-button type="danger" icon="el-icon-top-left" @click="materialBack">余料回库</el-button>
|
||||||
|
<el-button type="info" icon="el-icon-top-left" @click="emptyVehicleBack">空托回库</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
@@ -74,11 +75,12 @@ export default {
|
|||||||
choice: '',
|
choice: '',
|
||||||
ProduceStatusList: [],
|
ProduceStatusList: [],
|
||||||
materialList: [],
|
materialList: [],
|
||||||
tableData: []
|
tableData: [],
|
||||||
|
id: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// const id = this.$route.params.id
|
this.id = this.$route.params.id
|
||||||
crudProduceTask.getDevice().then(res => {
|
crudProduceTask.getDevice().then(res => {
|
||||||
this.deviceList = res
|
this.deviceList = res
|
||||||
})
|
})
|
||||||
@@ -167,6 +169,18 @@ export default {
|
|||||||
console.log(err.response.data.message)
|
console.log(err.response.data.message)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
emptyVehicleBack() {
|
||||||
|
const data = {
|
||||||
|
id: this.id
|
||||||
|
}
|
||||||
|
debugger
|
||||||
|
crudProduceTask.emptyVehicleBack(data).then(res => {
|
||||||
|
this.notify('操作成功', 'success')
|
||||||
|
this.queryId()
|
||||||
|
}).cache(err => {
|
||||||
|
console.log(err.response.data.message)
|
||||||
|
})
|
||||||
|
},
|
||||||
formatStatusName(row, column) {
|
formatStatusName(row, column) {
|
||||||
for (const item of this.ProduceStatusList) {
|
for (const item of this.ProduceStatusList) {
|
||||||
if (item.code === row.produce_status) {
|
if (item.code === row.produce_status) {
|
||||||
|
|||||||
Reference in New Issue
Block a user