代码更新
This commit is contained in:
@@ -18,6 +18,9 @@
|
|||||||
<jna.version>5.5.0</jna.version>
|
<jna.version>5.5.0</jna.version>
|
||||||
</properties>
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.reflections</groupId>
|
<groupId>org.reflections</groupId>
|
||||||
<artifactId>reflections</artifactId>
|
<artifactId>reflections</artifactId>
|
||||||
@@ -97,6 +100,18 @@
|
|||||||
<artifactId>spring-boot-starter-websocket</artifactId>
|
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.redisson</groupId>
|
||||||
|
<artifactId>redisson-spring-boot-starter</artifactId>
|
||||||
|
<version>3.16.4</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- jwt -->
|
<!-- jwt -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>io.jsonwebtoken</groupId>
|
<groupId>io.jsonwebtoken</groupId>
|
||||||
|
|||||||
@@ -3,18 +3,14 @@ package org.nl.wms.common;
|
|||||||
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.exception.BadRequestException;
|
|
||||||
import org.nl.modules.system.service.impl.ParamServiceImpl;
|
import org.nl.modules.system.service.impl.ParamServiceImpl;
|
||||||
import org.nl.utils.SpringContextHolder;
|
import org.nl.utils.SpringContextHolder;
|
||||||
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
|
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
|
||||||
import org.nl.wql.WQL;
|
|
||||||
import org.nl.wql.core.bean.WQLObject;
|
import org.nl.wql.core.bean.WQLObject;
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
|
|
||||||
public class PointUpdateUtil {
|
public class PointUpdateUtil {
|
||||||
public static void updatePoint(JSONArray arr) {
|
public static void updatePoint(JSONArray arr) {
|
||||||
String isConnect =
|
String isConnect = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
||||||
SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
|
||||||
if (StrUtil.equals("0", isConnect)) {
|
if (StrUtil.equals("0", isConnect)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,9 +7,8 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.common.collect.Interner;
|
|
||||||
import com.google.common.collect.Interners;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.utils.UserInfoUtil;
|
import org.nl.common.utils.UserInfoUtil;
|
||||||
import org.nl.exception.BadRequestException;
|
import org.nl.exception.BadRequestException;
|
||||||
@@ -34,13 +33,18 @@ import org.nl.wms.sch.service.dto.PointDto;
|
|||||||
import org.nl.wms.sch.service.dto.TaskDto;
|
import org.nl.wms.sch.service.dto.TaskDto;
|
||||||
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.redisson.api.RLock;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -57,17 +61,30 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private final ToPackIngTask toPackIngTask;
|
private final ToPackIngTask toPackIngTask;
|
||||||
private final FmjToPackIngTask fmjToPackIngTask;
|
private final FmjToPackIngTask fmjToPackIngTask;
|
||||||
private final VehicleService vehicleService;
|
private final VehicleService vehicleService;
|
||||||
|
@Autowired
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AcsToWmsService acsToWmsService;
|
private AcsToWmsService acsToWmsService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SneakyThrows
|
||||||
public Map<String, Object> receiveTaskFromAcs(Map jsonObject) {
|
public Map<String, Object> receiveTaskFromAcs(Map jsonObject) {
|
||||||
String type = (String) jsonObject.get("type");
|
String type = (String) jsonObject.get("type");
|
||||||
Interner<String> pool = Interners.newWeakInterner();
|
RLock lock = redissonClient.getLock("acs_to_wms:" + type);
|
||||||
synchronized (pool.intern(type)) {
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
|
try {
|
||||||
|
if (tryLock) {
|
||||||
return acsToWmsService.receiveTaskFromAcsTrancs(jsonObject);
|
return acsToWmsService.receiveTaskFromAcsTrancs(jsonObject);
|
||||||
}
|
}
|
||||||
|
} finally {
|
||||||
|
if (tryLock) {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -96,24 +113,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
jsonObject.put("create_mode", "01");
|
jsonObject.put("create_mode", "01");
|
||||||
jsonObject.put("group_id", group_id);
|
jsonObject.put("group_id", group_id);
|
||||||
// 假如是半托缓存的几个位置,强制去包装
|
// 假如是半托缓存的几个位置,强制去包装
|
||||||
String area_type =
|
String area_type = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("area_type");
|
||||||
pointTable
|
|
||||||
.query("point_code ='" + device_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("area_type");
|
|
||||||
if (StrUtil.equals(area_type, AreaEnum.BTHCQ.getCode())) {
|
if (StrUtil.equals(area_type, AreaEnum.BTHCQ.getCode())) {
|
||||||
fmjToPackIngTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
fmjToPackIngTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
||||||
// 生成到包装位的任务时,下发托盘类型给RGV
|
// 生成到包装位的任务时,下发托盘类型给RGV
|
||||||
String point_id = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("point_id");
|
String point_id = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("point_id");
|
||||||
String material_id = structivtTable.query("struct_id ='" + point_id + "'").uniqueResult(0)
|
String material_id = structivtTable.query("struct_id ='" + point_id + "'").uniqueResult(0).getString("material_id");
|
||||||
.getString("material_id");
|
JSONObject materiralObj1 = WQLObject.getWQLObject("md_me_material").query("material_id = '" + material_id + "'").uniqueResult(0);
|
||||||
JSONObject materiralObj1 =
|
|
||||||
WQLObject.getWQLObject("md_me_material")
|
|
||||||
.query("material_id = '" + material_id + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
// 寻找对应的托盘类型
|
// 寻找对应的托盘类型
|
||||||
String vehicle_type =
|
String vehicle_type = vehicleService.getVehicleType(materiralObj1.getString("vehicle_type"));
|
||||||
vehicleService.getVehicleType(materiralObj1.getString("vehicle_type"));
|
|
||||||
JSONObject jsonObject1 = new JSONObject();
|
JSONObject jsonObject1 = new JSONObject();
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
jsonObject1.put("device_code", "RGV2");
|
jsonObject1.put("device_code", "RGV2");
|
||||||
@@ -129,10 +137,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String material_code = (String) jsonObject.get("material_code");
|
String material_code = (String) jsonObject.get("material_code");
|
||||||
String producetask_id = (String) jsonObject.get("producetask_id");
|
String producetask_id = (String) jsonObject.get("producetask_id");
|
||||||
String material_id = "";
|
String material_id = "";
|
||||||
JSONObject materialObj =
|
JSONObject materialObj = 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.isEmpty(material_code)
|
if (StrUtil.isEmpty(material_code)
|
||||||
&& (!StrUtil.equals(device_code, "CYSSX101"))
|
&& (!StrUtil.equals(device_code, "CYSSX101"))
|
||||||
&& !StrUtil.equals(device_code.substring(0, 4), "BTHC")) {
|
&& !StrUtil.equals(device_code.substring(0, 4), "BTHC")) {
|
||||||
@@ -148,9 +153,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
if (StrUtil.isEmpty(vehicle_code)) {
|
if (StrUtil.isEmpty(vehicle_code)) {
|
||||||
throw new BadRequestException("载具不能为空!");
|
throw new BadRequestException("载具不能为空!");
|
||||||
}
|
}
|
||||||
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup")
|
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "'", "create_time desc").uniqueResult(0);
|
||||||
.query("vehicle_code='" + vehicle_code + "'", "create_time desc")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(vehicleObj)) {
|
if (ObjectUtil.isEmpty(vehicleObj)) {
|
||||||
throw new BadRequestException("为找到载具号为'" + vehicle_code + "'的组盘信息!");
|
throw new BadRequestException("为找到载具号为'" + vehicle_code + "'的组盘信息!");
|
||||||
}
|
}
|
||||||
@@ -166,21 +169,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
jsonObject.put("producetask_id", producetask_id);
|
jsonObject.put("producetask_id", producetask_id);
|
||||||
jsonObject.put("create_mode", "01");
|
jsonObject.put("create_mode", "01");
|
||||||
jsonObject.put("material_id", material_id);
|
jsonObject.put("material_id", material_id);
|
||||||
JSONObject materiralObj =
|
JSONObject materiralObj = WQLObject.getWQLObject("md_me_material").query("material_id = '" + material_id + "'").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("md_me_material")
|
|
||||||
.query("material_id = '" + material_id + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
Double stewing_time = materiralObj.getDouble("stewing_time");
|
Double stewing_time = materiralObj.getDouble("stewing_time");
|
||||||
jsonObject.put("stewing_time", stewing_time);
|
jsonObject.put("stewing_time", stewing_time);
|
||||||
// 假如是压制下料的几个位置,则要考虑是入输送线 还是入立体库
|
// 假如是压制下料的几个位置,则要考虑是入输送线 还是入立体库
|
||||||
if (StrUtil.equals(area_type, AreaEnum.YZQY.getCode()) && stewing_time <= 0) {
|
if (StrUtil.equals(area_type, AreaEnum.YZQY.getCode()) && stewing_time <= 0) {
|
||||||
// 1.首先更新所有输送线的点位状态
|
// 1.首先更新所有输送线的点位状态
|
||||||
JSONArray pointarr =
|
JSONArray pointarr = WQL.getWO("ACSTOMES_001").addParam("area_type", "07").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", "07")
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
PointUpdateUtil.updatePoint(pointarr);
|
PointUpdateUtil.updatePoint(pointarr);
|
||||||
// 2.找一个合适的输送带
|
// 2.找一个合适的输送带
|
||||||
JSONObject pointObj = StructFindUtil.getConveyor(materiralObj);
|
JSONObject pointObj = StructFindUtil.getConveyor(materiralObj);
|
||||||
@@ -209,25 +204,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
// 假如是分拣机械手的下料位置,并且是满托,则去包装线
|
// 假如是分拣机械手的下料位置,并且是满托,则去包装线
|
||||||
if (StrUtil.equals("1", is_full) && StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
if (StrUtil.equals("1", is_full) && StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
||||||
String vehicle_code =
|
String vehicle_code = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("vehicle_code");
|
||||||
pointTable
|
|
||||||
.query("point_code ='" + device_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("vehicle_code");
|
|
||||||
jsonObject.put("vehicle_code", vehicle_code);
|
jsonObject.put("vehicle_code", vehicle_code);
|
||||||
// if (StrUtil.isEmpty(vehicle_code)) {
|
|
||||||
// throw new BadRequestException("当前点位载具号为空!");
|
|
||||||
// }
|
|
||||||
toPackIngTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
toPackIngTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
||||||
|
|
||||||
// 生成到包装位的任务时,下发托盘类型给RGV
|
// 生成到包装位的任务时,下发托盘类型给RGV
|
||||||
JSONObject vehicleObj =
|
JSONObject vehicleObj = WQLObject.getWQLObject("md_pb_vehicle").query("vehicle_code='" + vehicle_code + "'", "create_time desc").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("md_pb_vehicle")
|
|
||||||
.query("vehicle_code='" + vehicle_code + "'", "create_time desc")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(vehicleObj)) {
|
if (ObjectUtil.isNotEmpty(vehicleObj)) {
|
||||||
String vehicle_type =
|
String vehicle_type = vehicleService.getVehicleType(vehicleObj.getString("vehicle_type"));
|
||||||
vehicleService.getVehicleType(vehicleObj.getString("vehicle_type"));
|
|
||||||
JSONObject jsonObject1 = new JSONObject();
|
JSONObject jsonObject1 = new JSONObject();
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
jsonObject1.put("device_code", "RGV2");
|
jsonObject1.put("device_code", "RGV2");
|
||||||
@@ -245,11 +230,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
// 假如是分拣机械手的下料位置,则需要将点位上的托盘号写入
|
// 假如是分拣机械手的下料位置,则需要将点位上的托盘号写入
|
||||||
if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
||||||
String vehicle_code =
|
String vehicle_code = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("vehicle_code");
|
||||||
pointTable
|
|
||||||
.query("point_code ='" + device_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("vehicle_code");
|
|
||||||
jsonObject.put("vehicle_code", vehicle_code);
|
jsonObject.put("vehicle_code", vehicle_code);
|
||||||
}
|
}
|
||||||
String task_id = sendMaterialTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
String task_id = sendMaterialTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
||||||
@@ -260,7 +241,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject groupInfo = groupTable.query("task_id='" + task_id + "'").uniqueResult(0);
|
JSONObject groupInfo = groupTable.query("task_id='" + task_id + "'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(groupInfo)) {
|
if (ObjectUtil.isEmpty(groupInfo)) {
|
||||||
log.info("判断送料任务标识异常:" + task_id);
|
log.info("判断送料任务标识异常:" + task_id);
|
||||||
|
|
||||||
throw new BadRequestException("压制满料扫码组盘错误,任务标识:" + task_id);
|
throw new BadRequestException("压制满料扫码组盘错误,任务标识:" + task_id);
|
||||||
}
|
}
|
||||||
log.info("判断送料任务正常:" + task_id);
|
log.info("判断送料任务正常:" + task_id);
|
||||||
@@ -285,12 +265,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
jsonObject.put("next_point_code", device_code);
|
jsonObject.put("next_point_code", device_code);
|
||||||
jsonObject.put("create_mode", "01");
|
jsonObject.put("create_mode", "01");
|
||||||
// 机械手1 is_full给1 ,机械手3is_full给空,半托,跟满托都可以出
|
// 机械手1 is_full给1 ,机械手3is_full给空,半托,跟满托都可以出
|
||||||
if (StrUtil.equals(device_code, "FJJXSSLW101")
|
if (StrUtil.equals(device_code, "FJJXSSLW101") || StrUtil.equals(device_code, "FJJXSSLW102")) {
|
||||||
|| StrUtil.equals(device_code, "FJJXSSLW102")) {
|
|
||||||
is_full = "1";
|
is_full = "1";
|
||||||
}
|
}
|
||||||
if (StrUtil.equals(device_code, "FJJXSSLW301")
|
if (StrUtil.equals(device_code, "FJJXSSLW301") || StrUtil.equals(device_code, "FJJXSSLW302")) {
|
||||||
|| StrUtil.equals(device_code, "FJJXSSLW302")) {
|
|
||||||
is_full = "2";
|
is_full = "2";
|
||||||
}
|
}
|
||||||
jsonObject.put("is_full", is_full);
|
jsonObject.put("is_full", is_full);
|
||||||
@@ -298,6 +276,7 @@ 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":
|
||||||
@@ -311,12 +290,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
// 如果是叠盘位3 ,则去铁托盘缓存区取
|
// 如果是叠盘位3 ,则去铁托盘缓存区取
|
||||||
if (StrUtil.equals(device_code, "KTPDDW3")) {
|
if (StrUtil.equals(device_code, "KTPDDW3")) {
|
||||||
// 1 更新缓存位
|
// 1 更新缓存位
|
||||||
JSONArray pointarr =
|
JSONArray pointarr = WQL.getWO("ACSTOMES_001").addParam("area_type", AreaEnum.KTTHCQ.getCode()).addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", AreaEnum.KTTHCQ.getCode())
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
PointUpdateUtil.updatePoint(pointarr);
|
PointUpdateUtil.updatePoint(pointarr);
|
||||||
jsonObject.put("vehicle_type", VehicleTypeEnum.GTP.getCode());
|
jsonObject.put("vehicle_type", VehicleTypeEnum.GTP.getCode());
|
||||||
} else {
|
} else {
|
||||||
@@ -330,14 +304,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
JSONObject joo = pointTable.query("point_code='" + device_code + "'").uniqueResult(0);
|
JSONObject joo = pointTable.query("point_code='" + device_code + "'").uniqueResult(0);
|
||||||
material_id = produceInfoByCode.getString("material_id");
|
material_id = produceInfoByCode.getString("material_id");
|
||||||
String workprocedure_id = WorkProcedureEnum.FJGX.getId();
|
String workprocedure_id = WorkProcedureEnum.FJGX.getId();
|
||||||
JSONObject jsonObject1 =
|
JSONObject jsonObject1 = WQL.getWO("ACSTOMES_001").addParam("flag", "1").addParam("workprocedure_id", workprocedure_id).addParam("material_id", material_id).addParam("device_id", joo.getString("device_id")).process().uniqueResult(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("workprocedure_id", workprocedure_id)
|
|
||||||
.addParam("material_id", material_id)
|
|
||||||
.addParam("device_id", joo.getString("device_id"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(jsonObject1)) {
|
if (ObjectUtil.isNotEmpty(jsonObject1)) {
|
||||||
// 如果有库存,则出半满托盘
|
// 如果有库存,则出半满托盘
|
||||||
// 叫料出库
|
// 叫料出库
|
||||||
@@ -351,12 +318,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// 需要更新覆膜机的托盘类型
|
// 需要更新覆膜机的托盘类型
|
||||||
JSONArray pointarr =
|
JSONArray pointarr = WQL.getWO("ACSTOMES_001").addParam("area_type", "05").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", "05")
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
PointUpdateUtil.updatePoint(pointarr);
|
PointUpdateUtil.updatePoint(pointarr);
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(produceInfoByCode)) {
|
if (ObjectUtil.isEmpty(produceInfoByCode)) {
|
||||||
@@ -364,12 +326,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
jsonObject.put("vehicle_type", produceInfoByCode.getString("vehicle_type"));
|
jsonObject.put("vehicle_type", produceInfoByCode.getString("vehicle_type"));
|
||||||
// 需要更新堆叠位的点位状态
|
// 需要更新堆叠位的点位状态
|
||||||
JSONArray pointarr =
|
JSONArray pointarr = WQL.getWO("ACSTOMES_001").addParam("point_code", "KTPDDW5").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("point_code", "KTPDDW5")
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
PointUpdateUtil.updatePoint(pointarr);
|
PointUpdateUtil.updatePoint(pointarr);
|
||||||
}
|
}
|
||||||
callEmptyVehicleTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
callEmptyVehicleTask.createTask((JSONObject) JSON.toJSON(jsonObject));
|
||||||
@@ -379,10 +336,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
jsonObject.put("next_point_code", device_code);
|
jsonObject.put("next_point_code", device_code);
|
||||||
jsonObject.put("create_mode", "01");
|
jsonObject.put("create_mode", "01");
|
||||||
// 1 判断有没有执行的Rgv搬运任务
|
// 1 判断有没有执行的Rgv搬运任务
|
||||||
JSONObject taskObj =
|
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_type='04' and is_delete='0' and acs_task_type<>'07'").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("SCH_BASE_Task")
|
|
||||||
.query("task_type='04' and is_delete='0' and acs_task_type<>'07'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(taskObj)) {
|
if (ObjectUtil.isNotEmpty(taskObj)) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
result.put("status", HttpStatus.CREATED.value());
|
result.put("status", HttpStatus.CREATED.value());
|
||||||
@@ -394,21 +348,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
// 更新所有设备的点位的状态
|
// 更新所有设备的点位的状态
|
||||||
// JSONArray pointConveyArr = pointTable.query("area_type='07' and device_point_type ='01'
|
// JSONArray pointConveyArr = pointTable.query("area_type='07' and device_point_type ='01'
|
||||||
// ").getResultJSONArray(0);
|
// ").getResultJSONArray(0);
|
||||||
JSONArray pointConveyArr =
|
JSONArray pointConveyArr = WQL.getWO("ACSTOMES_001").addParam("area_type", "07").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", "07")
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
|
|
||||||
PointUpdateUtil.updatePoint(pointConveyArr);
|
PointUpdateUtil.updatePoint(pointConveyArr);
|
||||||
// 假如没有设置哪个输送线先出,没有按照先进先出
|
// 假如没有设置哪个输送线先出,没有按照先进先出
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
String rule =
|
String rule = WQLObject.getWQLObject("sys_param").query("code='is_outrule'").uniqueResult(0).getString("value");
|
||||||
WQLObject.getWQLObject("sys_param")
|
|
||||||
.query("code='is_outrule'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("value");
|
|
||||||
if (StrUtil.equals(rule, "1")) {
|
if (StrUtil.equals(rule, "1")) {
|
||||||
param = WQL.getWO("ACSTOMES_001").addParam("flag", "3").process().uniqueResult(0);
|
param = WQL.getWO("ACSTOMES_001").addParam("flag", "3").process().uniqueResult(0);
|
||||||
} else {
|
} else {
|
||||||
@@ -459,15 +404,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String material_id = (String) produceInfoByCode.get("material_id");
|
String material_id = (String) produceInfoByCode.get("material_id");
|
||||||
String cust_id = (String) produceInfoByCode.get("cust_id");
|
String cust_id = (String) produceInfoByCode.get("cust_id");
|
||||||
String producetask_code = (String) produceInfoByCode.get("producetask_code");
|
String producetask_code = (String) produceInfoByCode.get("producetask_code");
|
||||||
JSONObject materialObj =
|
JSONObject materialObj = WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + material_id + "'").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("MD_ME_Material")
|
String producetask_id = WQLObject.getWQLObject("pdm_mg_producetask").query("producetask_code='" + producetask_code + "'").uniqueResult(0).getString("producetask_id");
|
||||||
.query("material_id='" + material_id + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
String producetask_id =
|
|
||||||
WQLObject.getWQLObject("pdm_mg_producetask")
|
|
||||||
.query("producetask_code='" + producetask_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("producetask_id");
|
|
||||||
JSONObject groubObj = new JSONObject();
|
JSONObject groubObj = new JSONObject();
|
||||||
String group_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String group_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
groubObj.put("device_id", produceInfoByCode.getString("device_id"));
|
groubObj.put("device_id", produceInfoByCode.getString("device_id"));
|
||||||
@@ -598,9 +536,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
} else {
|
} else {
|
||||||
throw new BadRequestException("未找到指令号'" + task_id);
|
throw new BadRequestException("未找到指令号'" + task_id);
|
||||||
}
|
}
|
||||||
// 将之前的托盘信息删除
|
|
||||||
// groupTable.delete("vehicle_code='" + vehicle_code + "' and task_id <>'" + task_id +
|
|
||||||
// "'");
|
|
||||||
// 如果是送料任务需要反向组盘
|
// 如果是送料任务需要反向组盘
|
||||||
String handle_class = taskobj.getString("handle_class");
|
String handle_class = taskobj.getString("handle_class");
|
||||||
if (SendMaterialTask.class.getName().equals(handle_class)
|
if (SendMaterialTask.class.getName().equals(handle_class)
|
||||||
@@ -619,10 +554,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 =
|
JSONObject materialObj =WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + requestParam.getString("material_id") + "'").uniqueResult(0);
|
||||||
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"));
|
||||||
@@ -1169,16 +1101,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
public static JSONObject getProduceInfoByCode(String code) {
|
public static JSONObject getProduceInfoByCode(String code) {
|
||||||
// 根据 设备点位去找生产任务信息
|
// 根据 设备点位去找生产任务信息
|
||||||
// 1 根据点位去找设备,去找对应的设备信息
|
// 1 根据点位去找设备,去找对应的设备信息
|
||||||
JSONObject pointObj =
|
JSONObject pointObj = WQLObject.getWQLObject("sch_base_point").query("point_code ='" + code + "'").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("sch_base_point")
|
|
||||||
.query("point_code ='" + code + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
String device_id = pointObj.getString("device_id");
|
String device_id = pointObj.getString("device_id");
|
||||||
// 2 根据设备去找对应的生产任务
|
// 2 根据设备去找对应的生产任务
|
||||||
JSONObject productTaskObj =
|
JSONObject productTaskObj = WQLObject.getWQLObject("PDM_MG_produceTask").query("device_id ='" + device_id + "' and producetask_status in ('03','02','04')").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("PDM_MG_produceTask")
|
|
||||||
.query("device_id ='" + device_id + "' and producetask_status in ('03','02','04')")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(productTaskObj)) {
|
if (ObjectUtil.isEmpty(productTaskObj)) {
|
||||||
throw new BadRequestException("未找到点位为'" + code + "'的生产任务!");
|
throw new BadRequestException("未找到点位为'" + code + "'的生产任务!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -332,25 +332,17 @@ public class ProducetaskServiceImpl implements ProducetaskService {
|
|||||||
if (StrUtil.equals(dto.getDevice_code(), "FJJXS1")
|
if (StrUtil.equals(dto.getDevice_code(), "FJJXS1")
|
||||||
|| StrUtil.equals("FJJXS2", dto.getDevice_code())
|
|| StrUtil.equals("FJJXS2", dto.getDevice_code())
|
||||||
|| StrUtil.equals("FJJXS3", dto.getDevice_code())) {
|
|| StrUtil.equals("FJJXS3", dto.getDevice_code())) {
|
||||||
taskObj =
|
taskObj = WQL.getWO("PDM_ProduceTask_01").addParam("flag", "3").addParam("producetask_id", producetask_id).process().uniqueResult(0);
|
||||||
WQL.getWO("PDM_ProduceTask_01")
|
|
||||||
.addParam("flag", "3")
|
|
||||||
.addParam("producetask_id", producetask_id)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
} else {
|
|
||||||
taskObj =
|
|
||||||
WQL.getWO("PDM_ProduceTask_01")
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.addParam("producetask_id", producetask_id)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
}
|
|
||||||
String product_code = taskObj.getString("product_code");
|
|
||||||
String material_code = taskObj.getString("material_code");
|
String material_code = taskObj.getString("material_code");
|
||||||
|
String product_code = taskObj.getString("product_code");
|
||||||
if (ObjectUtil.isEmpty(product_code)) {
|
if (ObjectUtil.isEmpty(product_code)) {
|
||||||
throw new BadRequestException("物料【"+material_code+"】的垛形参数未设置!");
|
throw new BadRequestException("物料【"+material_code+"】的垛形参数未设置!");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
taskObj = WQL.getWO("PDM_ProduceTask_01").addParam("flag", "4").addParam("producetask_id", producetask_id).process().uniqueResult(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
taskObj.put("product_type", "wms");
|
taskObj.put("product_type", "wms");
|
||||||
WmsToAcsService wmsToAcsService = SpringContextHolder.getBean(WmsToAcsService.class);
|
WmsToAcsService wmsToAcsService = SpringContextHolder.getBean(WmsToAcsService.class);
|
||||||
|
|||||||
@@ -66,11 +66,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
String vehicle_code = jsonTask.getString("vehicle_code");
|
String vehicle_code = jsonTask.getString("vehicle_code");
|
||||||
// 插入刚托盘木托盘表
|
// 插入刚托盘木托盘表
|
||||||
String point_code = jsonTask.getString("next_point_code");
|
String point_code = jsonTask.getString("next_point_code");
|
||||||
String area_type =
|
String area_type = WQLObject.getWQLObject("sch_base_point").query("point_code='" + point_code + "'").uniqueResult(0).getString("area_type");
|
||||||
WQLObject.getWQLObject("sch_base_point")
|
|
||||||
.query("point_code='" + point_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("area_type");
|
|
||||||
if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("device_code", point_code);
|
jo.put("device_code", point_code);
|
||||||
@@ -79,19 +75,13 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
JSONObject endpointObj =
|
JSONObject endpointObj = pointTab.query("point_code='" + jsonTask.getString("next_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("next_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
endpointObj.put("lock_type", "00");
|
endpointObj.put("lock_type", "00");
|
||||||
endpointObj.put("point_status", "01");
|
endpointObj.put("point_status", "01");
|
||||||
endpointObj.put("vehicle_code", vehicle_code);
|
endpointObj.put("vehicle_code", vehicle_code);
|
||||||
endpointObj.put("update_time", DateUtil.now());
|
endpointObj.put("update_time", DateUtil.now());
|
||||||
pointTab.update(endpointObj);
|
pointTab.update(endpointObj);
|
||||||
JSONObject startPointObj =
|
JSONObject startPointObj = pointTab.query("point_code='" + jsonTask.getString("start_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("start_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
startPointObj.put("lock_type", "00");
|
startPointObj.put("lock_type", "00");
|
||||||
startPointObj.put("point_status", "00");
|
startPointObj.put("point_status", "00");
|
||||||
startPointObj.put("vehicle_code", "");
|
startPointObj.put("vehicle_code", "");
|
||||||
@@ -105,14 +95,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
public void findStartPoint() {
|
public void findStartPoint() {
|
||||||
String task_status = TaskStatusEnum.SURE_END.getCode();
|
String task_status = TaskStatusEnum.SURE_END.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");
|
||||||
@@ -131,13 +114,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
if (ObjectUtil.isEmpty(inStructObj)) {
|
if (ObjectUtil.isEmpty(inStructObj)) {
|
||||||
throw new BadRequestException("未找到合适的仓位!");
|
throw new BadRequestException("未找到合适的仓位!");
|
||||||
}
|
}
|
||||||
JSONObject workInfo =
|
JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1").addParam("code", next_point_code).process().uniqueResult(0);
|
||||||
WQL.getWO("QSTRUCT_RULE")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("code", next_point_code)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
String workprocedure_code = workInfo.getString("workInfo");
|
|
||||||
String workprocedure_id = workInfo.getString("workprocedure_id");
|
String workprocedure_id = workInfo.getString("workprocedure_id");
|
||||||
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
||||||
String start_area = "";
|
String start_area = "";
|
||||||
@@ -174,8 +151,7 @@ public class CallEmptyVehicleTask 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 = '" + start_point_code + "'");
|
||||||
.update(lock_map, "point_code = '" + start_point_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());
|
||||||
@@ -186,7 +162,8 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {}
|
public void findNextPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject renotifyAcs(String task_id) {
|
public JSONObject renotifyAcs(String task_id) {
|
||||||
@@ -207,27 +184,14 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
String vehicle_type = form.getString("vehicle_type");
|
String vehicle_type = form.getString("vehicle_type");
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||||
// 判断起点有没有未完成的指令
|
// 判断起点有没有未完成的指令
|
||||||
JSONObject beforTaskObj =
|
JSONObject beforTaskObj = taskTable.query("is_delete='0' and next_point_code='" + next_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
taskTable
|
|
||||||
.query(
|
|
||||||
"is_delete='0' and next_point_code='"
|
|
||||||
+ next_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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
String start_area = "";
|
String start_area = "";
|
||||||
// 假如起点为空,根据终点点去找对应工序需要的托盘类型
|
// 假如起点为空,根据终点点去找对应工序需要的托盘类型
|
||||||
if (StrUtil.isEmpty(start_point_code)) {
|
if (StrUtil.isEmpty(start_point_code)) {
|
||||||
JSONObject workInfo =
|
JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1").addParam("code", next_point_code).process().uniqueResult(0);
|
||||||
WQL.getWO("QSTRUCT_RULE")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("code", next_point_code)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
String workprocedure_id = workInfo.getString("workprocedure_id");
|
String workprocedure_id = workInfo.getString("workprocedure_id");
|
||||||
String device_id = workInfo.getString("device_id");
|
String device_id = workInfo.getString("device_id");
|
||||||
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
||||||
@@ -241,10 +205,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
// 分拣工序
|
// 分拣工序
|
||||||
case FJGX:
|
case FJGX:
|
||||||
// 托盘类型取的物料对应的木托盘类型
|
// 托盘类型取的物料对应的木托盘类型
|
||||||
JSONObject produceObj =
|
JSONObject produceObj = WQLObject.getWQLObject("PDM_MG_produceTask").query("device_id='" + device_id + "' and producetask_status in('02','03','04')").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("PDM_MG_produceTask")
|
|
||||||
.query("device_id='" + device_id + "' and producetask_status in('02','03','04')")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(produceObj))
|
if (ObjectUtil.isEmpty(produceObj))
|
||||||
throw new BadRequestException("设备未设置工单或者工单状态不正确,请检查LMS设备工单状态!");
|
throw new BadRequestException("设备未设置工单或者工单状态不正确,请检查LMS设备工单状态!");
|
||||||
vehicle_type = produceObj.getString("vehicle_type");
|
vehicle_type = produceObj.getString("vehicle_type");
|
||||||
@@ -359,16 +320,15 @@ public class CallEmptyVehicleTask 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pullBack(String task_id) {}
|
public void pullBack(String task_id) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {}
|
public void cancel(String task_id) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,21 +94,24 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
throw new BadRequestException("未找到可用点位:" + start_point_code);
|
throw new BadRequestException("未找到可用点位:" + start_point_code);
|
||||||
}
|
}
|
||||||
Long point_id = startPointDto.getPoint_id();
|
Long point_id = startPointDto.getPoint_id();
|
||||||
|
try {
|
||||||
param.put("struct_id", point_id);
|
param.put("struct_id", point_id);
|
||||||
ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_IVT);
|
ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_IVT);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
// 解锁仓位,托盘信息,回写到点位上去
|
// 解锁仓位,托盘信息,回写到点位上去
|
||||||
String vehicle_code = jsonTask.getString("vehicle_code");
|
String vehicle_code = jsonTask.getString("vehicle_code");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
JSONObject endpointObj = pointTab
|
JSONObject endpointObj = pointTab.query("point_code='" + jsonTask.getString("next_point_code") + "'").uniqueResult(0);
|
||||||
.query("point_code='" + jsonTask.getString("next_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
endpointObj.put("lock_type", "00");
|
endpointObj.put("lock_type", "00");
|
||||||
endpointObj.put("point_status", "02");
|
endpointObj.put("point_status", "02");
|
||||||
endpointObj.put("vehicle_code", vehicle_code);
|
endpointObj.put("vehicle_code", vehicle_code);
|
||||||
endpointObj.put("update_time", DateUtil.now());
|
endpointObj.put("update_time", DateUtil.now());
|
||||||
pointTab.update(endpointObj);
|
pointTab.update(endpointObj);
|
||||||
|
|
||||||
//// 如果终点是分拣区域,则更新木托盘铁托盘记录表
|
// 如果终点是分拣区域,则更新木托盘铁托盘记录表
|
||||||
String next_area = nextPointDto.getArea_type();
|
String next_area = nextPointDto.getArea_type();
|
||||||
if (StrUtil.equals(next_area, AreaEnum.FJQY.getCode())) {
|
if (StrUtil.equals(next_area, AreaEnum.FJQY.getCode())) {
|
||||||
// 如果是下料料位置 托盘则是木托盘
|
// 如果是下料料位置 托盘则是木托盘
|
||||||
@@ -124,22 +127,17 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
// 如果是上料位置 则需要去找点位记录表上的托盘记录
|
// 如果是上料位置 则需要去找点位记录表上的托盘记录
|
||||||
else {
|
else {
|
||||||
String flag = "8";
|
String flag = "8";
|
||||||
if (StrUtil.equals(next_point_code, "FJJXSSLW101")
|
if (StrUtil.equals(next_point_code, "FJJXSSLW101") || StrUtil.equals(next_point_code, "FJJXSSLW102")) {
|
||||||
|| StrUtil.equals(next_point_code, "FJJXSSLW102")) {
|
|
||||||
flag = "7";
|
flag = "7";
|
||||||
}
|
}
|
||||||
JSONArray paramArr =
|
JSONArray paramArr = WQL.getWO("ACSTOMES_001").addParam("flag", flag).process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001").addParam("flag", flag).process().getResultJSONArray(0);
|
|
||||||
for (int i = 0; i < paramArr.size(); i++) {
|
for (int i = 0; i < paramArr.size(); i++) {
|
||||||
JSONObject jo = paramArr.getJSONObject(i);
|
JSONObject jo = paramArr.getJSONObject(i);
|
||||||
SortingUtil.record(jo);
|
SortingUtil.record(jo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
JSONObject startPointObj =
|
JSONObject startPointObj = pointTab.query("point_code='" + jsonTask.getString("start_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("start_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
// 仓位库存表【ST_IVT_StructIvt】
|
// 仓位库存表【ST_IVT_StructIvt】
|
||||||
WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
|
WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
|
||||||
@@ -217,7 +215,8 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {}
|
public void findNextPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
@@ -247,14 +246,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
throw new BadRequestException("是否满托不能为空!");
|
throw new BadRequestException("是否满托不能为空!");
|
||||||
}
|
}
|
||||||
// 判断终点有没有未完成的指令
|
// 判断终点有没有未完成的指令
|
||||||
JSONObject beforTaskObj =
|
JSONObject beforTaskObj = taskTable.query("is_delete='0' and next_point_code='" + next_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
|
||||||
taskTable
|
|
||||||
.query(
|
|
||||||
"is_delete='0' and next_point_code='"
|
|
||||||
+ next_point_code
|
|
||||||
+ "' and task_status <>'"
|
|
||||||
+ TaskStatusEnum.FINISHED.getCode()
|
|
||||||
+ "'")
|
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
|
if (ObjectUtil.isNotEmpty(beforTaskObj)) {
|
||||||
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
|
throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
|
||||||
@@ -276,10 +268,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
IosObj.put("bill_status", "20");
|
IosObj.put("bill_status", "20");
|
||||||
iosTable.update(IosObj);
|
iosTable.update(IosObj);
|
||||||
PointDto StartPoint = pointService.findByCode(start_point_code);
|
PointDto StartPoint = pointService.findByCode(start_point_code);
|
||||||
JSONObject ivtObj =
|
JSONObject ivtObj = WQLObject.getWQLObject("ST_IVT_StructIvt").query("struct_id='" + StartPoint.getPoint_id() + "'").uniqueResult(0);
|
||||||
WQLObject.getWQLObject("ST_IVT_StructIvt")
|
|
||||||
.query("struct_id='" + StartPoint.getPoint_id() + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(ivtObj)) {
|
if (ObjectUtil.isEmpty(ivtObj)) {
|
||||||
throw new BadRequestException("仓位为'" + StartPoint.getPoint_code() + "'的库存信息不存在!");
|
throw new BadRequestException("仓位为'" + StartPoint.getPoint_code() + "'的库存信息不存在!");
|
||||||
}
|
}
|
||||||
@@ -291,9 +280,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
// 如果没给起点,根据终点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
|
// 如果没给起点,根据终点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
|
||||||
if (StrUtil.isEmpty(start_point_code)) {
|
if (StrUtil.isEmpty(start_point_code)) {
|
||||||
if (StrUtil.isEmpty(workprocedure_id)) {
|
if (StrUtil.isEmpty(workprocedure_id)) {
|
||||||
JSONObject workInfo =
|
JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1")
|
||||||
WQL.getWO("QSTRUCT_RULE")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("code", next_point_code)
|
.addParam("code", next_point_code)
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
@@ -349,96 +336,11 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
param.put("is_full", is_full);
|
param.put("is_full", is_full);
|
||||||
param.put("group_device", group_device);
|
param.put("group_device", group_device);
|
||||||
JSONObject outStructObj = StructFindUtil.getOutStruct(param);
|
JSONObject outStructObj = StructFindUtil.getOutStruct(param);
|
||||||
if (ObjectUtil.isEmpty(outStructObj)
|
if (ObjectUtil.isEmpty(outStructObj) && !StrUtil.equals(ivt_workprocedure_id, WorkProcedureEnum.YZGX.getId())) {
|
||||||
&& !StrUtil.equals(ivt_workprocedure_id, WorkProcedureEnum.YZGX.getId())) {
|
|
||||||
// 假如没有货,且下料位两个都为空,并且没有执行中的任务 下发acs动作信号
|
// 假如没有货,且下料位两个都为空,并且没有执行中的任务 下发acs动作信号
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
|
||||||
WmsToAcsServiceImpl wmsToAcsService = new WmsToAcsServiceImpl();
|
|
||||||
// 更新分拣机械手 上下料位置的点位状态
|
// 更新分拣机械手 上下料位置的点位状态
|
||||||
JSONArray parr =
|
JSONArray parr = WQL.getWO("ACSTOMES_001").addParam("area_type", AreaEnum.FJQY.getCode()).addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", AreaEnum.FJQY.getCode())
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
// JSONArray parr = point_table.query("area_type ='27'").getResultJSONArray(0);
|
|
||||||
PointUpdateUtil.updatePoint(parr);
|
PointUpdateUtil.updatePoint(parr);
|
||||||
JSONObject nextpointObj =
|
|
||||||
point_table.query("point_code ='" + next_point_code + "'").uniqueResult(0);
|
|
||||||
if (StrUtil.equals(nextpointObj.getString("area_type"), "27")) {
|
|
||||||
// 找拆垛位置的对应的另外一个点位
|
|
||||||
String other_point_code =
|
|
||||||
point_table
|
|
||||||
.query(
|
|
||||||
"point_code<>'"
|
|
||||||
+ next_point_code
|
|
||||||
+ "' "
|
|
||||||
+ "and device_id='"
|
|
||||||
+ nextpointObj.getString("device_id")
|
|
||||||
+ "' and device_point_type='02' ")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("point_code");
|
|
||||||
String point_status01 =
|
|
||||||
point_table
|
|
||||||
.query("point_code ='" + next_point_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("point_status");
|
|
||||||
String point_status02 =
|
|
||||||
point_table
|
|
||||||
.query("point_code ='" + other_point_code + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("point_status");
|
|
||||||
// 没有执行中的任务
|
|
||||||
WQLObject task_table = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
JSONObject task1 =
|
|
||||||
task_table
|
|
||||||
.query(
|
|
||||||
"next_point_code ='"
|
|
||||||
+ next_point_code
|
|
||||||
+ "' and is_delete='0' and task_status<>'07'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
JSONObject task2 =
|
|
||||||
task_table
|
|
||||||
.query(
|
|
||||||
"next_point_code ='"
|
|
||||||
+ other_point_code
|
|
||||||
+ "' and is_delete='0' and task_status<>'07'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (StrUtil.equals(point_status01, "00")
|
|
||||||
&& StrUtil.equals(point_status02, "00")
|
|
||||||
&& ObjectUtil.isEmpty(task1)
|
|
||||||
&& ObjectUtil.isEmpty(task2)) {
|
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
JSONArray arr = new JSONArray();
|
|
||||||
// jo.put("device_code", "FJJXS1");
|
|
||||||
// jo.put("code", "to_feedback");
|
|
||||||
// jo.put("value", "10");
|
|
||||||
// arr.add(jo);
|
|
||||||
// wmsToAcsService.action(arr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StrUtil.equals(next_point_code, "FJJXSSLW301")
|
|
||||||
|| StrUtil.equals(next_point_code, "FJJXSSLW301")) {
|
|
||||||
String point_status01 =
|
|
||||||
point_table
|
|
||||||
.query("point_code ='FJJXSSLW301'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("point_status");
|
|
||||||
String point_status02 =
|
|
||||||
point_table
|
|
||||||
.query("point_code ='FJJXSSLW301'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("point_status");
|
|
||||||
if (StrUtil.equals(point_status01, "00") && StrUtil.equals(point_status02, "00")) {
|
|
||||||
JSONObject jo = new JSONObject();
|
|
||||||
JSONArray arr = new JSONArray();
|
|
||||||
// jo.put("device_code", "FJJXS3");
|
|
||||||
// jo.put("code", "to_feedback");
|
|
||||||
// jo.put("value", "10");
|
|
||||||
// arr.add(jo);
|
|
||||||
// wmsToAcsService.action(arr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new BadRequestException("未找到合适的出库仓位!");
|
throw new BadRequestException("未找到合适的出库仓位!");
|
||||||
}
|
}
|
||||||
qty = outStructObj.getString("canuse_qty");
|
qty = outStructObj.getString("canuse_qty");
|
||||||
@@ -489,8 +391,9 @@ 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 = '" + start_point_code + "'");
|
||||||
.update(lock_map, "point_code = '" + start_point_code + "'");
|
|
||||||
|
|
||||||
// 减少库存可用数量
|
// 减少库存可用数量
|
||||||
StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
|
StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
@@ -535,8 +438,10 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pullBack(String task_id) {}
|
public void pullBack(String task_id) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {}
|
public void cancel(String task_id) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,9 +143,7 @@ public class FmjToPackIngTask 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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,20 +54,14 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
// 解锁仓位,托盘信息,回写到点位上去
|
// 解锁仓位,托盘信息,回写到点位上去
|
||||||
String vehicle_code = jsonTask.getString("vehicle_code");
|
String vehicle_code = jsonTask.getString("vehicle_code");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
JSONObject endpointObj =
|
JSONObject endpointObj = pointTab.query("point_code='" + jsonTask.getString("next_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("next_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
endpointObj.put("lock_type", "00");
|
endpointObj.put("lock_type", "00");
|
||||||
endpointObj.put("point_status", "01");
|
endpointObj.put("point_status", "01");
|
||||||
endpointObj.put("vehicle_code", vehicle_code);
|
endpointObj.put("vehicle_code", vehicle_code);
|
||||||
endpointObj.put("update_time", DateUtil.now());
|
endpointObj.put("update_time", DateUtil.now());
|
||||||
pointTab.update(endpointObj);
|
pointTab.update(endpointObj);
|
||||||
|
|
||||||
JSONObject startPointObj =
|
JSONObject startPointObj = pointTab.query("point_code='" + jsonTask.getString("start_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("start_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
// 调用mes接口
|
// 调用mes接口
|
||||||
HashMap hashMap = new HashMap();
|
HashMap hashMap = new HashMap();
|
||||||
hashMap.put("vehicle_code", startPointObj.getString("vehicle_code"));
|
hashMap.put("vehicle_code", startPointObj.getString("vehicle_code"));
|
||||||
@@ -82,16 +76,17 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
taskTab.update(jsonTask);
|
taskTab.update(jsonTask);
|
||||||
|
|
||||||
// 将组盘表删除
|
// 将组盘表删除
|
||||||
WQLObject.getWQLObject("st_buss_vehiclegroup")
|
WQLObject.getWQLObject("st_buss_vehiclegroup").delete("vehicle_code = '" + vehicle_code + "'");
|
||||||
.delete("vehicle_code = '" + vehicle_code + "'");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findStartPoint() {}
|
public void findStartPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {}
|
public void findNextPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
@@ -106,19 +101,11 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
// 假如起点是KTPHCW3,就需要送到堆叠位
|
// 假如起点是KTPHCW3,就需要送到堆叠位
|
||||||
if (StrUtil.equals(start_point_code, "KTPDDW3")) {
|
if (StrUtil.equals(start_point_code, "KTPDDW3")) {
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
||||||
JSONArray pointarr =
|
JSONArray pointarr = WQL.getWO("ACSTOMES_001").addParam("area_type", AreaEnum.KTTHCQ.getCode()).addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
WQL.getWO("ACSTOMES_001")
|
|
||||||
.addParam("area_type", AreaEnum.KTTHCQ.getCode())
|
|
||||||
.addParam("flag", "4")
|
|
||||||
.process()
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
// 更新点位
|
// 更新点位
|
||||||
PointUpdateUtil.updatePoint(pointarr);
|
PointUpdateUtil.updatePoint(pointarr);
|
||||||
// 查询有没有空的点位
|
// 查询有没有空的点位
|
||||||
JSONObject pointObj =
|
JSONObject pointObj = point_table.query("area_type='" + AreaEnum.KTTHCQ.getCode() + "' and point_status='00'").uniqueResult(0);
|
||||||
point_table
|
|
||||||
.query("area_type='" + AreaEnum.KTTHCQ.getCode() + "' and point_status='00'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(pointObj)) {
|
if (ObjectUtil.isEmpty(pointObj)) {
|
||||||
throw new BadRequestException("未找到合适的点位");
|
throw new BadRequestException("未找到合适的点位");
|
||||||
}
|
}
|
||||||
@@ -137,19 +124,9 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
|||||||
if (StrUtil.isEmpty(vehicle_code) || "0000".equals(vehicle_code) || "0".equals(vehicle_code)) {
|
if (StrUtil.isEmpty(vehicle_code) || "0000".equals(vehicle_code) || "0".equals(vehicle_code)) {
|
||||||
vehicle_code = startPoint.getVehicle_code();
|
vehicle_code = startPoint.getVehicle_code();
|
||||||
}
|
}
|
||||||
// if (StrUtil.isEmpty(vehicle_code)) {
|
|
||||||
// throw new BadRequestException("载具未找到!");
|
|
||||||
// }
|
|
||||||
// 判断起点有没有未完成的指令
|
// 判断起点有没有未完成的指令
|
||||||
JSONObject beforTaskObj =
|
JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
taskTable
|
|
||||||
.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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
@@ -159,8 +136,7 @@ public class SendEmptyVehicleTask 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 = '" + next_point_code + "'");
|
||||||
.update(lock_map, "point_code = '" + next_point_code + "'");
|
|
||||||
}
|
}
|
||||||
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
// 生成任务
|
// 生成任务
|
||||||
@@ -188,16 +164,16 @@ public class SendEmptyVehicleTask 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pullBack(String task_id) {}
|
public void pullBack(String task_id) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {}
|
public void cancel(String task_id) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,8 +53,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
map.put("update_optname", UserInfoUtil.getNickName());
|
map.put("update_optname", UserInfoUtil.getNickName());
|
||||||
map.put("update_time", DateUtil.now());
|
map.put("update_time", DateUtil.now());
|
||||||
map.put("bill_status", "40");
|
map.put("bill_status", "40");
|
||||||
WQLObject.getWQLObject("ST_IVT_workProcedureIOS")
|
WQLObject.getWQLObject("ST_IVT_workProcedureIOS").update(map, "task_id='" + jsonTask.getString("task_id") + "'");
|
||||||
.update(map, "task_id='" + jsonTask.getString("task_id") + "'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
||||||
@@ -105,20 +104,14 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
// 解锁仓位,托盘信息,回写到点位上去
|
// 解锁仓位,托盘信息,回写到点位上去
|
||||||
String vehicle_code = jsonTask.getString("vehicle_code");
|
String vehicle_code = jsonTask.getString("vehicle_code");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
JSONObject endpointObj =
|
JSONObject endpointObj = pointTab.query("point_code='" + jsonTask.getString("next_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("next_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
endpointObj.put("lock_type", "00");
|
endpointObj.put("lock_type", "00");
|
||||||
endpointObj.put("point_status", "02");
|
endpointObj.put("point_status", "02");
|
||||||
endpointObj.put("vehicle_code", vehicle_code);
|
endpointObj.put("vehicle_code", vehicle_code);
|
||||||
endpointObj.put("update_time", DateUtil.now());
|
endpointObj.put("update_time", DateUtil.now());
|
||||||
pointTab.update(endpointObj);
|
pointTab.update(endpointObj);
|
||||||
|
|
||||||
JSONObject startPointObj =
|
JSONObject startPointObj = pointTab.query("point_code='" + jsonTask.getString("start_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("start_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
startPointObj.put("lock_type", "00");
|
startPointObj.put("lock_type", "00");
|
||||||
startPointObj.put("point_status", "00");
|
startPointObj.put("point_status", "00");
|
||||||
@@ -148,7 +141,8 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findStartPoint() {}
|
public void findStartPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {
|
public void findNextPoint() {
|
||||||
@@ -183,8 +177,7 @@ public class SendMaterialTask 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());
|
||||||
@@ -216,17 +209,9 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
throw new BadRequestException("起点不能为空!");
|
throw new BadRequestException("起点不能为空!");
|
||||||
}
|
}
|
||||||
// 判断起点有没有未完成的指令
|
// 判断起点有没有未完成的指令
|
||||||
JSONObject beforTaskObj =
|
JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
taskTable
|
|
||||||
.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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
PointService pointService = SpringContextHolder.getBean(PointService.class);
|
PointService pointService = SpringContextHolder.getBean(PointService.class);
|
||||||
PointDto startPoint = pointService.findByCode(start_point_code);
|
PointDto startPoint = pointService.findByCode(start_point_code);
|
||||||
@@ -259,12 +244,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
if (StrUtil.isEmpty(is_full)) {
|
if (StrUtil.isEmpty(is_full)) {
|
||||||
throw new BadRequestException("是否满托不能为空!");
|
throw new BadRequestException("是否满托不能为空!");
|
||||||
}
|
}
|
||||||
JSONObject workInfo =
|
JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1").addParam("code", start_point_code).process().uniqueResult(0);
|
||||||
WQL.getWO("QSTRUCT_RULE")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("code", start_point_code)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
String workprocedure_id = workInfo.getString("workprocedure_id");
|
String workprocedure_id = workInfo.getString("workprocedure_id");
|
||||||
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
|
||||||
// 用于判断是不是压制工序,
|
// 用于判断是不是压制工序,
|
||||||
@@ -301,14 +281,9 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
next_point_code = inStructObj.getString("struct_code");
|
next_point_code = inStructObj.getString("struct_code");
|
||||||
// 创建入库单据
|
// 创建入库单据
|
||||||
// 假如静置时间为0 或者为空,则取物料表上的静置时间
|
// 假如静置时间为0 或者为空,则取物料表上的静置时间
|
||||||
if (StrUtil.isEmpty(stewing_time)
|
if (StrUtil.isEmpty(stewing_time) || StrUtil.equals(stewing_time, "0") || "0.0".equals(stewing_time)) {
|
||||||
|| StrUtil.equals(stewing_time, "0")
|
|
||||||
|| "0.0".equals(stewing_time)) {
|
|
||||||
stewing_time =
|
stewing_time =
|
||||||
WQLObject.getWQLObject("md_me_material")
|
WQLObject.getWQLObject("md_me_material").query("material_id ='" + material_id + "'").uniqueResult(0).getString("stewing_time");
|
||||||
.query("material_id ='" + material_id + "'")
|
|
||||||
.uniqueResult(0)
|
|
||||||
.getString("stewing_time");
|
|
||||||
}
|
}
|
||||||
// 假如是烧制工序,静置时间都是0
|
// 假如是烧制工序,静置时间都是0
|
||||||
if (StrUtil.equals(workProcedureEnum.getCode(), WorkProcedureEnum.SZGX.getCode())) {
|
if (StrUtil.equals(workProcedureEnum.getCode(), WorkProcedureEnum.SZGX.getCode())) {
|
||||||
@@ -349,8 +324,7 @@ public class SendMaterialTask 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 = '" + next_point_code + "'");
|
||||||
.update(lock_map, "point_code = '" + next_point_code + "'");
|
|
||||||
JSONObject taskObj = new JSONObject();
|
JSONObject taskObj = new JSONObject();
|
||||||
taskObj.put("task_id", task_id);
|
taskObj.put("task_id", task_id);
|
||||||
taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
|
taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
|
||||||
@@ -372,12 +346,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
|||||||
taskTable.insert(taskObj);
|
taskTable.insert(taskObj);
|
||||||
|
|
||||||
// 如果是压料制下,或者是分拣送料需要更新组盘信息,将task_id 更新
|
// 如果是压料制下,或者是分拣送料需要更新组盘信息,将task_id 更新
|
||||||
JSONObject workInfo =
|
JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1").addParam("code", start_point_code).process().uniqueResult(0);
|
||||||
WQL.getWO("QSTRUCT_RULE")
|
|
||||||
.addParam("flag", "1")
|
|
||||||
.addParam("code", start_point_code)
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (StrUtil.equals(WorkProcedureEnum.YZGX.getCode(), workInfo.getString("workprocedure_code"))
|
if (StrUtil.equals(WorkProcedureEnum.YZGX.getCode(), workInfo.getString("workprocedure_code"))
|
||||||
|| StrUtil.equals(WorkProcedureEnum.FJGX.getCode(), workInfo.getString("workprocedure_code"))) {
|
|| StrUtil.equals(WorkProcedureEnum.FJGX.getCode(), workInfo.getString("workprocedure_code"))) {
|
||||||
WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||||
@@ -393,15 +362,13 @@ public class SendMaterialTask 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pullBack(String task_id) {}
|
public void pullBack(String task_id) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {
|
public void cancel(String task_id) {
|
||||||
|
|||||||
@@ -20,10 +20,14 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 压机到货架
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ToConveyorTask extends AbstractAcsTask {
|
public class ToConveyorTask extends AbstractAcsTask {
|
||||||
private final String THIS_CLASS = ToConveyorTask.class.getName();
|
private final String THIS_CLASS = ToConveyorTask.class.getName();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
/**
|
/**
|
||||||
@@ -36,15 +40,8 @@ public class ToConveyorTask extends AbstractAcsTask {
|
|||||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||||
//更新任务状态为执行中
|
//更新任务状态为执行中
|
||||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||||
|
|
||||||
jsonTask.put("update_time", DateUtil.now());
|
jsonTask.put("update_time", DateUtil.now());
|
||||||
taskTab.update(jsonTask);
|
taskTab.update(jsonTask);
|
||||||
HashMap map = new HashMap();
|
|
||||||
map.put("update_optid", UserInfoUtil.getCurrentUserId());
|
|
||||||
map.put("update_optname", UserInfoUtil.getNickName());
|
|
||||||
map.put("update_time", DateUtil.now());
|
|
||||||
map.put("bill_status", "40");
|
|
||||||
WQLObject.getWQLObject("ST_IVT_workProcedureIOS").update(map, "task_id='" + jsonTask.getString("task_id") + "'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
||||||
@@ -56,7 +53,6 @@ public class ToConveyorTask extends AbstractAcsTask {
|
|||||||
jsonTask.put("remark", "任务执行完成");
|
jsonTask.put("remark", "任务执行完成");
|
||||||
taskTab.update(jsonTask);
|
taskTab.update(jsonTask);
|
||||||
//调用接口反馈给嘉耐 搬运任务
|
//调用接口反馈给嘉耐 搬运任务
|
||||||
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("task_id", task_id);
|
param.put("task_id", task_id);
|
||||||
WmsToJnService wmsToJnService = new WmsToJnServiceImpl();
|
WmsToJnService wmsToJnService = new WmsToJnServiceImpl();
|
||||||
@@ -80,10 +76,6 @@ public class ToConveyorTask extends AbstractAcsTask {
|
|||||||
String vehicle_code = form.getString("vehicle_code");
|
String vehicle_code = form.getString("vehicle_code");
|
||||||
String start_point_code = form.getString("start_point_code");
|
String start_point_code = form.getString("start_point_code");
|
||||||
String next_point_code = form.getString("next_point_code");
|
String next_point_code = form.getString("next_point_code");
|
||||||
String material_id = form.getString("material_id");
|
|
||||||
String is_full = form.getString("is_full");
|
|
||||||
String qty = form.getString("qty");
|
|
||||||
String pcsn = form.getString("pcsn");
|
|
||||||
String group_id = form.getString("group_id");
|
String group_id = form.getString("group_id");
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
|
|
||||||
@@ -94,18 +86,11 @@ public class ToConveyorTask 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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
String is_autopackage = "1";
|
|
||||||
if (StrUtil.equals(start_point_code, "MDJXS601")) {
|
|
||||||
is_autopackage = "0";
|
|
||||||
}
|
|
||||||
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
|
||||||
JSONObject materialObj = WQLObject.getWQLObject("md_me_material").query("material_id='" + material_id + "'").uniqueResult(0);
|
|
||||||
//更新组盘信息,将task_id 更新
|
//更新组盘信息,将task_id 更新
|
||||||
WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||||
JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0);
|
JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0);
|
||||||
|
|||||||
@@ -42,8 +42,7 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
map.put("update_optname", UserInfoUtil.getNickName());
|
map.put("update_optname", UserInfoUtil.getNickName());
|
||||||
map.put("update_time", DateUtil.now());
|
map.put("update_time", DateUtil.now());
|
||||||
map.put("bill_status", "40");
|
map.put("bill_status", "40");
|
||||||
WQLObject.getWQLObject("ST_IVT_workProcedureIOS")
|
WQLObject.getWQLObject("ST_IVT_workProcedureIOS").update(map, "task_id='" + jsonTask.getString("task_id") + "'");
|
||||||
.update(map, "task_id='" + jsonTask.getString("task_id") + "'");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
|
||||||
@@ -55,10 +54,7 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
taskTab.update(jsonTask);
|
taskTab.update(jsonTask);
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
// 将起点的载具清除
|
// 将起点的载具清除
|
||||||
JSONObject startPointObj =
|
JSONObject startPointObj = pointTab.query("point_code='" + jsonTask.getString("start_point_code") + "'").uniqueResult(0);
|
||||||
pointTab
|
|
||||||
.query("point_code='" + jsonTask.getString("start_point_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
// 假如起点是码垛位置则不需要更新
|
// 假如起点是码垛位置则不需要更新
|
||||||
if (!(StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW201")
|
if (!(StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW201")
|
||||||
|| StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW202")
|
|| StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW202")
|
||||||
@@ -75,16 +71,11 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
HashMap map = new HashMap();
|
HashMap map = new HashMap();
|
||||||
map.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
map.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||||
WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
|
WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
|
||||||
|
|
||||||
wmsToJnServiceImpl.feedBackPackage(map);
|
wmsToJnServiceImpl.feedBackPackage(map);
|
||||||
|
|
||||||
|
|
||||||
// 将组盘表删除
|
// 将组盘表删除
|
||||||
WQLObject group_Table = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
WQLObject group_Table = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||||
JSONObject groupObj =
|
JSONObject groupObj = group_Table.query("vehicle_code='" + jsonTask.getString("vehicle_code") + "' and is_delete='0'").uniqueResult(0);
|
||||||
group_Table
|
|
||||||
.query("vehicle_code='" + jsonTask.getString("vehicle_code") + "' and is_delete='0'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(groupObj)) {
|
if (ObjectUtil.isNotEmpty(groupObj)) {
|
||||||
groupObj.put("is_delete", "0");
|
groupObj.put("is_delete", "0");
|
||||||
group_Table.update(groupObj);
|
group_Table.update(groupObj);
|
||||||
@@ -93,10 +84,12 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findStartPoint() {}
|
public void findStartPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {}
|
public void findNextPoint() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
@@ -104,11 +97,6 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
String vehicle_code = form.getString("vehicle_code");
|
String vehicle_code = form.getString("vehicle_code");
|
||||||
String start_point_code = form.getString("start_point_code");
|
String start_point_code = form.getString("start_point_code");
|
||||||
String next_point_code = "BZSLW";
|
String next_point_code = "BZSLW";
|
||||||
String material_id = form.getString("material_id");
|
|
||||||
String is_full = form.getString("is_full");
|
|
||||||
String qty = form.getString("qty");
|
|
||||||
String pcsn = form.getString("pcsn");
|
|
||||||
String group_id = form.getString("group_id");
|
|
||||||
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
if (StrUtil.isEmpty(start_point_code)) {
|
if (StrUtil.isEmpty(start_point_code)) {
|
||||||
throw new BadRequestException("起点不能为空!");
|
throw new BadRequestException("起点不能为空!");
|
||||||
@@ -117,15 +105,7 @@ public class ToPackIngTask extends AbstractAcsTask {
|
|||||||
throw new BadRequestException("终点不能为空!");
|
throw new BadRequestException("终点不能为空!");
|
||||||
}
|
}
|
||||||
// 判断起点有没有未完成的指令
|
// 判断起点有没有未完成的指令
|
||||||
JSONObject beforTaskObj =
|
JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||||
taskTable
|
|
||||||
.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") + "' 未完成!");
|
||||||
}
|
}
|
||||||
@@ -158,16 +138,15 @@ public class ToPackIngTask 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pullBack(String task_id) {}
|
public void pullBack(String task_id) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancel(String task_id) {}
|
public void cancel(String task_id) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,12 +61,6 @@ public class KilnServiceImpl implements KilnService {
|
|||||||
WQLObject materialTab = WQLObject.getWQLObject("MD_ME_Material");
|
WQLObject materialTab = WQLObject.getWQLObject("MD_ME_Material");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||||
WQLObject workProcedureTab = WQLObject.getWQLObject("PDM_BASE_workProcedure");
|
WQLObject workProcedureTab = WQLObject.getWQLObject("PDM_BASE_workProcedure");
|
||||||
// 共用对象
|
|
||||||
JSONObject vehicleGroupObj = null; // 组盘信息
|
|
||||||
if (ObjectUtil.isNotEmpty(vehicle_code)) {
|
|
||||||
vehicleGroupObj = vehicleGroupTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
JSONObject materialObj = null; // 物料信息
|
JSONObject materialObj = null; // 物料信息
|
||||||
if (ObjectUtil.isNotEmpty(material_id)) { // 获取物料对象
|
if (ObjectUtil.isNotEmpty(material_id)) { // 获取物料对象
|
||||||
materialObj = materialTab.query("material_id = '" + jsonObject.getString("material_id") + "'").uniqueResult(0);
|
materialObj = materialTab.query("material_id = '" + jsonObject.getString("material_id") + "'").uniqueResult(0);
|
||||||
@@ -100,6 +94,9 @@ public class KilnServiceImpl implements KilnService {
|
|||||||
workprocedure_id = workprocedureObj.getString("workprocedure_id");
|
workprocedure_id = workprocedureObj.getString("workprocedure_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//先删除库存 永远插入库存
|
||||||
|
structIvtTab.delete("struct_id = '"+jsonObject.getString("struct_id")+"'");
|
||||||
|
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());
|
||||||
@@ -139,9 +136,14 @@ public class KilnServiceImpl implements KilnService {
|
|||||||
structIvt.put("instorage_time", DateUtil.now());
|
structIvt.put("instorage_time", DateUtil.now());
|
||||||
structIvtTab.update(structIvt);
|
structIvtTab.update(structIvt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 组盘表
|
// 组盘表
|
||||||
// 存在相应载具的话删掉在存
|
// 存在相应载具的话删掉在存
|
||||||
if (ObjectUtil.isNotEmpty(vehicle_code)) vehicleGroupTab.delete("vehicle_code = '" + vehicle_code + "'");
|
if (ObjectUtil.isNotEmpty(vehicle_code)) {
|
||||||
|
vehicleGroupTab.delete("vehicle_code = '" + vehicle_code + "'");
|
||||||
|
structIvtTab.delete("vehicle_code <> '" + vehicle_code + "' and struct_id = '"+jsonObject.getString("struct_id")+"'");
|
||||||
|
}
|
||||||
|
|
||||||
JSONObject vehicleGroup = new JSONObject();
|
JSONObject vehicleGroup = new JSONObject();
|
||||||
vehicleGroup.put("group_id", IdUtil.getSnowflake(1, 1).nextId());
|
vehicleGroup.put("group_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||||
vehicleGroup.put("vehicle_code", vehicle_code);
|
vehicleGroup.put("vehicle_code", vehicle_code);
|
||||||
|
|||||||
@@ -51,11 +51,6 @@ spring:
|
|||||||
wall:
|
wall:
|
||||||
config:
|
config:
|
||||||
multi-statement-allow: true
|
multi-statement-allow: true
|
||||||
# data:
|
|
||||||
# mongodb:
|
|
||||||
# host: 127.0.0.1
|
|
||||||
# port: 27017
|
|
||||||
# database: logdb
|
|
||||||
redis:
|
redis:
|
||||||
#数据库索引
|
#数据库索引
|
||||||
database: ${REDIS_DB:0}
|
database: ${REDIS_DB:0}
|
||||||
@@ -64,6 +59,16 @@ spring:
|
|||||||
password: ${REDIS_PWD:}
|
password: ${REDIS_PWD:}
|
||||||
#连接超时时间
|
#连接超时时间
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
|
redisson:
|
||||||
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://127.0.0.1:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
# 登录相关配置
|
# 登录相关配置
|
||||||
login:
|
login:
|
||||||
# 登录缓存
|
# 登录缓存
|
||||||
|
|||||||
@@ -56,11 +56,6 @@ spring:
|
|||||||
wall:
|
wall:
|
||||||
config:
|
config:
|
||||||
multi-statement-alagvslow: true
|
multi-statement-alagvslow: true
|
||||||
data:
|
|
||||||
mongodb:
|
|
||||||
host: 192.168.81.251
|
|
||||||
port: 27017
|
|
||||||
database: nlacs
|
|
||||||
redis:
|
redis:
|
||||||
#数据库索引
|
#数据库索引
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: prod
|
active: dev
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -197,6 +197,23 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="是否启用">
|
||||||
|
<el-select
|
||||||
|
v-model="query.is_used"
|
||||||
|
style="width: 370px"
|
||||||
|
placeholder="是否启用"
|
||||||
|
class="filter-item"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in dict.is_used"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item v-if="form.point_type=='03'" label="所属设备" prop="device_id">
|
<el-form-item v-if="form.point_type=='03'" label="所属设备" prop="device_id">
|
||||||
<el-select v-model="form.device_id" filterable placeholder="请选择" style="width: 370px;">
|
<el-select v-model="form.device_id" filterable placeholder="请选择" style="width: 370px;">
|
||||||
<el-option
|
<el-option
|
||||||
|
|||||||
Reference in New Issue
Block a user