代码修改

This commit is contained in:
ludj
2023-04-24 14:41:30 +08:00
parent 2d9f011c61
commit f1f306359b
13 changed files with 93 additions and 288 deletions

View File

@@ -39,8 +39,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.reactive.TransactionContextManager;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import java.util.HashMap;
import java.util.Map;
@@ -258,7 +256,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
e.printStackTrace();
}
}
break;
case "2":
// 叫料出库
@@ -276,7 +273,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 批次 物料,客户要从排产单里面去取
jsonObject.put("material_id", produceInfoByCode.getString("material_id"));
callMaterialTask.createTask((JSONObject) JSON.toJSON(jsonObject));
break;
case "3":
@@ -331,41 +327,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
callEmptyVehicleTask.createTask((JSONObject) JSON.toJSON(jsonObject));
break;
// 生产rgv搬运任务
case "5":
jsonObject.put("next_point_code", device_code);
jsonObject.put("create_mode", "01");
// 1 判断有没有执行的Rgv搬运任务
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_type='04' and is_delete='0' and acs_task_type<>'07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(taskObj)) {
JSONObject result = new JSONObject();
result.put("status", HttpStatus.CREATED.value());
result.put("message", "失败!");
result.put("data", new JSONObject());
return result;
}
// 寻找起点
// 更新所有设备的点位的状态
// JSONArray pointConveyArr = pointTable.query("area_type='07' and device_point_type ='01'
// ").getResultJSONArray(0);
JSONArray pointConveyArr = WQL.getWO("ACSTOMES_001").addParam("area_type", "07").addParam("flag", "4").process().getResultJSONArray(0);
PointUpdateUtil.updatePoint(pointConveyArr);
// 假如没有设置哪个输送线先出,没有按照先进先出
JSONObject param = new JSONObject();
String rule = WQLObject.getWQLObject("sys_param").query("code='is_outrule'").uniqueResult(0).getString("value");
if (StrUtil.equals(rule, "1")) {
param = WQL.getWO("ACSTOMES_001").addParam("flag", "3").process().uniqueResult(0);
} else {
param = WQL.getWO("ACSTOMES_001").addParam("flag", "2").process().uniqueResult(0);
}
if (ObjectUtil.isEmpty(param)) {
throw new BadRequestException("未找到合适的输送线可以出!");
}
jsonObject.put("start_point_code", param.getString("point_code"));
jsonObject.put("vehicle_code", param.getString("vehicle_code"));
rgvTask.createTask((JSONObject) JSON.toJSON(jsonObject));
break;
}
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
@@ -391,8 +352,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
vehicle_code = jsonObject.get("vehicle_code").toString();
}
if (device_code.startsWith("FJJXSXLW") && StrUtil.isNotBlank(vehicle_code)) {
WQLObject.getWQLObject("st_buss_vehiclegroup")
.delete("vehicle_code = '" + vehicle_code + "'");
WQLObject.getWQLObject("st_buss_vehiclegroup").delete("vehicle_code = '" + vehicle_code + "'");
}
String qty = String.valueOf(jsonObject.get("qty"));
// 产品编码
@@ -554,7 +514,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
String start_area = taskobj.getString("start_area");
JSONObject requestParam = taskobj.getJSONObject("request_param");
if ("22".equals(start_area)) {
JSONObject materialObj =WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + requestParam.getString("material_id") + "'").uniqueResult(0);
JSONObject materialObj = WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + requestParam.getString("material_id") + "'").uniqueResult(0);
groupObj.put("material_code", materialObj.getString("material_code"));
groupObj.put("material_name", materialObj.getString("material_name"));
groupObj.put("material_spec", materialObj.getString("material_spec"));
@@ -604,20 +564,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject param = new JSONObject();
param.put("start_point_code", device_code);
param.put("vehicle_code", vehicle_code);
// 根据起点去找终点
ConveyorTask task = new ConveyorTask();
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
String device_id =
pointTable
.query("point_code ='" + device_code + "'")
.uniqueResult(0)
.getString("device_id");
String next_point_code =
pointTable
.query("device_id ='" + device_id + "' and device_point_type ='02'")
.uniqueResult(0)
.getString("point_code");
String device_id = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("device_id");
String next_point_code = pointTable.query("device_id ='" + device_id + "' and device_point_type ='02'").uniqueResult(0).getString("point_code");
param.put("next_point_code", next_point_code);
}
JSONObject result = new JSONObject();
@@ -652,10 +602,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("托盘条码不能为空!");
}
JSONObject vehicleObj =
WQLObject.getWQLObject("st_buss_vehiclegroup")
.query("vehicle_code='" + vehicle_code + "'")
.uniqueResult(0);
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(vehicleObj)) {
throw new BadRequestException("为找到托盘号为'" + vehicle_code + "'的组盘信息!");
}
@@ -741,18 +688,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
log.debug("ACS的getVehicleInfoBycode请求参数为:" + jsonObject);
String device_code = (String) jsonObject.get("device_code");
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
String vehicle_code =
point_table
.query("point_code='" + device_code + "'")
.uniqueResult(0)
.getString("vehicle_code");
String vehicle_code = point_table.query("point_code='" + device_code + "'").uniqueResult(0).getString("vehicle_code");
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("未找到该点位上的托盘信息!");
}
JSONObject vehicleObj =
WQLObject.getWQLObject("st_buss_vehiclegroup")
.query("vehicle_code='" + vehicle_code + "' AND is_delete='0'")
.uniqueResult(0);
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "' AND is_delete='0'").uniqueResult(0);
if (ObjectUtil.isEmpty(vehicleObj)) {
throw new BadRequestException("未找到托盘号为'" + vehicle_code + "'的托盘信息!");
}
@@ -798,23 +738,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.equals("FJJXS1", device_code)
|| StrUtil.equals("FJJXS2", device_code)
|| StrUtil.equals("FJJXS3", device_code)) {
device_id =
WQLObject.getWQLObject("pdm_base_device")
.query("device_code ='" + device_code + "'")
.uniqueResult(0)
.getString("device_id");
device_id = WQLObject.getWQLObject("pdm_base_device").query("device_code ='" + device_code + "'").uniqueResult(0).getString("device_id");
} else {
device_id =
WQLObject.getWQLObject("sch_base_point")
.query("point_code='" + device_code + "'")
.uniqueResult(0)
.getString("device_id");
device_id = WQLObject.getWQLObject("sch_base_point").query("point_code='" + device_code + "'").uniqueResult(0).getString("device_id");
}
// 根据物料code 去找物料id
JSONObject materiObj =
WQLObject.getWQLObject("MD_ME_Material")
.query("material_code='" + material_code + "'")
.uniqueResult(0);
JSONObject materiObj = WQLObject.getWQLObject("MD_ME_Material").query("material_code='" + material_code + "'").uniqueResult(0);
if (!StrUtil.equals(device_id, taskObj.getString("device_id"))) {
throw new BadRequestException("设备标识不一样!");
}
@@ -836,6 +765,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 排产工单完成!
if (StrUtil.equals("2", type)) {
taskObj.put("producetask_status", "05");
taskObj.put("producetask_finish_type", "01");
taskObj.put("real_qty", qty);
}
taskTable.update(taskObj);
@@ -940,10 +870,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.isEmpty(material_code)) {
throw new BadRequestException("物料条码不能为空!");
}
JSONObject returnjo =
WQLObject.getWQLObject("MD_ME_CribbingInfo")
.query("material_code='" + material_code + "'")
.uniqueResult(0);
JSONObject returnjo = WQLObject.getWQLObject("MD_ME_CribbingInfo").query("material_code='" + material_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(returnjo)) {
throw new BadRequestException("未找到物料编码为'" + material_code + "'的垛形参数信息!");
}
@@ -980,10 +907,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.equals(status, "UNKNOWN") || StrUtil.equals("UNAVAILABLE", status)) {
device_status = "5";
}
JSONObject statsObj =
deviceStatus_table
.query("device_type ='1' and device_code ='" + agv_no + "'")
.uniqueResult(0);
JSONObject statsObj = deviceStatus_table.query("device_type ='1' and device_code ='" + agv_no + "'").uniqueResult(0);
statsObj.put("device_status", device_status);
statsObj.put("update_time", DateUtil.now());
deviceStatus_table.update(statsObj);
@@ -1000,34 +924,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public Map<String, Object> queryCribbingInfo(Map jsonObject) {
log.debug("ACS的queryCribbingInfo请求参数为:" + jsonObject);
String device_code = (String) jsonObject.get("device_code");
JSONObject task =
WQLObject.getWQLObject("sch_base_task")
.query(
"is_delete = '0' AND task_status <> '07' AND next_point_code = '"
+ device_code
+ "'")
.uniqueResult(0);
JSONObject task = WQLObject.getWQLObject("sch_base_task").query(
"is_delete = '0' AND task_status <> '07' AND next_point_code = '" + device_code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task)) {
throw new BadRequestException("当前点位有空托任务未完成!");
}
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
// JSONObject produceInfoByCode = this.getProduceInfoByCode(device_code);
// 根据点位获取排产单
// String material_id = produceInfoByCode.getString("material_id");
String vehicle_code =
pointTable
.query("point_code = '" + device_code + "'")
.uniqueResult(0)
.getString("vehicle_code");
String vehicle_code = pointTable.query("point_code = '" + device_code + "'").uniqueResult(0).getString("vehicle_code");
WQLObject group_table = WQLObject.getWQLObject("st_buss_vehiclegroup");
// 从组盘表里面去获取组盘信息
JSONObject result = group_table.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(result)) {
String product_code =
WQLObject.getWQLObject("md_me_cribbinginfo")
.query("material_id = " + result.getString("material_id"))
.uniqueResult(0)
.getString("product_code");
String product_code = WQLObject.getWQLObject("md_me_cribbinginfo").query("material_id = " + result.getString("material_id")).uniqueResult(0).getString("product_code");
result.put("product_code", product_code);
}
JSONObject resultJSON = new JSONObject();
@@ -1041,17 +950,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public Map<String, Object> queryPrintInfoByCode(Map jsonObject) {
log.debug("ACS的queryPrintInfoByCode请求参数为:" + jsonObject);
// 找出最近的一个到包装位的任务
JSONObject taskObj =
WQLObject.getWQLObject("sch_base_task")
.query(
"next_point_code='BZSLW' and is_delete='0' and task_type='07'", "update_time desc")
.uniqueResult(0);
JSONObject result =
WQL.getWO("ACSTOMES_001")
.addParam("flag", "9")
.addParam("task_id", taskObj.getString("task_id"))
.process()
.uniqueResult(0);
JSONObject taskObj = WQLObject.getWQLObject("sch_base_task").query(
"next_point_code='BZSLW' and is_delete='0' and task_type='07'", "update_time desc").uniqueResult(0);
JSONObject result = WQL.getWO("ACSTOMES_001").addParam("flag", "9").addParam("task_id", taskObj.getString("task_id")).process().uniqueResult(0);
return result;
}
@@ -1064,17 +965,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
WQLObject group_table = WQLObject.getWQLObject("st_buss_vehiclegroup");
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
JSONObject taskObj =
task_table
.query("task_code ='" + task_code + "' and task_status='06'and is_delete='0'")
.uniqueResult(0);
JSONObject taskObj = task_table.query("task_code ='" + task_code + "' and task_status='06'and is_delete='0'").uniqueResult(0);
if (ObjectUtil.isEmpty(taskObj)) {
throw new BadRequestException("任务号为'" + task_code + "' 执行中的任务未找到");
}
String start_point_code = taskObj.getString("start_point_code");
String next_point_code = taskObj.getString("next_point_code");
JSONObject startObj =
point_table.query("point_code ='" + start_point_code + "'").uniqueResult(0);
JSONObject startObj = point_table.query("point_code ='" + start_point_code + "'").uniqueResult(0);
if (!StrUtil.equals(startObj.getString("area_type"), AreaEnum.YZQY.getCode())) {
throw new BadRequestException("只能取消任务类型为下料任务!");
@@ -1084,13 +981,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
nextObj.put("lock_type", "00");
point_table.update(nextObj);
task_table.delete(taskObj);
JSONObject groupObj =
group_table.query("task_id ='" + taskObj.getString("task_id") + "'").uniqueResult(0);
JSONObject groupObj = group_table.query("task_id ='" + taskObj.getString("task_id") + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(groupObj)) {
throw new BadRequestException("找不到task_id为" + taskObj.getString("task_id") + "的盘信息");
}
group_table.delete(groupObj);
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "任务状态反馈成功!");

