代码修改

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

View File

@@ -47,8 +47,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask); taskTab.update(jsonTask);
HashMap map = new HashMap(); HashMap map = new HashMap();
map.put("bill_status", "40"); map.put("bill_status", "40");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord") WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
.update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
} }
if (TaskStatusEnum.FINISHED.getCode().equals(status)) { if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
@@ -60,8 +59,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
/// 审核单据 /// 审核单据
HashMap map = new HashMap(); HashMap map = new HashMap();
map.put("bill_status", "50"); map.put("bill_status", "50");
WQLObject.getWQLObject("st_buss_EmptyVehicleRecord") WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
.update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
// 解锁仓位,托盘信息,回写到点位上去 // 解锁仓位,托盘信息,回写到点位上去
String vehicle_code = jsonTask.getString("vehicle_code"); 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 cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.nl.common.utils.UserInfoUtil;
import org.nl.exception.BadRequestException; import org.nl.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil; import org.nl.modules.system.util.CodeUtil;
import org.nl.common.utils.UserInfoUtil;
import org.nl.utils.SpringContextHolder; import org.nl.utils.SpringContextHolder;
import org.nl.wms.WorkProcedureEnum; import org.nl.wms.WorkProcedureEnum;
import org.nl.wms.common.PointUpdateUtil; import org.nl.wms.common.PointUpdateUtil;
import org.nl.wms.common.SortingUtil; import org.nl.wms.common.SortingUtil;
import org.nl.wms.common.StructFindUtil; 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.ext.acs.service.impl.WmsToJnServiceImpl;
import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.AreaEnum; 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.WQL;
import org.nl.wql.core.bean.WQLObject; import org.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap; import java.util.HashMap;
/**
* 1、半托缓存到分拣机械手
*
*/
@Service @Service
public class CallMaterialTask extends AbstractAcsTask { public class CallMaterialTask extends AbstractAcsTask {
private final String THIS_CLASS = CallMaterialTask.class.getName(); private final String THIS_CLASS = CallMaterialTask.class.getName();
@@ -169,15 +171,7 @@ public class CallMaterialTask extends AbstractAcsTask {
public void findStartPoint() { public void findStartPoint() {
String task_status = TaskStatusEnum.SURE_START.getCode(); String task_status = TaskStatusEnum.SURE_START.getCode();
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
JSONArray taskArry = JSONArray taskArry = taskTab.query("task_status='" + task_status + "' AND handle_class='" + THIS_CLASS + "' AND is_delete='0' ").getResultJSONArray(0);
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++) { for (int i = 0; i < taskArry.size(); i++) {
JSONObject taskObj = taskArry.getJSONObject(i); JSONObject taskObj = taskArry.getJSONObject(i);
String task_id = taskObj.getString("task_id"); String task_id = taskObj.getString("task_id");
@@ -203,8 +197,7 @@ public class CallMaterialTask extends AbstractAcsTask {
// 终点加锁 // 终点加锁
HashMap lock_map = new HashMap(); HashMap lock_map = new HashMap();
lock_map.put("lock_type", "01"); lock_map.put("lock_type", "01");
WQLObject.getWQLObject("sch_base_point") WQLObject.getWQLObject("sch_base_point").update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'");
.update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'");
// 修改任务状态 // 修改任务状态
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("update_optid", UserInfoUtil.getCurrentUserId()); taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
@@ -251,6 +244,9 @@ public class CallMaterialTask extends AbstractAcsTask {
if (ObjectUtil.isNotEmpty(beforTaskObj)) { if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
} }
PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class); PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
String start_area = ""; String start_area = "";
@@ -347,6 +343,14 @@ public class CallMaterialTask extends AbstractAcsTask {
qty_unit_id = outStructObj.getString("qty_unit_id"); qty_unit_id = outStructObj.getString("qty_unit_id");
start_point_code = outStructObj.getString("struct_code"); 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"); vehicle_code = outStructObj.getString("vehicle_code");
// 创建出库单据 // 创建出库单据
JSONObject iosObj = new JSONObject(); JSONObject iosObj = new JSONObject();
@@ -430,10 +434,7 @@ public class CallMaterialTask extends AbstractAcsTask {
@Override @Override
public void forceFinish(String task_id) { public void forceFinish(String task_id) {
JSONObject taskObj = JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
WQLObject.getWQLObject("SCH_BASE_Task")
.query("task_id = '" + task_id + "'")
.uniqueResult(0);
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); 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; import java.util.HashMap;
/**
* {"is_full":"1","device_code":"BTHCW02","type":"1","vehicle_code":"0000","start_point_code":"BTHCW02","create_mode":"01"}
* 半托缓存到包装线送料
* 如半托缓存位上的料呆太久了,通过电器触发强制从半托缓存到包装线
*/
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@@ -134,7 +139,6 @@ public class FmjToPackIngTask extends AbstractAcsTask {
} }
String next_point_code = "BZSLW"; String next_point_code = "BZSLW";
String material_id = ivtObj.getString("material_id"); String material_id = ivtObj.getString("material_id");
String is_full = ivtObj.getString("is_full");
String qty = ivtObj.getString("canuse_qty"); String qty = ivtObj.getString("canuse_qty");
String pcsn = ivtObj.getString("pcsn"); String pcsn = ivtObj.getString("pcsn");
String vehicle_code = ivtObj.getString("vehicle_code"); String vehicle_code = ivtObj.getString("vehicle_code");

View File

@@ -68,9 +68,7 @@ public class RgvTask extends AbstractAcsTask {
if (StrUtil.isEmpty(start_point_code)) { if (StrUtil.isEmpty(start_point_code)) {
throw new BadRequestException("起点不能为空!"); throw new BadRequestException("起点不能为空!");
} }
JSONObject beforTaskObj = WQLObject.getWQLObject("sch_base_task"). 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);
query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) { if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); 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") + "' 未完成!"); throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
} }
if (StrUtil.isNotEmpty(next_point_code)) { if (StrUtil.isNotEmpty(next_point_code)) {
PointDto nextPoint = pointService.findByCode(next_point_code);
task_status = TaskStatusEnum.START_AND_POINT.getCode(); task_status = TaskStatusEnum.START_AND_POINT.getCode();
// 锁定终点 // 锁定终点
HashMap lock_map = new HashMap(); HashMap lock_map = new HashMap();

View File

@@ -170,9 +170,7 @@ public class StructToConveyorTask extends AbstractAcsTask {
throw new BadRequestException("终点不能为空!"); throw new BadRequestException("终点不能为空!");
} }
//判断起点有没有未完成的指令 //判断起点有没有未完成的指令
JSONObject beforTaskObj = taskTable. JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(beforTaskObj)) { if (ObjectUtil.isNotEmpty(beforTaskObj)) {
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); 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.nl.wql.core.bean.WQLObject;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
/** /**
* 压机到货架 * 压机到到输送线任务
*/ */
@Service @Service
@Slf4j @Slf4j

View File

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

View File

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.nl.exception.BadRequestException; import org.nl.exception.BadRequestException;
import org.nl.wms.sch.AcsUtil; 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.PointService;
import org.nl.wms.sch.service.dto.PointDto; import org.nl.wms.sch.service.dto.PointDto;
import org.nl.wql.WQL; import org.nl.wql.WQL;
@@ -131,6 +132,19 @@ public class PointServiceImpl implements PointService {
throw new BadRequestException("编码已存在!"); 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(); Long currentUserId = UserInfoUtil.getCurrentUserId();
String nickName = UserInfoUtil.getNickName(); String nickName = UserInfoUtil.getNickName();

View File

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.nl.exception.BadRequestException; import org.nl.exception.BadRequestException;
import org.nl.common.utils.UserInfoUtil; import org.nl.common.utils.UserInfoUtil;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.st.basedata.service.KilnService; import org.nl.wms.st.basedata.service.KilnService;
import org.nl.wql.WQL; import org.nl.wql.WQL;
import org.nl.wql.core.bean.WQLObject; 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) { public Map<String, Object> kilnCacheQuery(Map whereJson, Pageable page) {
JSONObject map = new JSONObject(); JSONObject map = new JSONObject();
map.put("flag", "1"); map.put("flag", "1");
if (ObjectUtil.isNotEmpty(whereJson.get("point_code"))) if (ObjectUtil.isNotEmpty(whereJson.get("search")))
map.put("point_code", "%" + whereJson.get("point_code") + "%"); map.put("point_code", "%" + whereJson.get("search") + "%");
map.put("point_status", whereJson.get("point_status")); map.put("point_status", whereJson.get("point_status"));
map.put("lock_type", whereJson.get("lock_type")); map.put("lock_type", whereJson.get("lock_type"));
map.put("is_used", whereJson.get("is_used")); 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")+"'"); structIvtTab.delete("struct_id = '" + jsonObject.getString("struct_id") + "'");
stockrecordId=""; stockrecordId = "";
if (ObjectUtil.isEmpty(stockrecordId)) { // 仓位库存id为空就插入 if (ObjectUtil.isEmpty(stockrecordId)) { // 仓位库存id为空就插入
JSONObject structIvt = new JSONObject(); JSONObject structIvt = new JSONObject();
structIvt.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId()); structIvt.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId());
@@ -141,7 +142,7 @@ public class KilnServiceImpl implements KilnService {
// 存在相应载具的话删掉在存 // 存在相应载具的话删掉在存
if (ObjectUtil.isNotEmpty(vehicle_code)) { if (ObjectUtil.isNotEmpty(vehicle_code)) {
vehicleGroupTab.delete("vehicle_code = '" + 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(); JSONObject vehicleGroup = new JSONObject();
@@ -152,7 +153,7 @@ public class KilnServiceImpl implements KilnService {
vehicleGroup.put("material_code", materialObj.getString("material_code")); vehicleGroup.put("material_code", materialObj.getString("material_code"));
vehicleGroup.put("material_name", materialObj.getString("material_name")); vehicleGroup.put("material_name", materialObj.getString("material_name"));
vehicleGroup.put("material_spec", materialObj.getString("material_spec")); 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_id", currentUserId);
vehicleGroup.put("create_name", nickName); vehicleGroup.put("create_name", nickName);
vehicleGroup.put("create_time", now); vehicleGroup.put("create_time", now);
@@ -163,11 +164,22 @@ public class KilnServiceImpl implements KilnService {
vehicleGroup.put("device_id", jsonObject.getString("device_id")); vehicleGroup.put("device_id", jsonObject.getString("device_id"));
vehicleGroup.put("qty", ivt_qty); vehicleGroup.put("qty", ivt_qty);
vehicleGroup.put("is_full", is_full); 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); vehicleGroupTab.insert(vehicleGroup);
} }
// 点位修改 // 点位修改
JSONObject point = pointTab.query("point_id = '" + jsonObject.getString("point_id") + "'").uniqueResult(0); 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("被删除或无权限,操作失败!"); if (ObjectUtil.isEmpty(point)) throw new BadRequestException("被删除或无权限,操作失败!");
point.put("point_status", point_status); point.put("point_status", point_status);
point.put("lock_type", jsonObject.getString("lock_type")); point.put("lock_type", jsonObject.getString("lock_type"));

View File

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