fix: mes下发工单问题
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
package org.nl.wms.autotask;/**
|
||||
* @Author: lyd
|
||||
* @Description:
|
||||
* @Date: 2023/8/2
|
||||
*/public class MaterialSynchronization {
|
||||
}
|
||||
@@ -98,4 +98,12 @@ public class MesToWmsController {
|
||||
return new ResponseEntity<>(mesToWmsService.inboundReport(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/updateOrder")
|
||||
@Log("修改工单")
|
||||
@ApiOperation("修改工单")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> updateOrder(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(mesToWmsService.updateOrder(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,4 +29,6 @@ public interface MesToWmsService {
|
||||
JSONObject outboundReport(JSONObject param);
|
||||
|
||||
JSONObject inboundReport(JSONObject param);
|
||||
|
||||
JSONObject updateOrder(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -35,6 +35,9 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
public JSONObject issueWorkOrderForMes(JSONObject param) {
|
||||
MDC.put("log_file_type", "MES下发工单");
|
||||
log.info("mes传来工单信息:" + param);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", 200);
|
||||
result.put("message", "操作成功");
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||
WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device");
|
||||
WQLObject materialTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
@@ -50,6 +53,26 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
if (ObjectUtil.isEmpty(deviceCode)) {
|
||||
throw new BadRequestException("设备编码错误!");
|
||||
}
|
||||
// 找到当前工单的执行中的,不做处理
|
||||
JSONObject jsonObject = workOrderTab.query("workorder_code = '"
|
||||
+ param.getString("workorder_code") + "' AND order_status = '3' AND is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonObject)) {
|
||||
return result;
|
||||
}
|
||||
// 查找被删除的工单
|
||||
JSONObject deleteOrder = workOrderTab.query("workorder_code = '" + param.getString("workorder_code") + "' " +
|
||||
"AND is_delete = '1'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(deleteOrder)) {
|
||||
deleteOrder.put("is_delete", "0");
|
||||
deleteOrder.put("order_status", "3");
|
||||
deleteOrder.put("create_id", "3");
|
||||
deleteOrder.put("create_name", "MES系统");
|
||||
workOrderTab.update(deleteOrder);
|
||||
return result;
|
||||
}
|
||||
// 查找暂停/未生产/下发的工单
|
||||
JSONObject stopOrder = workOrderTab.query("workorder_code = '"
|
||||
+ param.getString("workorder_code") + "' AND order_status in ('4','1','2')").uniqueResult(0);
|
||||
param.put("plan_qty", param.getString("qty"));
|
||||
param.put("order_status", "3");
|
||||
param.put("material_id", materialCode.getString("material_id"));
|
||||
@@ -121,22 +144,29 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
workOrderCacheTab.insert(param);
|
||||
}
|
||||
} else { // 不是油漆线直接存入
|
||||
// 找正在生产的工单
|
||||
JSONObject orderObjs = workOrderTab
|
||||
.query("device_code = '" + deviceCode.getString("device_code") + "' AND order_status <> '5'")
|
||||
.query("device_code = '" + deviceCode.getString("device_code") + "' AND order_status = '3'")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(orderObjs)) {
|
||||
// 多个工单就完成
|
||||
orderObjs.put("order_status", "5");
|
||||
// 多个工单就暂停
|
||||
orderObjs.put("order_status", "4");
|
||||
workOrderTab.update(orderObjs);
|
||||
}
|
||||
param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
param.put("device_id", deviceCode.getString("device_id"));
|
||||
param.put("device_code", deviceCode.getString("device_code"));
|
||||
workOrderTab.insert(param);
|
||||
if (ObjectUtil.isEmpty(stopOrder)) {
|
||||
param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
param.put("device_id", deviceCode.getString("device_id"));
|
||||
param.put("device_code", deviceCode.getString("device_code"));
|
||||
workOrderTab.insert(param);
|
||||
} else { // 上一个暂停工单
|
||||
// 否则就吧这个工单开启
|
||||
stopOrder.put("create_id", "3");
|
||||
stopOrder.put("create_name", "MES系统");
|
||||
stopOrder.put("order_status", "3");
|
||||
workOrderTab.update(stopOrder);
|
||||
}
|
||||
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", 200);
|
||||
result.put("message", "操作成功");
|
||||
MDC.remove("log_file_type");
|
||||
return result;
|
||||
}
|
||||
@@ -353,4 +383,19 @@ public class MesToWmsServiceImpl implements MesToWmsService {
|
||||
MDC.remove("log_file_type");
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject updateOrder(JSONObject param) {
|
||||
MDC.put("log_file_type", "MES修改工单载具类型");
|
||||
log.info("修改参数:{}", param);
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||
JSONObject jsonObject = workOrderTab.query("workorder_code = '" + param.getString("workorder_code") + "'").uniqueResult(0);
|
||||
jsonObject.put("vehicle_type", param.getString("vehicle_type"));
|
||||
workOrderTab.update(jsonObject);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", 200);
|
||||
result.put("message", "操作成功");
|
||||
MDC.remove("log_file_type");
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
@@ -54,5 +54,5 @@
|
||||
is_success = 输入.is_success
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -79,11 +79,11 @@ public class YqxCallMaterialTask extends AbstractAcsTask {
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
//完成后
|
||||
// 通知mes
|
||||
feedback.put("fscanserialid001", taskObj.getString("task_code"));
|
||||
feedback.put("flocationid979number", taskObj.getString("point_code1"));
|
||||
feedback.put("flpn979", material_point.getString("vehicle_code"));
|
||||
feedback.put("fstoragequantity979", material_point.getString("ivt_qty"));
|
||||
wmsToMesService.taskFeedback(feedback, "WM_INV_MOVE_P011_AGV02");
|
||||
// feedback.put("fscanserialid001", taskObj.getString("task_code"));
|
||||
// feedback.put("flocationid979number", taskObj.getString("point_code1"));
|
||||
// feedback.put("flpn979", material_point.getString("vehicle_code"));
|
||||
// feedback.put("fstoragequantity979", material_point.getString("ivt_qty"));
|
||||
// wmsToMesService.taskFeedback(feedback, "WM_INV_MOVE_P011_AGV02");
|
||||
// 物料点位解锁 并设置空位
|
||||
material_point.put("lock_type", "1");
|
||||
material_point.put("point_status", "1");
|
||||
@@ -272,17 +272,22 @@ public class YqxCallMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + point_code2 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code2 + "存在未完成的任务");
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) {
|
||||
throw new BadRequestException("当前点位" + point_code2 + "存在未完成的任务");
|
||||
}
|
||||
String device_code = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0).getString("device_code");
|
||||
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
||||
if (ObjectUtil.isEmpty(workOrderObj)) {
|
||||
throw new BadRequestException("该设备当前未生产或者已删除");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(material_code)) {
|
||||
material_code = workOrderObj.getString("ext_id");
|
||||
}
|
||||
JSONObject object = materialTab.query("material_code = '" + material_code + "'").uniqueResult(0);
|
||||
String material_id = workOrderObj.getString("material_id");
|
||||
if (ObjectUtil.isNotEmpty(object)) {
|
||||
material_id = object.getString("material_id");
|
||||
}
|
||||
|
||||
|
||||
SchTaskDto dto = SchTaskDto.builder()
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(task_code)
|
||||
|
||||
@@ -229,7 +229,7 @@ public class CpSendMaterialTask extends AbstractAcsTask {
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(task_code)
|
||||
.task_type("task_type")
|
||||
.task_name("豪凯线满料")
|
||||
.task_name("成品")
|
||||
.material_qty(qty)
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
|
||||
@@ -22,17 +22,12 @@ import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.nl.wms.util.RedissonUtils;
|
||||
import org.slf4j.MDC;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.ReadWriteLock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
|
||||
/**
|
||||
@@ -87,14 +82,11 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
//完成后入库
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
//工单标识
|
||||
JSONObject workorderObj = workOrderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
|
||||
JSONObject order = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(endPoint)) {
|
||||
@@ -112,8 +104,8 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
|
||||
endPoint.put("instorage_time", DateUtil.now());
|
||||
endPoint.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
endPoint.put("ivt_qty", requestObj.getString("qty"));
|
||||
endPoint.put("standing_time", workorderObj.getString("standing_time"));
|
||||
endPoint.put("container_id", workorderObj.getString("container_id"));
|
||||
endPoint.put("standing_time", order.getString("standing_time"));
|
||||
endPoint.put("container_id", order.getString("container_id"));
|
||||
endPoint.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
endPoint.put("vehicle_type", taskObj.getString("vehicle_type"));
|
||||
endPoint.put("update_time", DateUtil.now());
|
||||
|
||||
@@ -307,6 +307,7 @@
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<udOperation
|
||||
:is-visiable-del="false"
|
||||
:data="scope.row"
|
||||
:permission="permission"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user