View File

@@ -47,8 +47,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask);
HashMap map = new HashMap();
map.put("bill_status", "40");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
.update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
}
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
@@ -60,8 +59,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
/// 审核单据
HashMap map = new HashMap();
map.put("bill_status", "50");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
.update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
// 解锁仓位,托盘信息,回写到点位上去
String vehicle_code = jsonTask.getString("vehicle_code");
// 插入刚托盘木托盘表

View File

@@ -6,15 +6,14 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.UserInfoUtil;
import org.nl.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.common.utils.UserInfoUtil;
import org.nl.utils.SpringContextHolder;
import org.nl.wms.WorkProcedureEnum;
import org.nl.wms.common.PointUpdateUtil;
import org.nl.wms.common.SortingUtil;
import org.nl.wms.common.StructFindUtil;
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
import org.nl.wms.ext.acs.service.impl.WmsToJnServiceImpl;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.AreaEnum;
@@ -27,10 +26,13 @@ import org.nl.wms.st.ivt.StoreIvtServiceImpl;
import org.nl.wql.WQL;
import org.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
/**
* 1、半托缓存到分拣机械手
*
*/
@Service
public class CallMaterialTask extends AbstractAcsTask {
private final String THIS_CLASS = CallMaterialTask.class.getName();
@@ -169,15 +171,7 @@ public class CallMaterialTask extends AbstractAcsTask {
public void findStartPoint() {
String task_status = TaskStatusEnum.SURE_START.getCode();
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
JSONArray taskArry =
taskTab
.query(
"task_status='"
+ task_status
+ "' AND handle_class='"
+ THIS_CLASS
+ "' AND is_delete='0' ")
.getResultJSONArray(0);
JSONArray taskArry = taskTab.query("task_status='" + task_status + "' AND handle_class='" + THIS_CLASS + "' AND is_delete='0' ").getResultJSONArray(0);
for (int i = 0; i < taskArry.size(); i++) {
JSONObject taskObj = taskArry.getJSONObject(i);
String task_id = taskObj.getString("task_id");
@@ -203,8 +197,7 @@ public class CallMaterialTask extends AbstractAcsTask {
// 终点加锁
HashMap lock_map = new HashMap();
lock_map.put("lock_type", "01");
WQLObject.getWQLObject("sch_base_point")
.update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'");
WQLObject.getWQLObject("sch_base_point").update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'");
// 修改任务状态
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
@@ -251,6 +244,9 @@ public class CallMaterialTask extends AbstractAcsTask {
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
}
PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
String start_area = "";
@@ -347,6 +343,14 @@ public class CallMaterialTask extends AbstractAcsTask {
qty_unit_id = outStructObj.getString("qty_unit_id");
start_point_code = outStructObj.getString("struct_code");
// 判断起点有没有未完成的指令
JSONObject beforTaskObj2 = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj2)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj2.getString("task_code") + "' 未完成!");
}
vehicle_code = outStructObj.getString("vehicle_code");
// 创建出库单据
JSONObject iosObj = new JSONObject();
@@ -430,10 +434,7 @@ public class CallMaterialTask extends AbstractAcsTask {
@Override
public void forceFinish(String task_id) {
JSONObject taskObj =
WQLObject.getWQLObject("SCH_BASE_Task")
.query("task_id = '" + task_id + "'")
.uniqueResult(0);
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
}

View File

@@ -1,117 +0,0 @@
package org.nl.wms.sch.manage.buss;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.UserInfoUtil;
import org.nl.exception.BadRequestException;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.AreaEnum;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service;
/**
*
*/
@Service
public class ConveyorTask extends AbstractAcsTask {
private final String THIS_CLASS = ConveyorTask.class.getName();
@Override
public void updateTaskStatus(JSONObject taskObj, String status) {
/**
*改变任务状态
**/
String task_id = taskObj.getString("task_id");
WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
//更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
}
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
// 更新任务状态为完成
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
jsonTask.put("update_time", DateUtil.now());
jsonTask.put("remark", "任务执行完成");
taskTab.update(jsonTask);
}
}
@Override
public void findStartPoint() {
}
@Override
public void findNextPoint() {
}
@Override
public String createTask(JSONObject form) {
JSONObject taskObj = new JSONObject();
//只需要传起点就好,跟载具
String vehicle_code = form.getString("vehicle_code");
String start_point_code = form.getString("start_point_code");
String next_point_code = form.getString("next_point_code");
if (StrUtil.isEmpty(vehicle_code)) {
throw new BadRequestException("载具不能为空!");
}
if (StrUtil.isEmpty(start_point_code)) {
throw new BadRequestException("起点不能为空!");
}
taskObj.put("task_id", IdUtil.getSnowflake(1, 1).nextId() + "");
String task_status = TaskStatusEnum.EXECUTING.getCode();
taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
taskObj.put("task_type", "06");
//输送任务
taskObj.put("acs_task_type", "2");
String start_area = AreaEnum.RYSSXQ.getCode();
String next_area = AreaEnum.RYSSXQ.getCode();
taskObj.put("task_status", task_status);
taskObj.put("start_point_code", start_point_code);
taskObj.put("start_area", start_area);
taskObj.put("next_area", next_area);
taskObj.put("next_point_code", next_point_code);
taskObj.put("vehicle_code", vehicle_code);
taskObj.put("create_name", UserInfoUtil.getNickName());
taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
taskObj.put("create_time", DateUtil.now());
taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
taskObj.put("update_name", UserInfoUtil.getNickName());
taskObj.put("update_time", DateUtil.now());
taskObj.put("handle_class", THIS_CLASS);
//任务基础表【sch_base_task】
WQLObject.getWQLObject("sch_base_task").insert(taskObj);
return taskObj.getString("task_id");
}
@Override
public void forceFinish(String task_id) {
if (StrUtil.isEmpty(task_id)) {
throw new BadRequestException("任务id不能为空");
}
JSONObject taskjo = WQLObject.getWQLObject("sch_base_task").query("task_id='" + task_id + "'").uniqueResult(0);
taskjo.getString("taskfinish_mode");
this.updateTaskStatus(taskjo, TaskStatusEnum.FINISHED.getCode());
}
@Override
public void pullBack(String task_id) {
}
@Override
public void cancel(String task_id) {
}
}

View File

@@ -26,6 +26,11 @@ import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
* {"is_full":"1","device_code":"BTHCW02","type":"1","vehicle_code":"0000","start_point_code":"BTHCW02","create_mode":"01"}
* 半托缓存到包装线送料
* 如半托缓存位上的料呆太久了,通过电器触发强制从半托缓存到包装线
*/
@Service
@RequiredArgsConstructor
@Slf4j
@@ -134,7 +139,6 @@ public class FmjToPackIngTask extends AbstractAcsTask {
}
String next_point_code = "BZSLW";
String material_id = ivtObj.getString("material_id");
String is_full = ivtObj.getString("is_full");
String qty = ivtObj.getString("canuse_qty");
String pcsn = ivtObj.getString("pcsn");
String vehicle_code = ivtObj.getString("vehicle_code");

View File

@@ -68,9 +68,7 @@ public class RgvTask extends AbstractAcsTask {
if (StrUtil.isEmpty(start_point_code)) {
throw new BadRequestException("起点不能为空!");
}
JSONObject beforTaskObj = WQLObject.getWQLObject("sch_base_task").
query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
JSONObject beforTaskObj = WQLObject.getWQLObject("sch_base_task").query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
}

View File

@@ -131,7 +131,6 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
}
if (StrUtil.isNotEmpty(next_point_code)) {
PointDto nextPoint = pointService.findByCode(next_point_code);
task_status = TaskStatusEnum.START_AND_POINT.getCode();
// 锁定终点
HashMap lock_map = new HashMap();

View File

@@ -170,9 +170,7 @@ public class StructToConveyorTask extends AbstractAcsTask {
throw new BadRequestException("终点不能为空!");
}
//判断起点有没有未完成的指令
JSONObject beforTaskObj = taskTable.
query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
}

View File

@@ -18,10 +18,8 @@ import org.nl.wms.sch.service.dto.PointDto;
import org.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
* 压机到货架
* 压机到到输送线任务
*/
@Service
@Slf4j

View File

@@ -20,6 +20,11 @@ import org.springframework.stereotype.Service;
import java.util.HashMap;
/**
* 1、分拣机械手满料
* 分拣机械手到包装
*/
@Service
@RequiredArgsConstructor
@Slf4j

View File

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import org.nl.exception.BadRequestException;
import org.nl.wms.sch.AcsUtil;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.service.PointService;
import org.nl.wms.sch.service.dto.PointDto;
import org.nl.wql.WQL;
@@ -131,6 +132,19 @@ public class PointServiceImpl implements PointService {
throw new BadRequestException("编码已存在!");
}
// 点位修改
JSONObject point = wo.query("point_id = '" + dto.getPoint_id() + "'").uniqueResult(0);
//判断是否有未完成的任务,如果有,不让修改
// 判断起点有没有未完成的指令
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject beforTaskObj = taskTable.query("is_delete='0' and (start_point_code='" + point.getString("point_code")+"' or next_point_code= '"+ point.getString("point_code")+ "') and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("任务号【'" + beforTaskObj.getString("task_code") + "'】未完成,无法修改!");
}
Long currentUserId = UserInfoUtil.getCurrentUserId();
String nickName = UserInfoUtil.getNickName();

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import org.nl.exception.BadRequestException;
import org.nl.common.utils.UserInfoUtil;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.st.basedata.service.KilnService;
import org.nl.wql.WQL;
import org.nl.wql.core.bean.WQLObject;
@@ -28,8 +29,8 @@ public class KilnServiceImpl implements KilnService {
public Map<String, Object> kilnCacheQuery(Map whereJson, Pageable page) {
JSONObject map = new JSONObject();
map.put("flag", "1");
if (ObjectUtil.isNotEmpty(whereJson.get("point_code")))
map.put("point_code", "%" + whereJson.get("point_code") + "%");
if (ObjectUtil.isNotEmpty(whereJson.get("search")))
map.put("point_code", "%" + whereJson.get("search") + "%");
map.put("point_status", whereJson.get("point_status"));
map.put("lock_type", whereJson.get("lock_type"));
map.put("is_used", whereJson.get("is_used"));
@@ -95,8 +96,8 @@ public class KilnServiceImpl implements KilnService {
}
//先删除库存 永远插入库存
structIvtTab.delete("struct_id = '"+jsonObject.getString("struct_id")+"'");
stockrecordId="";
structIvtTab.delete("struct_id = '" + jsonObject.getString("struct_id") + "'");
stockrecordId = "";
if (ObjectUtil.isEmpty(stockrecordId)) { // 仓位库存id为空就插入
JSONObject structIvt = new JSONObject();
structIvt.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId());
@@ -141,7 +142,7 @@ public class KilnServiceImpl implements KilnService {
// 存在相应载具的话删掉在存
if (ObjectUtil.isNotEmpty(vehicle_code)) {
vehicleGroupTab.delete("vehicle_code = '" + vehicle_code + "'");
structIvtTab.delete("vehicle_code <> '" + vehicle_code + "' and struct_id = '"+jsonObject.getString("struct_id")+"'");
structIvtTab.delete("vehicle_code <> '" + vehicle_code + "' and struct_id = '" + jsonObject.getString("struct_id") + "'");
}
JSONObject vehicleGroup = new JSONObject();
@@ -152,7 +153,7 @@ public class KilnServiceImpl implements KilnService {
vehicleGroup.put("material_code", materialObj.getString("material_code"));
vehicleGroup.put("material_name", materialObj.getString("material_name"));
vehicleGroup.put("material_spec", materialObj.getString("material_spec"));
vehicleGroup.put("task_id", IdUtil.getSnowflake(1,1).nextId());
vehicleGroup.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
vehicleGroup.put("create_id", currentUserId);
vehicleGroup.put("create_name", nickName);
vehicleGroup.put("create_time", now);
@@ -163,11 +164,22 @@ public class KilnServiceImpl implements KilnService {
vehicleGroup.put("device_id", jsonObject.getString("device_id"));
vehicleGroup.put("qty", ivt_qty);
vehicleGroup.put("is_full", is_full);
vehicleGroup.put("material_move_id", IdUtil.getSnowflake(1,1).nextId());
vehicleGroup.put("material_move_id", IdUtil.getSnowflake(1, 1).nextId());
vehicleGroupTab.insert(vehicleGroup);
}
// 点位修改
JSONObject point = pointTab.query("point_id = '" + jsonObject.getString("point_id") + "'").uniqueResult(0);
//判断是否有未完成的任务,如果有,不让修改
// 判断起点有没有未完成的指令
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
JSONObject beforTaskObj = taskTable.query("is_delete='0' and (start_point_code='" + point.getString("point_code") + "' or next_point_code= '" + point.getString("point_code") + "') and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("任务号【'" + beforTaskObj.getString("task_code") + "'】未完成,无法修改!");
}
if (ObjectUtil.isEmpty(point)) throw new BadRequestException("被删除或无权限,操作失败!");
point.put("point_status", point_status);
point.put("lock_type", jsonObject.getString("lock_type"));

View File

@@ -61,9 +61,9 @@
WHERE
area_type = 输入.area_type
OPTION 输入.point_code <> ""
point.point_code LIKE 输入.point_code
( point.point_code LIKE 输入.point_code
OR
point.point_name LIKE 输入.point_code
point.point_name LIKE 输入.point_code)
ENDOPTION
OPTION 输入.point_status <> ""
point.point_status = 输入.point_status