监控大屏更新
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.ext.dp.service.imp;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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.wms.ext.dp.service.BigScreenService;
|
||||
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.stereotype.Service;
|
||||
|
||||
@@ -162,9 +165,11 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
//查询熟化区的入库转储任务
|
||||
JSONObject jo = new JSONObject();
|
||||
|
||||
//静止中
|
||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "11").process()
|
||||
.getResultJSONArray(0);
|
||||
|
||||
//静止完成
|
||||
JSONArray allrows2 = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "12").process()
|
||||
.getResultJSONArray(0);
|
||||
jo.put("allrows", allrows);
|
||||
@@ -235,6 +240,23 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
//查询熟化仓位信息
|
||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "5").process()
|
||||
.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;
|
||||
}
|
||||
|
||||
@@ -351,6 +373,24 @@ public class BigScreenServiceImpl implements BigScreenService {
|
||||
//查询熟化仓位信息
|
||||
JSONArray allrows = WQL.getWO("QST_BIG_SCREEN").addParam("flag", "10").process()
|
||||
.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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,9 +13,10 @@
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.date_begin TYPEAS s_string
|
||||
输入.date_end TYPEAS s_string
|
||||
输入.flag TYPEAS s_string
|
||||
输入.date_begin TYPEAS s_string
|
||||
输入.date_end TYPEAS s_string
|
||||
输入.labeldtl_uuid TYPEAS s_string
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
@@ -171,6 +172,7 @@ IF 输入.flag = "3"
|
||||
material.formula,
|
||||
point.point_code AS struct_code,
|
||||
ivt.label_code,
|
||||
ivt.labeldtl_uuid,
|
||||
CASE
|
||||
|
||||
WHEN point.is_active = '0' THEN
|
||||
@@ -392,23 +394,41 @@ IF 输入.flag = "8"
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "12"
|
||||
QUERY
|
||||
SELECT
|
||||
round ( sum( ivt.canuse_qty ), 0 ) AS finished_quantity,
|
||||
ivt.label_code,
|
||||
mst.formula,
|
||||
mst.pcsn
|
||||
FROM
|
||||
st_ivt_structivt ivt
|
||||
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
|
||||
WHERE
|
||||
TIMESTAMPDIFF( HOUR, ivt.instorage_time, now( ) ) >= ivt.stand_hour
|
||||
AND point.area_type IN ( '01', '02' )
|
||||
GROUP BY
|
||||
mst.formula,mst.pcsn,ivt.label_code
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
IF 输入.flag = "12"
|
||||
QUERY
|
||||
SELECT
|
||||
round ( sum( ivt.canuse_qty ), 0 ) AS finished_quantity,
|
||||
ivt.label_code,
|
||||
mst.formula,
|
||||
mst.pcsn
|
||||
FROM
|
||||
st_ivt_structivt ivt
|
||||
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
|
||||
WHERE
|
||||
TIMESTAMPDIFF( HOUR, ivt.instorage_time, now( ) ) >= ivt.stand_hour
|
||||
AND point.area_type IN ( '01', '02' )
|
||||
GROUP BY
|
||||
mst.formula,mst.pcsn,ivt.label_code
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
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);
|
||||
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查询任务")
|
||||
@GetMapping("/{id}")
|
||||
|
||||
@@ -131,6 +131,12 @@ public interface ProduceTaskService {
|
||||
* @param 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
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONArray queryIdDevice(String id) {
|
||||
@@ -571,10 +593,10 @@ public class ProduceTaskServiceImpl implements ProduceTaskService {
|
||||
//标签标识
|
||||
String label_uuid = labelObj.getString("label_uuid");
|
||||
HashMap param = new HashMap();
|
||||
param.put("flag","1");
|
||||
param.put("label_uuid",label_uuid);
|
||||
param.put("flag", "1");
|
||||
param.put("label_uuid", label_uuid);
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,6 +121,8 @@ public class InEmptyVehicleTask extends AbstractAcsTask {
|
||||
String task_status = TaskStatusEnum.SURE_START.getCode();
|
||||
String start_point_code = etvObj.optString("start_point_code");
|
||||
String next_point_code = etvObj.optString("next_point_code");
|
||||
|
||||
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("task_uuid", IdUtil.simpleUUID());
|
||||
jsonTask.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
||||
|
||||
@@ -90,6 +90,13 @@ export function materialBack(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function emptyVehicleBack(data) {
|
||||
return request({
|
||||
url: 'api/produceTask/emptyVehicleBack',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function queryIdDevice(id) {
|
||||
return request({
|
||||
@@ -138,5 +145,5 @@ export function queryIvtByPscn(data) {
|
||||
export default {
|
||||
add, edit, del, getDevice, getMaterial,
|
||||
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="warning" icon="el-icon-position" @click="callMaterial">生产叫料</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>
|
||||
</el-col>
|
||||
|
||||
@@ -74,11 +75,12 @@ export default {
|
||||
choice: '',
|
||||
ProduceStatusList: [],
|
||||
materialList: [],
|
||||
tableData: []
|
||||
tableData: [],
|
||||
id: null
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// const id = this.$route.params.id
|
||||
this.id = this.$route.params.id
|
||||
crudProduceTask.getDevice().then(res => {
|
||||
this.deviceList = res
|
||||
})
|
||||
@@ -167,6 +169,18 @@ export default {
|
||||
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) {
|
||||
for (const item of this.ProduceStatusList) {
|
||||
if (item.code === row.produce_status) {
|
||||
|
||||
Reference in New Issue
Block a user