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