diff --git a/wms/hd/nladmin-system/pom.xml b/wms/hd/nladmin-system/pom.xml
index 7e8de71..2dc19ad 100644
--- a/wms/hd/nladmin-system/pom.xml
+++ b/wms/hd/nladmin-system/pom.xml
@@ -18,6 +18,9 @@
5.5.0
+
+
+
org.reflections
reflections
@@ -97,6 +100,18 @@
spring-boot-starter-websocket
+
+ org.redisson
+ redisson-spring-boot-starter
+ 3.16.4
+
+
+ spring-boot-starter-actuator
+ org.springframework.boot
+
+
+
+
io.jsonwebtoken
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/PointUpdateUtil.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/PointUpdateUtil.java
index a858257..14fbf30 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/PointUpdateUtil.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/PointUpdateUtil.java
@@ -3,57 +3,53 @@ 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();
- if (StrUtil.equals("0", isConnect)) {
- return;
- }
- try {
- WmsToAcsServiceImpl wmsToAcsServiceImpl = new WmsToAcsServiceImpl();
- JSONObject joo = wmsToAcsServiceImpl.queryPointStatus(arr);
- JSONArray pointarr = joo.getJSONArray("data");
- WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
- for (int i = 0; i < pointarr.size(); i++) {
- JSONObject pointjo = pointarr.getJSONObject(i);
- String mode = pointjo.getString("mode");
- String point_status = "0" + pointjo.getString("move");
- String vehicle_code = pointjo.getString("barcode");
- String device_code = pointjo.getString("device_code");
- // 物料类型
- String weight = pointjo.getString("weight");
- // 物料
- String material_code = pointjo.getString("material");
- // 将托盘类型123,改为 03,04,05,默认给01
- String pallet_type = "01";
- if (!StrUtil.equals("0", pointjo.getString("pallet_type"))) {
- pallet_type = "0" + (pointjo.getIntValue("pallet_type") + 2);
+ public static void updatePoint(JSONArray arr) {
+ String isConnect = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
+ if (StrUtil.equals("0", isConnect)) {
+ return;
}
- pointjo.put("point_status", point_status);
- if (StrUtil.equals(vehicle_code, "0")) {
- vehicle_code = "";
- }
- JSONObject pointObj = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0);
- pointObj.put("vehicle_code", vehicle_code);
- pointObj.put("point_status", point_status);
- pointObj.put("vehicle_type", pallet_type);
- pointObj.put("material_type", weight);
- pointObj.put("material_code", material_code);
- pointObj.put("mode", mode);
- pointTable.update(pointObj);
- }
- } catch (Exception e) {
+ try {
+ WmsToAcsServiceImpl wmsToAcsServiceImpl = new WmsToAcsServiceImpl();
+ JSONObject joo = wmsToAcsServiceImpl.queryPointStatus(arr);
+ JSONArray pointarr = joo.getJSONArray("data");
+ WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
+ for (int i = 0; i < pointarr.size(); i++) {
+ JSONObject pointjo = pointarr.getJSONObject(i);
+ String mode = pointjo.getString("mode");
+ String point_status = "0" + pointjo.getString("move");
+ String vehicle_code = pointjo.getString("barcode");
+ String device_code = pointjo.getString("device_code");
+ // 物料类型
+ String weight = pointjo.getString("weight");
+ // 物料
+ String material_code = pointjo.getString("material");
+ // 将托盘类型123,改为 03,04,05,默认给01
+ String pallet_type = "01";
+ if (!StrUtil.equals("0", pointjo.getString("pallet_type"))) {
+ pallet_type = "0" + (pointjo.getIntValue("pallet_type") + 2);
+ }
+ pointjo.put("point_status", point_status);
+ if (StrUtil.equals(vehicle_code, "0")) {
+ vehicle_code = "";
+ }
+ JSONObject pointObj = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0);
+ pointObj.put("vehicle_code", vehicle_code);
+ pointObj.put("point_status", point_status);
+ pointObj.put("vehicle_type", pallet_type);
+ pointObj.put("material_type", weight);
+ pointObj.put("material_code", material_code);
+ pointObj.put("mode", mode);
+ pointTable.update(pointObj);
+ }
+ } catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace();
+ }
}
- }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index e933348..8ea2745 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -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 receiveTaskFromAcs(Map jsonObject) {
String type = (String) jsonObject.get("type");
- Interner pool = Interners.newWeakInterner();
- synchronized (pool.intern(type)) {
- return acsToWmsService.receiveTaskFromAcsTrancs(jsonObject);
+ 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 + "'的生产任务!");
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskServiceImpl.java
index 0668987..eba8e5c 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskServiceImpl.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/ProducetaskServiceImpl.java
@@ -332,26 +332,18 @@ 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);
+ 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);
- }
- String product_code = taskObj.getString("product_code");
- String material_code = taskObj.getString("material_code");
- if (ObjectUtil.isEmpty(product_code)) {
- throw new BadRequestException("物料【"+material_code+"】的垛形参数未设置!");
+ 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);
JSONArray arr = new JSONArray();
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java
index 96a2625..57ecfb5 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java
@@ -32,343 +32,303 @@ import java.util.HashMap;
*/
@Service
public class CallEmptyVehicleTask extends AbstractAcsTask {
- private final String THIS_CLASS = CallEmptyVehicleTask.class.getName();
+ private final String THIS_CLASS = CallEmptyVehicleTask.class.getName();
- @Override
- public void updateTaskStatus(JSONObject taskObj, String status) {
- /** 改变任务状态 */
- String task_id = taskObj.getString("task_id");
- WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
- JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
- if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
- // 更新任务状态为执行中
- jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
- jsonTask.put("update_time", DateUtil.now());
- taskTab.update(jsonTask);
- HashMap map = new HashMap();
- map.put("bill_status", "40");
- WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
- .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
+ @Override
+ public void updateTaskStatus(JSONObject taskObj, String status) {
+ /** 改变任务状态 */
+ String task_id = taskObj.getString("task_id");
+ WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
+ JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
+ if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
+ // 更新任务状态为执行中
+ jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
+ jsonTask.put("update_time", DateUtil.now());
+ taskTab.update(jsonTask);
+ HashMap map = new HashMap();
+ map.put("bill_status", "40");
+ WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
+ .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
+ }
+
+ if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
+ // 更新任务状态为完成
+ jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
+ jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
+ jsonTask.put("update_time", DateUtil.now());
+ jsonTask.put("remark", "任务执行完成");
+ /// 审核单据
+ HashMap map = new HashMap();
+ map.put("bill_status", "50");
+ WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
+ .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
+ // 解锁仓位,托盘信息,回写到点位上去
+ 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");
+ if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
+ JSONObject jo = new JSONObject();
+ jo.put("device_code", point_code);
+ jo.put("vehicle_code", vehicle_code);
+ SortingUtil.record(jo);
+ }
+
+ WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
+ 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);
+ startPointObj.put("lock_type", "00");
+ startPointObj.put("point_status", "00");
+ startPointObj.put("vehicle_code", "");
+ startPointObj.put("update_time", DateUtil.now());
+ pointTab.update(startPointObj);
+ taskTab.update(jsonTask);
+ }
}
- if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
- // 更新任务状态为完成
- jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
- jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
- jsonTask.put("update_time", DateUtil.now());
- jsonTask.put("remark", "任务执行完成");
- /// 审核单据
- HashMap map = new HashMap();
- map.put("bill_status", "50");
- WQLObject.getWQLObject("st_buss_EmptyVehicleRecord")
- .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'");
- // 解锁仓位,托盘信息,回写到点位上去
- 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");
- if (StrUtil.equals(area_type, AreaEnum.FJQY.getCode())) {
- JSONObject jo = new JSONObject();
- jo.put("device_code", point_code);
- jo.put("vehicle_code", vehicle_code);
- SortingUtil.record(jo);
- }
+ @Override
+ 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);
+ for (int i = 0; i < taskArry.size(); i++) {
+ JSONObject taskObj = taskArry.getJSONObject(i);
+ String task_id = taskObj.getString("task_id");
+ String next_point_code = taskObj.getString("next_point_code");
+ // 找一个合适的仓位
+ WQLObject Recordtable = WQLObject.getWQLObject("sch_base_task");
+ JSONObject IosObj =
+ Recordtable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
+ if (ObjectUtil.isEmpty(IosObj)) {
+ throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的单据!");
+ }
+ JSONObject param = new JSONObject();
+ param.put("area_type", IosObj.getString("end_area"));
+ param.put("vehicle_code", IosObj.getString("vehicle_code"));
+ JSONObject inStructObj = StructFindUtil.getEmptyVehicleInStruct(param);
+ 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_id = workInfo.getString("workprocedure_id");
+ WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
+ String start_area = "";
+ String vehicle_type = "";
+ switch (workProcedureEnum) {
- WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
- 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);
- startPointObj.put("lock_type", "00");
- startPointObj.put("point_status", "00");
- startPointObj.put("vehicle_code", "");
- startPointObj.put("update_time", DateUtil.now());
- pointTab.update(startPointObj);
- taskTab.update(jsonTask);
+ // 压制工序
+ case YZGX:
+ vehicle_type = VehicleTypeEnum.GTP.getCode();
+ start_area = AreaEnum.KTTDDQ.getCode();
+
+ // 分拣工序
+ case FJGX:
+ vehicle_type = VehicleTypeEnum.MTP.getCode();
+ start_area = AreaEnum.MTPQ.getCode();
+ default:
+ vehicle_type = VehicleTypeEnum.LZ.getCode();
+ start_area = AreaEnum.KTTDDQ.getCode();
+ }
+ // 寻找一个合适的仓位
+ JSONObject outStructObj = StructFindUtil.getEmptyVehicleOutStruct(param);
+ if (ObjectUtil.isEmpty(outStructObj)) {
+ continue;
+ }
+ String start_point_code = outStructObj.getString("struct_code");
+ String vehicle_code = outStructObj.getString("vehicle_code");
+ // 修改单据状态,将终点填入
+ IosObj.put("bill_status", "20");
+ IosObj.put("start_point_code", start_point_code);
+ IosObj.put("vehicle_code", vehicle_code);
+ IosObj.put("start_area", start_area);
+ Recordtable.update(IosObj);
+
+ // 起点加锁
+ HashMap lock_map = new HashMap();
+ lock_map.put("lock_type", "01");
+ 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());
+ taskObj.put("update_optname", UserInfoUtil.getNickName());
+ taskObj.put("update_time", DateUtil.now());
+ return;
+ }
}
- }
- @Override
- 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);
- for (int i = 0; i < taskArry.size(); i++) {
- JSONObject taskObj = taskArry.getJSONObject(i);
- String task_id = taskObj.getString("task_id");
- String next_point_code = taskObj.getString("next_point_code");
- // 找一个合适的仓位
- WQLObject Recordtable = WQLObject.getWQLObject("sch_base_task");
- JSONObject IosObj =
- Recordtable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
- if (ObjectUtil.isEmpty(IosObj)) {
- throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的单据!");
- }
- JSONObject param = new JSONObject();
- param.put("area_type", IosObj.getString("end_area"));
- param.put("vehicle_code", IosObj.getString("vehicle_code"));
- JSONObject inStructObj = StructFindUtil.getEmptyVehicleInStruct(param);
- 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");
- String workprocedure_id = workInfo.getString("workprocedure_id");
- WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
- String start_area = "";
- String vehicle_type = "";
- switch (workProcedureEnum) {
-
- // 压制工序
- case YZGX:
- vehicle_type = VehicleTypeEnum.GTP.getCode();
- start_area = AreaEnum.KTTDDQ.getCode();
-
- // 分拣工序
- case FJGX:
- vehicle_type = VehicleTypeEnum.MTP.getCode();
- start_area = AreaEnum.MTPQ.getCode();
- default:
- vehicle_type = VehicleTypeEnum.LZ.getCode();
- start_area = AreaEnum.KTTDDQ.getCode();
- }
- // 寻找一个合适的仓位
- JSONObject outStructObj = StructFindUtil.getEmptyVehicleOutStruct(param);
- if (ObjectUtil.isEmpty(outStructObj)) {
- continue;
- }
- String start_point_code = outStructObj.getString("struct_code");
- String vehicle_code = outStructObj.getString("vehicle_code");
- // 修改单据状态,将终点填入
- IosObj.put("bill_status", "20");
- IosObj.put("start_point_code", start_point_code);
- IosObj.put("vehicle_code", vehicle_code);
- IosObj.put("start_area", start_area);
- Recordtable.update(IosObj);
-
- // 起点加锁
- HashMap lock_map = new HashMap();
- lock_map.put("lock_type", "01");
- 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());
- taskObj.put("update_optname", UserInfoUtil.getNickName());
- taskObj.put("update_time", DateUtil.now());
- return;
+ @Override
+ public void findNextPoint() {
}
- }
- @Override
- public void findNextPoint() {}
-
- @Override
- public JSONObject renotifyAcs(String task_id) {
- return super.renotifyAcs(task_id);
- }
-
- @Override
- public String createTask(JSONObject form) {
- // 请求参数 终点不能为空 起点点位为空时,托盘类型不能为空,托盘不能为空!
- String next_point_code = form.getString("next_point_code");
- // 默认给一个测试托盘
- String vehicle_code = "999";
- String is_auto_issue = "1";
- if (StrUtil.isEmpty(next_point_code)) {
- throw new BadRequestException("终点不能为空!");
+ @Override
+ public JSONObject renotifyAcs(String task_id) {
+ return super.renotifyAcs(task_id);
}
- String start_point_code = form.getString("start_point_code");
- 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);
- if (ObjectUtil.isNotEmpty(beforTaskObj)) {
- throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
+
+ @Override
+ public String createTask(JSONObject form) {
+ // 请求参数 终点不能为空 起点点位为空时,托盘类型不能为空,托盘不能为空!
+ String next_point_code = form.getString("next_point_code");
+ // 默认给一个测试托盘
+ String vehicle_code = "999";
+ String is_auto_issue = "1";
+ if (StrUtil.isEmpty(next_point_code)) {
+ throw new BadRequestException("终点不能为空!");
+ }
+ String start_point_code = form.getString("start_point_code");
+ 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);
+ 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);
+ String workprocedure_id = workInfo.getString("workprocedure_id");
+ String device_id = workInfo.getString("device_id");
+ WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
+ switch (workProcedureEnum) {
+ // 压制工序
+ case YZGX:
+ vehicle_type = VehicleTypeEnum.GTP.getCode();
+ start_area = AreaEnum.KTTDDQ.getCode();
+ start_point_code = "KTPDDW5";
+ break;
+ // 分拣工序
+ case FJGX:
+ // 托盘类型取的物料对应的木托盘类型
+ 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");
+ start_area = AreaEnum.MTPQ.getCode();
+ is_auto_issue = "0";
+ break;
+ // 叠盘工序
+ case DPGX:
+ // 托盘类型取的物料对应的木托盘类型
+ vehicle_type = VehicleTypeEnum.GTP.getCode();
+ start_area = AreaEnum.KTTHCQ.getCode();
+ break;
+ default:
+ vehicle_type = VehicleTypeEnum.GTP.getCode();
+ start_area = AreaEnum.KTTHCQ.getCode();
+ }
+ JSONObject param = new JSONObject();
+ // 如果托盘类型不是02,则需要加上托盘类型(木托盘)
+ if (!StrUtil.equals(vehicle_type, "02")) {
+ param.put("vehicle_type", vehicle_type);
+ }
+ param.put("area_type", start_area);
+ param.put("point_code", start_point_code);
+
+ JSONObject outStructObj = StructFindUtil.getEmptyVehicleOutStruct(param);
+ if (ObjectUtil.isEmpty(outStructObj)) {
+ throw new BadRequestException("未找到合适的空托盘点位");
+ }
+
+ vehicle_code = outStructObj.getString("vehicle_code");
+ if (StrUtil.isEmpty(vehicle_code)) {
+ vehicle_code = "999";
+ }
+ // 如果是托盘区域/生成一个该类型的托盘
+ if (StrUtil.equals(workInfo.getString("area_type"), AreaEnum.FJQY.getCode())) {
+ vehicle_code = CodeUtil.getNewCode("VEHICCLE_CODE_MTP");
+ // 将托盘插入托盘表
+ WQLObject wo = WQLObject.getWQLObject("MD_PB_Vehicle");
+ JSONObject jo = new JSONObject();
+ VehicleDto dto = new VehicleDto();
+ dto.setVehicle_id(IdUtil.getSnowflake(1, 1).nextId());
+ dto.setVehicle_code(vehicle_code);
+ dto.setCreate_id(UserInfoUtil.getCurrentUserId());
+ dto.setVehicle_name(vehicle_code);
+ dto.setCreate_name(UserInfoUtil.getNickName());
+ dto.setUpdate_optid(UserInfoUtil.getCurrentUserId());
+ dto.setUpdate_optname(UserInfoUtil.getNickName());
+ dto.setUpdate_time(DateUtil.now());
+ dto.setCreate_time(DateUtil.now());
+ dto.setVehicle_type(vehicle_type);
+ JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
+ wo.insert(json);
+ }
+
+ start_point_code = outStructObj.getString("struct_code");
+ }
+ PointService pointService = SpringContextHolder.getBean(PointService.class);
+ PointDto nextPoint = pointService.findByCode(next_point_code);
+ // 生成空托盘搬运的单据
+ String task_status = TaskStatusEnum.SURE_END.getCode();
+ String bill_status = "10";
+ if (StrUtil.isNotEmpty(start_point_code)) {
+ // PointDto startPoint = pointService.findByCode(start_point_code);
+ bill_status = "20";
+ task_status = TaskStatusEnum.START_AND_POINT.getCode();
+ // 锁定起点
+ HashMap lock_map = new HashMap();
+ lock_map.put("lock_type", "01");
+ WQLObject.getWQLObject("sch_base_point")
+ .update(lock_map, "point_code = '" + start_point_code + "'");
+ }
+ String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ // 生成空载具搬运单据
+ JSONObject EmptyVehicleObj = new JSONObject();
+ EmptyVehicleObj.put("record_uuid", IdUtil.getSnowflake(1, 1).nextId());
+ EmptyVehicleObj.put("bill_code", CodeUtil.getNewCode("KZJ_BILL_CODE"));
+ EmptyVehicleObj.put("bill_status", bill_status);
+ EmptyVehicleObj.put("start_point_code", start_point_code);
+ EmptyVehicleObj.put("next_point_code", next_point_code);
+ EmptyVehicleObj.put("start_area", start_area);
+ EmptyVehicleObj.put("end_area", nextPoint.getArea_type());
+ EmptyVehicleObj.put("vehicle_code", vehicle_code);
+ EmptyVehicleObj.put("task_uuid", task_id);
+ EmptyVehicleObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ EmptyVehicleObj.put("create_name", UserInfoUtil.getNickName());
+ EmptyVehicleObj.put("create_time", DateUtil.now());
+ EmptyVehicleObj.put("is_delete", "0");
+ WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").insert(EmptyVehicleObj);
+ // 生成任务
+ JSONObject taskObj = new JSONObject();
+ taskObj.put("task_id", task_id);
+ taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
+ taskObj.put("task_type", "03");
+ taskObj.put("acs_task_type", "1");
+ taskObj.put("task_status", task_status);
+ taskObj.put("start_point_code", start_point_code);
+ taskObj.put("start_area", start_area);
+ taskObj.put("request_param", form.toJSONString());
+ taskObj.put("next_point_code", next_point_code);
+ taskObj.put("next_area", nextPoint.getArea_type());
+ taskObj.put("vehicle_code", vehicle_code);
+ taskObj.put("handle_class", THIS_CLASS);
+ taskObj.put("is_auto_issue", is_auto_issue);
+ taskObj.put("create_name", UserInfoUtil.getNickName());
+ taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ taskObj.put("create_time", DateUtil.now());
+ taskObj.put("is_delete", "0");
+ taskTable.insert(taskObj);
+
+ return task_id;
}
- 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);
- String workprocedure_id = workInfo.getString("workprocedure_id");
- String device_id = workInfo.getString("device_id");
- WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
- switch (workProcedureEnum) {
- // 压制工序
- case YZGX:
- vehicle_type = VehicleTypeEnum.GTP.getCode();
- start_area = AreaEnum.KTTDDQ.getCode();
- start_point_code = "KTPDDW5";
- break;
- // 分拣工序
- case FJGX:
- // 托盘类型取的物料对应的木托盘类型
- 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");
- start_area = AreaEnum.MTPQ.getCode();
- is_auto_issue = "0";
- break;
- // 叠盘工序
- case DPGX:
- // 托盘类型取的物料对应的木托盘类型
- vehicle_type = VehicleTypeEnum.GTP.getCode();
- start_area = AreaEnum.KTTHCQ.getCode();
- break;
- default:
- vehicle_type = VehicleTypeEnum.GTP.getCode();
- start_area = AreaEnum.KTTHCQ.getCode();
- }
- JSONObject param = new JSONObject();
- // 如果托盘类型不是02,则需要加上托盘类型(木托盘)
- if (!StrUtil.equals(vehicle_type, "02")) {
- param.put("vehicle_type", vehicle_type);
- }
- param.put("area_type", start_area);
- param.put("point_code", start_point_code);
- JSONObject outStructObj = StructFindUtil.getEmptyVehicleOutStruct(param);
- if (ObjectUtil.isEmpty(outStructObj)) {
- throw new BadRequestException("未找到合适的空托盘点位");
- }
-
- vehicle_code = outStructObj.getString("vehicle_code");
- if (StrUtil.isEmpty(vehicle_code)) {
- vehicle_code = "999";
- }
- // 如果是托盘区域/生成一个该类型的托盘
- if (StrUtil.equals(workInfo.getString("area_type"), AreaEnum.FJQY.getCode())) {
- vehicle_code = CodeUtil.getNewCode("VEHICCLE_CODE_MTP");
- // 将托盘插入托盘表
- WQLObject wo = WQLObject.getWQLObject("MD_PB_Vehicle");
- JSONObject jo = new JSONObject();
- VehicleDto dto = new VehicleDto();
- dto.setVehicle_id(IdUtil.getSnowflake(1, 1).nextId());
- dto.setVehicle_code(vehicle_code);
- dto.setCreate_id(UserInfoUtil.getCurrentUserId());
- dto.setVehicle_name(vehicle_code);
- dto.setCreate_name(UserInfoUtil.getNickName());
- dto.setUpdate_optid(UserInfoUtil.getCurrentUserId());
- dto.setUpdate_optname(UserInfoUtil.getNickName());
- dto.setUpdate_time(DateUtil.now());
- dto.setCreate_time(DateUtil.now());
- dto.setVehicle_type(vehicle_type);
- JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
- wo.insert(json);
- }
-
- start_point_code = outStructObj.getString("struct_code");
+ @Override
+ public void forceFinish(String task_id) {
+ JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
+ this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
}
- PointService pointService = SpringContextHolder.getBean(PointService.class);
- PointDto nextPoint = pointService.findByCode(next_point_code);
- // 生成空托盘搬运的单据
- String task_status = TaskStatusEnum.SURE_END.getCode();
- String bill_status = "10";
- if (StrUtil.isNotEmpty(start_point_code)) {
- // PointDto startPoint = pointService.findByCode(start_point_code);
- bill_status = "20";
- task_status = TaskStatusEnum.START_AND_POINT.getCode();
- // 锁定起点
- HashMap lock_map = new HashMap();
- lock_map.put("lock_type", "01");
- WQLObject.getWQLObject("sch_base_point")
- .update(lock_map, "point_code = '" + start_point_code + "'");
+
+ @Override
+ public void pullBack(String task_id) {
}
- String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- // 生成空载具搬运单据
- JSONObject EmptyVehicleObj = new JSONObject();
- EmptyVehicleObj.put("record_uuid", IdUtil.getSnowflake(1, 1).nextId());
- EmptyVehicleObj.put("bill_code", CodeUtil.getNewCode("KZJ_BILL_CODE"));
- EmptyVehicleObj.put("bill_status", bill_status);
- EmptyVehicleObj.put("start_point_code", start_point_code);
- EmptyVehicleObj.put("next_point_code", next_point_code);
- EmptyVehicleObj.put("start_area", start_area);
- EmptyVehicleObj.put("end_area", nextPoint.getArea_type());
- EmptyVehicleObj.put("vehicle_code", vehicle_code);
- EmptyVehicleObj.put("task_uuid", task_id);
- EmptyVehicleObj.put("create_id", UserInfoUtil.getCurrentUserId());
- EmptyVehicleObj.put("create_name", UserInfoUtil.getNickName());
- EmptyVehicleObj.put("create_time", DateUtil.now());
- EmptyVehicleObj.put("is_delete", "0");
- WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").insert(EmptyVehicleObj);
- // 生成任务
- JSONObject taskObj = new JSONObject();
- taskObj.put("task_id", task_id);
- taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
- taskObj.put("task_type", "03");
- taskObj.put("acs_task_type", "1");
- taskObj.put("task_status", task_status);
- taskObj.put("start_point_code", start_point_code);
- taskObj.put("start_area", start_area);
- taskObj.put("request_param", form.toJSONString());
- taskObj.put("next_point_code", next_point_code);
- taskObj.put("next_area", nextPoint.getArea_type());
- taskObj.put("vehicle_code", vehicle_code);
- taskObj.put("handle_class", THIS_CLASS);
- taskObj.put("is_auto_issue", is_auto_issue);
- taskObj.put("create_name", UserInfoUtil.getNickName());
- taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
- taskObj.put("create_time", DateUtil.now());
- taskObj.put("is_delete", "0");
- taskTable.insert(taskObj);
- return task_id;
- }
-
- @Override
- public void forceFinish(String task_id) {
- 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) {}
-
- @Override
- public void cancel(String task_id) {}
+ @Override
+ public void cancel(String task_id) {
+ }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java
index 2e021c3..cb42d8b 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java
@@ -33,510 +33,415 @@ import java.util.HashMap;
@Service
public class CallMaterialTask extends AbstractAcsTask {
- private final String THIS_CLASS = CallMaterialTask.class.getName();
+ private final String THIS_CLASS = CallMaterialTask.class.getName();
- @Override
- public void updateTaskStatus(JSONObject taskObj, String status) {
- /** 改变任务状态 */
- String task_id = taskObj.getString("task_id");
- WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
- JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
- if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
- // 更新任务状态为执行中
- jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
- jsonTask.put("update_time", DateUtil.now());
- taskTab.update(jsonTask);
- HashMap map = new HashMap();
- map.put("bill_status", "40");
- map.put("update_optid", UserInfoUtil.getCurrentUserId());
- map.put("update_optname", UserInfoUtil.getNickName());
- map.put("update_time", DateUtil.now());
- WQLObject.getWQLObject("ST_IVT_workProcedureIOS")
- .update(map, "task_id='" + jsonTask.getString("task_id") + "'");
- }
-
- if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
- // 更新任务状态为完成
- jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
- jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
- jsonTask.put("update_time", DateUtil.now());
- jsonTask.put("remark", "任务执行完成");
- /// 审核单据 增加库存 改变出入库表的状态
- WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- JSONObject mstObj =
- mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
- // 审核 加库存可和用数量
- StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
- mstObj.put("bill_status", "50");
- mstObj.put("confirm_optid", UserInfoUtil.getCurrentUserId());
- mstObj.put("confirm_optname", UserInfoUtil.getNickName());
- mstObj.put("confirm_time", DateUtil.now());
- mstTab.update(mstObj);
-
- String iostorinv_id = mstObj.getString("iostorinv_id");
- String next_point_code = mstObj.getString("end_point_code");
- String start_point_code = mstObj.getString("start_point_code");
- JSONObject param = new JSONObject();
- param.put("material_id", mstObj.getString("material_id"));
- param.put("bill_id", iostorinv_id);
- param.put("qty_unit_id", mstObj.getString("qty_unit_id"));
- param.put("pcsn", mstObj.getString("pcsn"));
- param.put("change_qty", mstObj.getString("qty"));
- param.put("vehicle_code", mstObj.getString("vehicle_code"));
- param.put("workprocedure_id", mstObj.getString("ivt_workprocedure_id"));
- PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
- PointDto nextPointDto = pointService.findByCode(next_point_code);
- if (ObjectUtil.isNull(nextPointDto)) {
- throw new BadRequestException("未找到可用点位:" + next_point_code);
- }
- PointDto startPointDto = pointService.findByCode(start_point_code);
- if (ObjectUtil.isNull(startPointDto)) {
- throw new BadRequestException("未找到可用点位:" + start_point_code);
- }
- Long point_id = startPointDto.getPoint_id();
- param.put("struct_id", point_id);
- ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_IVT);
- // 解锁仓位,托盘信息,回写到点位上去
- 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);
- 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())) {
- // 如果是下料料位置 托盘则是木托盘
- if (StrUtil.equals(next_point_code, "FJJXSXLW201")
- || StrUtil.equals(next_point_code, "FJJXSXLW202")
- || StrUtil.equals(next_point_code, "FJJXSXLW301")
- || StrUtil.equals(next_point_code, "FJJXSXLW302")) {
- JSONObject jo = new JSONObject();
- jo.put("device_code", next_point_code);
- jo.put("vehicle_code", vehicle_code);
- SortingUtil.record(jo);
+ @Override
+ public void updateTaskStatus(JSONObject taskObj, String status) {
+ /** 改变任务状态 */
+ String task_id = taskObj.getString("task_id");
+ WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
+ JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
+ if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
+ // 更新任务状态为执行中
+ jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
+ jsonTask.put("update_time", DateUtil.now());
+ taskTab.update(jsonTask);
+ HashMap map = new HashMap();
+ map.put("bill_status", "40");
+ map.put("update_optid", UserInfoUtil.getCurrentUserId());
+ map.put("update_optname", UserInfoUtil.getNickName());
+ map.put("update_time", DateUtil.now());
+ WQLObject.getWQLObject("ST_IVT_workProcedureIOS")
+ .update(map, "task_id='" + jsonTask.getString("task_id") + "'");
}
- // 如果是上料位置 则需要去找点位记录表上的托盘记录
- else {
- String flag = "8";
- 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);
- for (int i = 0; i < paramArr.size(); i++) {
- JSONObject jo = paramArr.getJSONObject(i);
- SortingUtil.record(jo);
- }
+
+ if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
+ // 更新任务状态为完成
+ jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
+ jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
+ jsonTask.put("update_time", DateUtil.now());
+ jsonTask.put("remark", "任务执行完成");
+ /// 审核单据 增加库存 改变出入库表的状态
+ WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ JSONObject mstObj =
+ mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
+ // 审核 加库存可和用数量
+ StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
+ mstObj.put("bill_status", "50");
+ mstObj.put("confirm_optid", UserInfoUtil.getCurrentUserId());
+ mstObj.put("confirm_optname", UserInfoUtil.getNickName());
+ mstObj.put("confirm_time", DateUtil.now());
+ mstTab.update(mstObj);
+
+ String iostorinv_id = mstObj.getString("iostorinv_id");
+ String next_point_code = mstObj.getString("end_point_code");
+ String start_point_code = mstObj.getString("start_point_code");
+ JSONObject param = new JSONObject();
+ param.put("material_id", mstObj.getString("material_id"));
+ param.put("bill_id", iostorinv_id);
+ param.put("qty_unit_id", mstObj.getString("qty_unit_id"));
+ param.put("pcsn", mstObj.getString("pcsn"));
+ param.put("change_qty", mstObj.getString("qty"));
+ param.put("vehicle_code", mstObj.getString("vehicle_code"));
+ param.put("workprocedure_id", mstObj.getString("ivt_workprocedure_id"));
+ PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
+ PointDto nextPointDto = pointService.findByCode(next_point_code);
+ if (ObjectUtil.isNull(nextPointDto)) {
+ throw new BadRequestException("未找到可用点位:" + next_point_code);
+ }
+ PointDto startPointDto = pointService.findByCode(start_point_code);
+ if (ObjectUtil.isNull(startPointDto)) {
+ 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);
+ 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())) {
+ // 如果是下料料位置 托盘则是木托盘
+ if (StrUtil.equals(next_point_code, "FJJXSXLW201")
+ || StrUtil.equals(next_point_code, "FJJXSXLW202")
+ || StrUtil.equals(next_point_code, "FJJXSXLW301")
+ || StrUtil.equals(next_point_code, "FJJXSXLW302")) {
+ JSONObject jo = new JSONObject();
+ jo.put("device_code", next_point_code);
+ jo.put("vehicle_code", vehicle_code);
+ SortingUtil.record(jo);
+ }
+ // 如果是上料位置 则需要去找点位记录表上的托盘记录
+ else {
+ String flag = "8";
+ 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);
+ 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);
+ if (ObjectUtil.isNotEmpty(startPointObj)) {
+ // 仓位库存表【ST_IVT_StructIvt】
+ WQLObject ivtTab = WQLObject.getWQLObject("ST_IVT_StructIvt");
+ startPointObj.put("lock_type", "00");
+ startPointObj.put("point_status", "00");
+ startPointObj.put("vehicle_code", "");
+ startPointObj.put("update_time", DateUtil.now());
+ pointTab.update(startPointObj);
+ taskTab.update(jsonTask);
+ ivtTab.delete("struct_id = '" + point_id + "'");
+ }
+
+ // 2是出窑缓存货架,调用反馈出冷却缓冲区
+ // 3是木托盘缓存货架,调用反馈半木托出临时库区
+ String point_type = startPointObj.getString("point_type");
+ JSONObject jo = new JSONObject();
+ jo.put("task_id", task_id);
+ WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
+ if (StrUtil.equals(point_type, AreaEnum.CYHCHJ.getCode())) {
+ wmsToJnServiceImpl.feedBackOutWait(jo);
+ }
+ if (StrUtil.equals(point_type, AreaEnum.BTHCQ.getCode())) {
+ wmsToJnServiceImpl.feedBackOutPartStock(jo);
+ }
}
- }
- 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");
- startPointObj.put("lock_type", "00");
- startPointObj.put("point_status", "00");
- startPointObj.put("vehicle_code", "");
- startPointObj.put("update_time", DateUtil.now());
- pointTab.update(startPointObj);
- taskTab.update(jsonTask);
- ivtTab.delete("struct_id = '" + point_id + "'");
- }
+ }
- // 2是出窑缓存货架,调用反馈出冷却缓冲区
- // 3是木托盘缓存货架,调用反馈半木托出临时库区
- String point_type = startPointObj.getString("point_type");
- JSONObject jo = new JSONObject();
- jo.put("task_id", task_id);
- WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
- if (StrUtil.equals(point_type, AreaEnum.CYHCHJ.getCode())) {
- wmsToJnServiceImpl.feedBackOutWait(jo);
- }
- if (StrUtil.equals(point_type, AreaEnum.BTHCQ.getCode())) {
- wmsToJnServiceImpl.feedBackOutPartStock(jo);
- }
+ @Override
+ public void findStartPoint() {
+ String task_status = TaskStatusEnum.SURE_START.getCode();
+ WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
+ JSONArray taskArry =
+ taskTab
+ .query(
+ "task_status='"
+ + task_status
+ + "' AND handle_class='"
+ + THIS_CLASS
+ + "' AND is_delete='0' ")
+ .getResultJSONArray(0);
+ for (int i = 0; i < taskArry.size(); i++) {
+ JSONObject taskObj = taskArry.getJSONObject(i);
+ String task_id = taskObj.getString("task_id");
+ // 1 将任务修改为分配 2将终点写入,完成分配,3 加锁点位
+ // 找一个合适的仓位
+ WQLObject ProcedureIOStable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ JSONObject IosObj =
+ ProcedureIOStable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
+ if (ObjectUtil.isEmpty(IosObj)) {
+ throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的入库单据!");
+ }
+ JSONObject param = new JSONObject();
+ param.put("material_id", IosObj.getString("material_id"));
+ param.put("area_type", IosObj.getString("start_area"));
+ JSONObject inStructObj = StructFindUtil.getOutStruct(param);
+ if (ObjectUtil.isEmpty(inStructObj)) {
+ throw new BadRequestException("未找到合适的出库仓位!");
+ }
+ // 修改单据状态,将终点填入
+ IosObj.put("bill_status", "20");
+ IosObj.put("start_point_code", inStructObj.getString("struct_code"));
+ ProcedureIOStable.update(IosObj);
+ // 终点加锁
+ 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") + "'");
+ // 修改任务状态
+ taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
+ taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
+ taskObj.put("update_optname", UserInfoUtil.getNickName());
+ taskObj.put("update_time", DateUtil.now());
+ taskTab.update(taskObj);
+ }
}
- }
- @Override
- public void findStartPoint() {
- String task_status = TaskStatusEnum.SURE_START.getCode();
- WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
- JSONArray taskArry =
- taskTab
- .query(
- "task_status='"
- + task_status
- + "' AND handle_class='"
- + THIS_CLASS
- + "' AND is_delete='0' ")
- .getResultJSONArray(0);
- for (int i = 0; i < taskArry.size(); i++) {
- JSONObject taskObj = taskArry.getJSONObject(i);
- String task_id = taskObj.getString("task_id");
- // 1 将任务修改为分配 2将终点写入,完成分配,3 加锁点位
- // 找一个合适的仓位
- WQLObject ProcedureIOStable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- JSONObject IosObj =
- ProcedureIOStable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
- if (ObjectUtil.isEmpty(IosObj)) {
- throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的入库单据!");
- }
- JSONObject param = new JSONObject();
- param.put("material_id", IosObj.getString("material_id"));
- param.put("area_type", IosObj.getString("start_area"));
- JSONObject inStructObj = StructFindUtil.getOutStruct(param);
- if (ObjectUtil.isEmpty(inStructObj)) {
- throw new BadRequestException("未找到合适的出库仓位!");
- }
- // 修改单据状态,将终点填入
- IosObj.put("bill_status", "20");
- IosObj.put("start_point_code", inStructObj.getString("struct_code"));
- ProcedureIOStable.update(IosObj);
- // 终点加锁
- 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") + "'");
- // 修改任务状态
- taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
- taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
- taskObj.put("update_optname", UserInfoUtil.getNickName());
- taskObj.put("update_time", DateUtil.now());
- taskTab.update(taskObj);
+ @Override
+ public void findNextPoint() {
}
- }
- @Override
- public void findNextPoint() {}
-
- @Override
- public String createTask(JSONObject form) {
- // 请求参数 终点不能为空 物料,数量,客户,批次,创建方式,托盘,是否满托不能为空! 起点点位不为空时,单据编号不能为空!
- String start_point_code = form.getString("start_point_code");
- String next_point_code = form.getString("next_point_code");
- String vehicle_code = form.getString("vehicle_code");
- String task_status = TaskStatusEnum.SURE_START.getCode();
- String material_id = form.getString("material_id");
- String create_mode = form.getString("create_mode");
- String pcsn = form.getString("pcsn");
- String is_full = form.getString("is_full");
- String workprocedure_id = form.getString("workprocedure_id");
- String group_device = form.getString("group_device");
- WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
- String iostorinv_id = form.getString("iostorinv_id");
- if (StrUtil.isEmpty(next_point_code)) {
- throw new BadRequestException("终点不能为空!");
- }
- if (StrUtil.isEmpty(material_id)) {
- throw new BadRequestException("物料标识不能为空!");
- }
- if (StrUtil.isEmpty(create_mode)) {
- throw new BadRequestException("创建方式不能为空!");
- }
- if (StrUtil.isEmpty(is_full)) {
- throw new BadRequestException("是否满托不能为空!");
- }
- // 判断终点有没有未完成的指令
- 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") + "' 未完成!");
- }
- PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
- String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- String start_area = "";
- String startArea_type = "";
- String bill_type = "";
- String qty = "";
- String qty_unit_id = "";
- String ivt_workprocedure_id = "";
- WQLObject iosTable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- if (StrUtil.isNotEmpty(start_point_code)) {
- if (StrUtil.isEmpty(iostorinv_id)) {
- throw new BadRequestException("入库单据号不能为空!");
- }
- JSONObject IosObj = iosTable.query("iostorinv_id='" + iostorinv_id + "'").uniqueResult(0);
- 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);
- if (ObjectUtil.isEmpty(ivtObj)) {
- throw new BadRequestException("仓位为'" + StartPoint.getPoint_code() + "'的库存信息不存在!");
- }
- qty = ivtObj.getString("canuse_qty");
- qty_unit_id = ivtObj.getString("qty_unit_id");
- ivt_workprocedure_id = ivtObj.getString("ivt_workprocedure_id");
- }
- PointDto nextPoint = pointService.findByCode(next_point_code);
- // 如果没给起点,根据终点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
- if (StrUtil.isEmpty(start_point_code)) {
- if (StrUtil.isEmpty(workprocedure_id)) {
- JSONObject workInfo =
- WQL.getWO("QSTRUCT_RULE")
- .addParam("flag", "1")
- .addParam("code", next_point_code)
- .process()
+ @Override
+ public String createTask(JSONObject form) {
+ // 请求参数 终点不能为空 物料,数量,客户,批次,创建方式,托盘,是否满托不能为空! 起点点位不为空时,单据编号不能为空!
+ String start_point_code = form.getString("start_point_code");
+ String next_point_code = form.getString("next_point_code");
+ String vehicle_code = form.getString("vehicle_code");
+ String task_status = TaskStatusEnum.SURE_START.getCode();
+ String material_id = form.getString("material_id");
+ String create_mode = form.getString("create_mode");
+ String pcsn = form.getString("pcsn");
+ String is_full = form.getString("is_full");
+ String workprocedure_id = form.getString("workprocedure_id");
+ String group_device = form.getString("group_device");
+ WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
+ String iostorinv_id = form.getString("iostorinv_id");
+ if (StrUtil.isEmpty(next_point_code)) {
+ throw new BadRequestException("终点不能为空!");
+ }
+ if (StrUtil.isEmpty(material_id)) {
+ throw new BadRequestException("物料标识不能为空!");
+ }
+ if (StrUtil.isEmpty(create_mode)) {
+ throw new BadRequestException("创建方式不能为空!");
+ }
+ if (StrUtil.isEmpty(is_full)) {
+ throw new BadRequestException("是否满托不能为空!");
+ }
+ // 判断终点有没有未完成的指令
+ JSONObject beforTaskObj = taskTable.query("is_delete='0' and next_point_code='" + next_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'")
.uniqueResult(0);
- workprocedure_id = workInfo.getString("workprocedure_id");
- WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
- switch (workProcedureEnum) {
- // 烧制工序
- case SZGX:
- startArea_type = AreaEnum.RYHCHJ.getCode();
- bill_type = BillTypeEnum.SZCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.YZGX.getId();
- break;
- // 分拣工序
- case FJGX:
- startArea_type = AreaEnum.CYHCHJ.getCode();
- bill_type = BillTypeEnum.FJCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.SZGX.getId();
- break;
- // 包装工序
- case BZGX:
- startArea_type = AreaEnum.BTHCQ.getCode();
- bill_type = BillTypeEnum.FJCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.FJGX.getId();
- break;
+ if (ObjectUtil.isNotEmpty(beforTaskObj)) {
+ throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
}
- } else {
- // (机械手呼叫空托盘,需要呼叫半满托盘)如果请求有工序,假如是压制工序,则库存工序是压制,起点是出窑货架
- WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
- switch (workProcedureEnum) {
- // 烧制工序
- case SZGX:
- startArea_type = AreaEnum.RYHCHJ.getCode();
- bill_type = BillTypeEnum.SZCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.YZGX.getId();
- break;
- // 分拣工序
- case FJGX:
- startArea_type = AreaEnum.CYHCHJ.getCode();
- bill_type = BillTypeEnum.FJCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.SZGX.getId();
- break;
- case BZGX:
- startArea_type = AreaEnum.BTHCQ.getCode();
- bill_type = BillTypeEnum.FJCK.getCode();
- ivt_workprocedure_id = WorkProcedureEnum.FJGX.getId();
- break;
+ PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
+ String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ String start_area = "";
+ String startArea_type = "";
+ String bill_type = "";
+ String qty = "";
+ String qty_unit_id = "";
+ String ivt_workprocedure_id = "";
+ WQLObject iosTable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ if (StrUtil.isNotEmpty(start_point_code)) {
+ if (StrUtil.isEmpty(iostorinv_id)) {
+ throw new BadRequestException("入库单据号不能为空!");
+ }
+ JSONObject IosObj = iosTable.query("iostorinv_id='" + iostorinv_id + "'").uniqueResult(0);
+ 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);
+ if (ObjectUtil.isEmpty(ivtObj)) {
+ throw new BadRequestException("仓位为'" + StartPoint.getPoint_code() + "'的库存信息不存在!");
+ }
+ qty = ivtObj.getString("canuse_qty");
+ qty_unit_id = ivtObj.getString("qty_unit_id");
+ ivt_workprocedure_id = ivtObj.getString("ivt_workprocedure_id");
}
- }
- JSONObject param = new JSONObject();
- param.put("material_id", material_id);
- param.put("area_type", startArea_type);
- param.put("workprocedure_id", ivt_workprocedure_id);
- 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())) {
- // 假如没有货,且下料位两个都为空,并且没有执行中的任务 下发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);
- 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");
- qty_unit_id = outStructObj.getString("qty_unit_id");
+ PointDto nextPoint = pointService.findByCode(next_point_code);
+ // 如果没给起点,根据终点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
+ if (StrUtil.isEmpty(start_point_code)) {
+ if (StrUtil.isEmpty(workprocedure_id)) {
+ JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1")
+ .addParam("code", next_point_code)
+ .process()
+ .uniqueResult(0);
+ workprocedure_id = workInfo.getString("workprocedure_id");
+ WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
+ switch (workProcedureEnum) {
+ // 烧制工序
+ case SZGX:
+ startArea_type = AreaEnum.RYHCHJ.getCode();
+ bill_type = BillTypeEnum.SZCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.YZGX.getId();
+ break;
+ // 分拣工序
+ case FJGX:
+ startArea_type = AreaEnum.CYHCHJ.getCode();
+ bill_type = BillTypeEnum.FJCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.SZGX.getId();
+ break;
+ // 包装工序
+ case BZGX:
+ startArea_type = AreaEnum.BTHCQ.getCode();
+ bill_type = BillTypeEnum.FJCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.FJGX.getId();
+ break;
+ }
+ } else {
+ // (机械手呼叫空托盘,需要呼叫半满托盘)如果请求有工序,假如是压制工序,则库存工序是压制,起点是出窑货架
+ WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
+ switch (workProcedureEnum) {
+ // 烧制工序
+ case SZGX:
+ startArea_type = AreaEnum.RYHCHJ.getCode();
+ bill_type = BillTypeEnum.SZCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.YZGX.getId();
+ break;
+ // 分拣工序
+ case FJGX:
+ startArea_type = AreaEnum.CYHCHJ.getCode();
+ bill_type = BillTypeEnum.FJCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.SZGX.getId();
+ break;
+ case BZGX:
+ startArea_type = AreaEnum.BTHCQ.getCode();
+ bill_type = BillTypeEnum.FJCK.getCode();
+ ivt_workprocedure_id = WorkProcedureEnum.FJGX.getId();
+ break;
+ }
+ }
+ JSONObject param = new JSONObject();
+ param.put("material_id", material_id);
+ param.put("area_type", startArea_type);
+ param.put("workprocedure_id", ivt_workprocedure_id);
+ 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())) {
+ // 假如没有货,且下料位两个都为空,并且没有执行中的任务 下发acs动作信号
+ // 更新分拣机械手 上下料位置的点位状态
+ JSONArray parr = WQL.getWO("ACSTOMES_001").addParam("area_type", AreaEnum.FJQY.getCode()).addParam("flag", "4").process().getResultJSONArray(0);
+ PointUpdateUtil.updatePoint(parr);
+ throw new BadRequestException("未找到合适的出库仓位!");
+ }
+ qty = outStructObj.getString("canuse_qty");
+ qty_unit_id = outStructObj.getString("qty_unit_id");
- start_point_code = outStructObj.getString("struct_code");
- vehicle_code = outStructObj.getString("vehicle_code");
- // 创建出库单据
- JSONObject iosObj = new JSONObject();
- iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- iosObj.put("iostorinv_id", iostorinv_id);
- iosObj.put("bill_code", CodeUtil.getNewCode("OUT_STORE_CODE"));
- iosObj.put("io_type", "1");
- iosObj.put("bill_type", bill_type);
- iosObj.put("workprocedure_id", workprocedure_id);
- iosObj.put("ivt_workprocedure_id", ivt_workprocedure_id);
- iosObj.put("material_id", material_id);
- iosObj.put("vehicle_code", outStructObj.getString("vehicle_code"));
- iosObj.put("producetask_id", outStructObj.getString("producetask_id"));
- iosObj.put("qty", qty);
- iosObj.put("qty_unit_id", qty_unit_id);
- // 默认是分配状态
- iosObj.put("bill_status", "20");
- iosObj.put("start_point_code", start_point_code);
- iosObj.put("end_point_code", next_point_code);
- iosObj.put("start_area", startArea_type);
- iosObj.put("end_area", nextPoint.getArea_type());
- iosObj.put("create_mode", create_mode);
- iosObj.put("task_id", task_id);
- iosObj.put("pcsn", pcsn);
- iosObj.put("create_id", "1");
- iosObj.put("create_name", "管理员");
- iosObj.put("create_time", DateUtil.now());
- WQLObject.getWQLObject("ST_IVT_workProcedureIOS").insert(iosObj);
- // 将组盘里面的task_id改为当前的任务
- WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
- JSONObject groupObj = groupTable.query("vehicle_code='" + vehicle_code + "'").uniqueResult(0);
- if (ObjectUtil.isNotEmpty(groupObj)) {
- groupObj.put("task_id", task_id);
- groupTable.update(groupObj);
- }
+ start_point_code = outStructObj.getString("struct_code");
+ vehicle_code = outStructObj.getString("vehicle_code");
+ // 创建出库单据
+ JSONObject iosObj = new JSONObject();
+ iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ iosObj.put("iostorinv_id", iostorinv_id);
+ iosObj.put("bill_code", CodeUtil.getNewCode("OUT_STORE_CODE"));
+ iosObj.put("io_type", "1");
+ iosObj.put("bill_type", bill_type);
+ iosObj.put("workprocedure_id", workprocedure_id);
+ iosObj.put("ivt_workprocedure_id", ivt_workprocedure_id);
+ iosObj.put("material_id", material_id);
+ iosObj.put("vehicle_code", outStructObj.getString("vehicle_code"));
+ iosObj.put("producetask_id", outStructObj.getString("producetask_id"));
+ iosObj.put("qty", qty);
+ iosObj.put("qty_unit_id", qty_unit_id);
+ // 默认是分配状态
+ iosObj.put("bill_status", "20");
+ iosObj.put("start_point_code", start_point_code);
+ iosObj.put("end_point_code", next_point_code);
+ iosObj.put("start_area", startArea_type);
+ iosObj.put("end_area", nextPoint.getArea_type());
+ iosObj.put("create_mode", create_mode);
+ iosObj.put("task_id", task_id);
+ iosObj.put("pcsn", pcsn);
+ iosObj.put("create_id", "1");
+ iosObj.put("create_name", "管理员");
+ iosObj.put("create_time", DateUtil.now());
+ WQLObject.getWQLObject("ST_IVT_workProcedureIOS").insert(iosObj);
+ // 将组盘里面的task_id改为当前的任务
+ WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup");
+ JSONObject groupObj = groupTable.query("vehicle_code='" + vehicle_code + "'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(groupObj)) {
+ groupObj.put("task_id", task_id);
+ groupTable.update(groupObj);
+ }
+ }
+
+ task_status = TaskStatusEnum.START_AND_POINT.getCode();
+
+ PointDto startPoint = pointService.findByCode(start_point_code);
+ start_area = nextPoint.getArea_type();
+ // 起点点加锁
+ HashMap lock_map = new HashMap();
+ lock_map.put("lock_type", "01");
+ WQLObject.getWQLObject("sch_base_point").update(lock_map, "point_code = '" + start_point_code + "'");
+
+
+ // 减少库存可用数量
+ StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
+ JSONObject param = new JSONObject();
+ param.put("material_id", material_id);
+ param.put("bill_id", iostorinv_id);
+ param.put("qty_unit_id", qty_unit_id);
+ param.put("change_qty", qty);
+ param.put("struct_id", startPoint.getPoint_id());
+ param.put("vehicle_code", startPoint.getVehicle_code());
+ param.put("workprocedure_id", ivt_workprocedure_id);
+
+ ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_CAN_USE);
+ JSONObject taskObj = new JSONObject();
+ taskObj.put("task_id", task_id);
+ taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
+ taskObj.put("task_type", "01");
+ taskObj.put("acs_task_type", "1");
+ taskObj.put("task_status", task_status);
+ taskObj.put("start_point_code", start_point_code);
+ taskObj.put("start_area", start_area);
+ taskObj.put("request_param", form.toJSONString());
+ taskObj.put("next_point_code", next_point_code);
+ taskObj.put("next_area", nextPoint.getArea_type());
+ taskObj.put("vehicle_code", vehicle_code);
+ taskObj.put("handle_class", THIS_CLASS);
+ taskObj.put("is_auto_issue", "1");
+ taskObj.put("create_name", "管理员");
+ taskObj.put("create_id", "1");
+ taskObj.put("create_time", DateUtil.now());
+ taskObj.put("is_delete", "0");
+ taskTable.insert(taskObj);
+ return task_id;
}
- task_status = TaskStatusEnum.START_AND_POINT.getCode();
+ @Override
+ public void forceFinish(String task_id) {
+ JSONObject taskObj =
+ WQLObject.getWQLObject("SCH_BASE_Task")
+ .query("task_id = '" + task_id + "'")
+ .uniqueResult(0);
+ this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
+ }
- PointDto startPoint = pointService.findByCode(start_point_code);
- start_area = nextPoint.getArea_type();
- // 起点点加锁
- HashMap lock_map = new HashMap();
- lock_map.put("lock_type", "01");
- WQLObject.getWQLObject("sch_base_point")
- .update(lock_map, "point_code = '" + start_point_code + "'");
- // 减少库存可用数量
- StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
- JSONObject param = new JSONObject();
- param.put("material_id", material_id);
- param.put("bill_id", iostorinv_id);
- param.put("qty_unit_id", qty_unit_id);
- param.put("change_qty", qty);
- param.put("struct_id", startPoint.getPoint_id());
- param.put("vehicle_code", startPoint.getVehicle_code());
- param.put("workprocedure_id", ivt_workprocedure_id);
+ @Override
+ public void pullBack(String task_id) {
+ }
- ivtService.addIvtFlow(param, IvtChangeTypeEnum.SUB_CAN_USE);
- JSONObject taskObj = new JSONObject();
- taskObj.put("task_id", task_id);
- taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
- taskObj.put("task_type", "01");
- taskObj.put("acs_task_type", "1");
- taskObj.put("task_status", task_status);
- taskObj.put("start_point_code", start_point_code);
- taskObj.put("start_area", start_area);
- taskObj.put("request_param", form.toJSONString());
- taskObj.put("next_point_code", next_point_code);
- taskObj.put("next_area", nextPoint.getArea_type());
- taskObj.put("vehicle_code", vehicle_code);
- taskObj.put("handle_class", THIS_CLASS);
- taskObj.put("is_auto_issue", "1");
- taskObj.put("create_name", "管理员");
- taskObj.put("create_id", "1");
- taskObj.put("create_time", DateUtil.now());
- taskObj.put("is_delete", "0");
- taskTable.insert(taskObj);
- return task_id;
- }
-
- @Override
- public void forceFinish(String task_id) {
- 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) {}
-
- @Override
- public void cancel(String task_id) {}
+ @Override
+ public void cancel(String task_id) {
+ }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java
index d230d65..93a341f 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java
@@ -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") + "' 未完成!");
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java
index 54a57b7..3b68374 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java
@@ -29,175 +29,151 @@ import java.util.HashMap;
@Service
public class SendEmptyVehicleTask extends AbstractAcsTask {
- private final String THIS_CLASS = SendEmptyVehicleTask.class.getName();
+ private final String THIS_CLASS = SendEmptyVehicleTask.class.getName();
- @Override
- public void updateTaskStatus(JSONObject taskObj, String status) {
- /** 改变任务状态 */
- String task_id = taskObj.getString("task_id");
- WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
- JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
- if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
- // 更新任务状态为执行中
- jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
- jsonTask.put("update_time", DateUtil.now());
- taskTab.update(jsonTask);
+ @Override
+ public void updateTaskStatus(JSONObject taskObj, String status) {
+ /** 改变任务状态 */
+ String task_id = taskObj.getString("task_id");
+ WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
+ JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
+ if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
+ // 更新任务状态为执行中
+ jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
+ jsonTask.put("update_time", DateUtil.now());
+ taskTab.update(jsonTask);
+ }
+
+ if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
+ // 更新任务状态为完成
+ jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
+ jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
+ jsonTask.put("update_time", DateUtil.now());
+ jsonTask.put("remark", "任务执行完成");
+
+ // 解锁仓位,托盘信息,回写到点位上去
+ 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);
+ 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);
+ // 调用mes接口
+ HashMap hashMap = new HashMap();
+ hashMap.put("vehicle_code", startPointObj.getString("vehicle_code"));
+ WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
+ wmsToJnServiceImpl.feedBackTrayBak(hashMap);
+
+ startPointObj.put("lock_type", "00");
+ startPointObj.put("point_status", "00");
+ startPointObj.put("vehicle_code", "");
+ startPointObj.put("update_time", DateUtil.now());
+ pointTab.update(startPointObj);
+ taskTab.update(jsonTask);
+
+ // 将组盘表删除
+ WQLObject.getWQLObject("st_buss_vehiclegroup").delete("vehicle_code = '" + vehicle_code + "'");
+ }
}
- if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
- // 更新任务状态为完成
- jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
- jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
- jsonTask.put("update_time", DateUtil.now());
- jsonTask.put("remark", "任务执行完成");
-
- // 解锁仓位,托盘信息,回写到点位上去
- 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);
- 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);
- // 调用mes接口
- HashMap hashMap = new HashMap();
- hashMap.put("vehicle_code", startPointObj.getString("vehicle_code"));
- WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
- wmsToJnServiceImpl.feedBackTrayBak(hashMap);
-
- startPointObj.put("lock_type", "00");
- startPointObj.put("point_status", "00");
- startPointObj.put("vehicle_code", "");
- startPointObj.put("update_time", DateUtil.now());
- pointTab.update(startPointObj);
- taskTab.update(jsonTask);
-
- // 将组盘表删除
- WQLObject.getWQLObject("st_buss_vehiclegroup")
- .delete("vehicle_code = '" + vehicle_code + "'");
- }
- }
-
- @Override
- public void findStartPoint() {}
-
- @Override
- public void findNextPoint() {}
-
- @Override
- public String createTask(JSONObject form) {
- // 送空托盘只会有钢托盘有这个需求, 所以终点永远都是 KTPDDW1 都是从码垛机械手送到KTPDDW1
- // 除开送到ktphcw 还有从空托盘缓存位3 送到堆叠区
- PointService pointService = SpringContextHolder.getBean(PointService.class);
- // 起点,托盘 不能为空,终点可以为空
- String vehicle_code = form.getString("vehicle_code");
- String start_point_code = form.getString("start_point_code");
- String next_point_code = "KTPDDW1";
- String next_area = AreaEnum.KTTDDQ.getCode();
- // 假如起点是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);
- // 更新点位
- PointUpdateUtil.updatePoint(pointarr);
- // 查询有没有空的点位
- JSONObject pointObj =
- point_table
- .query("area_type='" + AreaEnum.KTTHCQ.getCode() + "' and point_status='00'")
- .uniqueResult(0);
- if (ObjectUtil.isEmpty(pointObj)) {
- throw new BadRequestException("未找到合适的点位");
- }
- next_point_code = (String) pointObj.get("point_code");
- next_area = AreaEnum.KTTHCQ.getCode();
+ @Override
+ public void findStartPoint() {
}
- String task_status = TaskStatusEnum.START_AND_POINT.getCode();
-
- WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
- if (StrUtil.isEmpty(start_point_code)) {
- throw new BadRequestException("起点不能为空!");
+ @Override
+ public void findNextPoint() {
}
- PointDto startPoint = pointService.findByCode(start_point_code);
- // 假如载具为空,去点位表里面去取空托盘
- 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);
- if (ObjectUtil.isNotEmpty(beforTaskObj)) {
- throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
- }
- if (StrUtil.isNotEmpty(next_point_code)) {
- PointDto nextPoint = pointService.findByCode(next_point_code);
- task_status = TaskStatusEnum.START_AND_POINT.getCode();
- // 锁定终点
- HashMap lock_map = new HashMap();
- lock_map.put("lock_type", "01");
- WQLObject.getWQLObject("sch_base_point")
- .update(lock_map, "point_code = '" + next_point_code + "'");
- }
- String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- // 生成任务
- JSONObject taskObj = new JSONObject();
- taskObj.put("task_id", task_id);
- taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
- taskObj.put("task_type", "02");
- taskObj.put("acs_task_type", "1");
- taskObj.put("task_status", task_status);
- taskObj.put("start_point_code", start_point_code);
- taskObj.put("start_area", startPoint.getArea_type());
- taskObj.put("request_param", form.toJSONString());
- taskObj.put("next_point_code", next_point_code);
- taskObj.put("next_area", next_area);
- taskObj.put("vehicle_code", vehicle_code);
- taskObj.put("handle_class", THIS_CLASS);
- taskObj.put("is_auto_issue", "1");
- taskObj.put("create_name", UserInfoUtil.getNickName());
- taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
- taskObj.put("create_time", DateUtil.now());
- taskObj.put("is_delete", "0");
- taskTable.insert(taskObj);
- return task_id;
- }
- @Override
- public void forceFinish(String task_id) {
- JSONObject taskObj =
- WQLObject.getWQLObject("SCH_BASE_Task")
- .query("task_id = '" + task_id + "'")
- .uniqueResult(0);
- this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
- }
+ @Override
+ public String createTask(JSONObject form) {
+ // 送空托盘只会有钢托盘有这个需求, 所以终点永远都是 KTPDDW1 都是从码垛机械手送到KTPDDW1
+ // 除开送到ktphcw 还有从空托盘缓存位3 送到堆叠区
+ PointService pointService = SpringContextHolder.getBean(PointService.class);
+ // 起点,托盘 不能为空,终点可以为空
+ String vehicle_code = form.getString("vehicle_code");
+ String start_point_code = form.getString("start_point_code");
+ String next_point_code = "KTPDDW1";
+ String next_area = AreaEnum.KTTDDQ.getCode();
+ // 假如起点是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);
+ // 更新点位
+ PointUpdateUtil.updatePoint(pointarr);
+ // 查询有没有空的点位
+ JSONObject pointObj = point_table.query("area_type='" + AreaEnum.KTTHCQ.getCode() + "' and point_status='00'").uniqueResult(0);
+ if (ObjectUtil.isEmpty(pointObj)) {
+ throw new BadRequestException("未找到合适的点位");
+ }
+ next_point_code = (String) pointObj.get("point_code");
+ next_area = AreaEnum.KTTHCQ.getCode();
+ }
- @Override
- public void pullBack(String task_id) {}
+ String task_status = TaskStatusEnum.START_AND_POINT.getCode();
- @Override
- public void cancel(String task_id) {}
+ WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
+ if (StrUtil.isEmpty(start_point_code)) {
+ throw new BadRequestException("起点不能为空!");
+ }
+ PointDto startPoint = pointService.findByCode(start_point_code);
+ // 假如载具为空,去点位表里面去取空托盘
+ if (StrUtil.isEmpty(vehicle_code) || "0000".equals(vehicle_code) || "0".equals(vehicle_code)) {
+ vehicle_code = startPoint.getVehicle_code();
+ }
+
+ // 判断起点有没有未完成的指令
+ 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") + "' 未完成!");
+ }
+ if (StrUtil.isNotEmpty(next_point_code)) {
+ PointDto nextPoint = pointService.findByCode(next_point_code);
+ task_status = TaskStatusEnum.START_AND_POINT.getCode();
+ // 锁定终点
+ HashMap lock_map = new HashMap();
+ lock_map.put("lock_type", "01");
+ WQLObject.getWQLObject("sch_base_point").update(lock_map, "point_code = '" + next_point_code + "'");
+ }
+ String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ // 生成任务
+ JSONObject taskObj = new JSONObject();
+ taskObj.put("task_id", task_id);
+ taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
+ taskObj.put("task_type", "02");
+ taskObj.put("acs_task_type", "1");
+ taskObj.put("task_status", task_status);
+ taskObj.put("start_point_code", start_point_code);
+ taskObj.put("start_area", startPoint.getArea_type());
+ taskObj.put("request_param", form.toJSONString());
+ taskObj.put("next_point_code", next_point_code);
+ taskObj.put("next_area", next_area);
+ taskObj.put("vehicle_code", vehicle_code);
+ taskObj.put("handle_class", THIS_CLASS);
+ taskObj.put("is_auto_issue", "1");
+ taskObj.put("create_name", UserInfoUtil.getNickName());
+ taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ taskObj.put("create_time", DateUtil.now());
+ taskObj.put("is_delete", "0");
+ taskTable.insert(taskObj);
+ return task_id;
+ }
+
+ @Override
+ public void forceFinish(String task_id) {
+ 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) {
+ }
+
+ @Override
+ public void cancel(String task_id) {
+
+ }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java
index 6ea2d6e..ac955ab 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java
@@ -33,378 +33,345 @@ import java.util.HashMap;
@Service
@Slf4j
public class SendMaterialTask extends AbstractAcsTask {
- private final String THIS_CLASS = SendMaterialTask.class.getName();
+ private final String THIS_CLASS = SendMaterialTask.class.getName();
- @Override
- public void updateTaskStatus(JSONObject taskObj, String status) {
- /** 改变任务状态2 */
- String task_id = taskObj.getString("task_id");
- String car_no = taskObj.getString("car_no");
- WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
- JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
- if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
- // 更新任务状态为执行中
- jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
- jsonTask.put("update_time", DateUtil.now());
+ @Override
+ public void updateTaskStatus(JSONObject taskObj, String status) {
+ /** 改变任务状态2 */
+ String task_id = taskObj.getString("task_id");
+ String car_no = taskObj.getString("car_no");
+ WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
+ JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
+ if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
+ // 更新任务状态为执行中
+ jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
+ jsonTask.put("update_time", DateUtil.now());
- taskTab.update(jsonTask);
- 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") + "'");
+ 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)) {
+ // 更新任务状态为完成
+ jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
+ jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
+ jsonTask.put("update_time", DateUtil.now());
+ jsonTask.put("car_no", car_no);
+ jsonTask.put("remark", "任务执行完成");
+ /// 审核单据 增加库存 改变出入库表的状态
+ WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ JSONObject mstObj =
+ mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
+ // 审核 加库存可和用数量
+ StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
+ mstObj.put("bill_status", "50");
+ mstObj.put("confirm_optid", UserInfoUtil.getCurrentUserId());
+ mstObj.put("confirm_optname", UserInfoUtil.getNickName());
+ mstObj.put("confirm_time", DateUtil.now());
+ mstTab.update(mstObj);
+
+ String iostorinv_id = mstObj.getString("iostorinv_id");
+ String next_point_code = mstObj.getString("end_point_code");
+ String start_point_code = mstObj.getString("start_point_code");
+ JSONObject param = new JSONObject();
+ param.put("material_id", mstObj.getString("material_id"));
+ param.put("bill_id", iostorinv_id);
+ param.put("qty_unit_id", mstObj.getString("qty_unit_id"));
+ param.put("pcsn", mstObj.getString("pcsn"));
+ param.put("change_qty", mstObj.getString("qty"));
+ param.put("vehicle_code", mstObj.getString("vehicle_code"));
+ param.put("workprocedure_id", mstObj.getString("workprocedure_id"));
+ param.put("is_full", mstObj.getString("is_full"));
+ param.put("stewing_time", mstObj.getString("stewing_time"));
+ param.put("producetask_id", mstObj.getString("producetask_id"));
+
+ PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
+ PointDto nextPointDto = pointService.findByCode(next_point_code);
+ if (ObjectUtil.isNull(nextPointDto)) {
+ throw new BadRequestException("未找到可用点位:" + next_point_code);
+ }
+ PointDto startPointDto = pointService.findByCode(start_point_code);
+ if (ObjectUtil.isNull(startPointDto)) {
+ throw new BadRequestException("未找到可用点位:" + start_point_code);
+ }
+ param.put("struct_id", nextPointDto.getPoint_id());
+ ivtService.addIvtFlow(param, IvtChangeTypeEnum.ADD_IVT_AND_CAN_USE);
+ // 解锁仓位,托盘信息,回写到点位上去
+ 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);
+ 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);
+
+ startPointObj.put("lock_type", "00");
+ startPointObj.put("point_status", "00");
+ startPointObj.put("vehicle_code", "");
+ startPointObj.put("update_time", DateUtil.now());
+ pointTab.update(startPointObj);
+
+ taskTab.update(jsonTask);
+ String area_type = endpointObj.getString("area_type");
+ // 1压机下料货架调用接口反馈给嘉耐 搬运任务
+ // 2是出窑缓存货架,调用反馈入冷却缓冲区
+ // 3是木托盘缓存货架,调用反馈半木托入临时库区
+ JSONObject jo = new JSONObject();
+ jo.put("task_id", task_id);
+ jo.put("next_point_code", jsonTask.getString("next_point_code"));
+ WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
+ if (StrUtil.equals(area_type, AreaEnum.RYHCHJ.getCode())) {
+ wmsToJnServiceImpl.feedBackCarryRecord(jo);
+ }
+ if (StrUtil.equals(area_type, AreaEnum.CYHCHJ.getCode())) {
+ wmsToJnServiceImpl.feedBackInWait(jo);
+ }
+ if (StrUtil.equals(area_type, AreaEnum.BTHCQ.getCode())) {
+ wmsToJnServiceImpl.feedBackInPartStock(jo);
+ }
+ }
}
- if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
- // 更新任务状态为完成
- jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
- jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
- jsonTask.put("update_time", DateUtil.now());
- jsonTask.put("car_no", car_no);
- jsonTask.put("remark", "任务执行完成");
- /// 审核单据 增加库存 改变出入库表的状态
- WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- JSONObject mstObj =
- mstTab.query("task_id='" + task_id + "' and is_delete='0'").uniqueResult(0);
- // 审核 加库存可和用数量
- StoreIvtServiceImpl ivtService = new StoreIvtServiceImpl();
- mstObj.put("bill_status", "50");
- mstObj.put("confirm_optid", UserInfoUtil.getCurrentUserId());
- mstObj.put("confirm_optname", UserInfoUtil.getNickName());
- mstObj.put("confirm_time", DateUtil.now());
- mstTab.update(mstObj);
-
- String iostorinv_id = mstObj.getString("iostorinv_id");
- String next_point_code = mstObj.getString("end_point_code");
- String start_point_code = mstObj.getString("start_point_code");
- JSONObject param = new JSONObject();
- param.put("material_id", mstObj.getString("material_id"));
- param.put("bill_id", iostorinv_id);
- param.put("qty_unit_id", mstObj.getString("qty_unit_id"));
- param.put("pcsn", mstObj.getString("pcsn"));
- param.put("change_qty", mstObj.getString("qty"));
- param.put("vehicle_code", mstObj.getString("vehicle_code"));
- param.put("workprocedure_id", mstObj.getString("workprocedure_id"));
- param.put("is_full", mstObj.getString("is_full"));
- param.put("stewing_time", mstObj.getString("stewing_time"));
- param.put("producetask_id", mstObj.getString("producetask_id"));
-
- PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class);
- PointDto nextPointDto = pointService.findByCode(next_point_code);
- if (ObjectUtil.isNull(nextPointDto)) {
- throw new BadRequestException("未找到可用点位:" + next_point_code);
- }
- PointDto startPointDto = pointService.findByCode(start_point_code);
- if (ObjectUtil.isNull(startPointDto)) {
- throw new BadRequestException("未找到可用点位:" + start_point_code);
- }
- param.put("struct_id", nextPointDto.getPoint_id());
- ivtService.addIvtFlow(param, IvtChangeTypeEnum.ADD_IVT_AND_CAN_USE);
- // 解锁仓位,托盘信息,回写到点位上去
- 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);
- 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);
-
- startPointObj.put("lock_type", "00");
- startPointObj.put("point_status", "00");
- startPointObj.put("vehicle_code", "");
- startPointObj.put("update_time", DateUtil.now());
- pointTab.update(startPointObj);
-
- taskTab.update(jsonTask);
- String area_type = endpointObj.getString("area_type");
- // 1压机下料货架调用接口反馈给嘉耐 搬运任务
- // 2是出窑缓存货架,调用反馈入冷却缓冲区
- // 3是木托盘缓存货架,调用反馈半木托入临时库区
- JSONObject jo = new JSONObject();
- jo.put("task_id", task_id);
- jo.put("next_point_code", jsonTask.getString("next_point_code"));
- WmsToJnServiceImpl wmsToJnServiceImpl = new WmsToJnServiceImpl();
- if (StrUtil.equals(area_type, AreaEnum.RYHCHJ.getCode())) {
- wmsToJnServiceImpl.feedBackCarryRecord(jo);
- }
- if (StrUtil.equals(area_type, AreaEnum.CYHCHJ.getCode())) {
- wmsToJnServiceImpl.feedBackInWait(jo);
- }
- if (StrUtil.equals(area_type, AreaEnum.BTHCQ.getCode())) {
- wmsToJnServiceImpl.feedBackInPartStock(jo);
- }
+ @Override
+ public void findStartPoint() {
}
- }
- @Override
- public void findStartPoint() {}
-
- @Override
- public void findNextPoint() {
- String task_status = TaskStatusEnum.SURE_START.getCode();
- WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
- JSONArray taskArry = taskTab.query("task_status='" + task_status + "' AND handle_class='" + THIS_CLASS + "' AND is_delete='0' ")
- .getResultJSONArray(0);
- for (int i = 0; i < taskArry.size(); i++) {
- JSONObject taskObj = taskArry.getJSONObject(i);
- String task_id = taskObj.getString("task_id");
- String start_point_code = taskObj.getString("start_point_code");
- // 1 将任务修改为分配 2将终点写入,完成分配,3 加锁点位
- // 找一个合适的仓位
- WQLObject ProcedureIOStable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- JSONObject IosObj =
- ProcedureIOStable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
- if (ObjectUtil.isEmpty(IosObj)) {
- throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的入库单据!");
- }
- JSONObject param = new JSONObject();
- param.put("material_id", IosObj.getString("material_id"));
- param.put("area_type", IosObj.getString("end_area"));
- param.put("vehicle_code", IosObj.getString("vehicle_code"));
- JSONObject inStructObj = StructFindUtil.getInStruct(param);
- if (ObjectUtil.isEmpty(inStructObj)) {
- throw new BadRequestException("未找到合适的入库仓位!");
- }
- // 修改单据状态,将终点填入
- IosObj.put("bill_status", "20");
- IosObj.put("end_point_code", inStructObj.getString("struct_code"));
- ProcedureIOStable.update(IosObj);
- // 终点加锁
- 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") + "'");
- // 修改任务状态
- taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
- taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
- taskObj.put("update_optname", UserInfoUtil.getNickName());
- taskObj.put("update_time", DateUtil.now());
- taskTab.update(taskObj);
+ @Override
+ public void findNextPoint() {
+ String task_status = TaskStatusEnum.SURE_START.getCode();
+ WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
+ JSONArray taskArry = taskTab.query("task_status='" + task_status + "' AND handle_class='" + THIS_CLASS + "' AND is_delete='0' ")
+ .getResultJSONArray(0);
+ for (int i = 0; i < taskArry.size(); i++) {
+ JSONObject taskObj = taskArry.getJSONObject(i);
+ String task_id = taskObj.getString("task_id");
+ String start_point_code = taskObj.getString("start_point_code");
+ // 1 将任务修改为分配 2将终点写入,完成分配,3 加锁点位
+ // 找一个合适的仓位
+ WQLObject ProcedureIOStable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ JSONObject IosObj =
+ ProcedureIOStable.query("task_id='" + task_id + "' and is_delete ='0'").uniqueResult(0);
+ if (ObjectUtil.isEmpty(IosObj)) {
+ throw new BadRequestException("未找到任务号为'" + taskObj.getString("task_code") + "'的入库单据!");
+ }
+ JSONObject param = new JSONObject();
+ param.put("material_id", IosObj.getString("material_id"));
+ param.put("area_type", IosObj.getString("end_area"));
+ param.put("vehicle_code", IosObj.getString("vehicle_code"));
+ JSONObject inStructObj = StructFindUtil.getInStruct(param);
+ if (ObjectUtil.isEmpty(inStructObj)) {
+ throw new BadRequestException("未找到合适的入库仓位!");
+ }
+ // 修改单据状态,将终点填入
+ IosObj.put("bill_status", "20");
+ IosObj.put("end_point_code", inStructObj.getString("struct_code"));
+ ProcedureIOStable.update(IosObj);
+ // 终点加锁
+ 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") + "'");
+ // 修改任务状态
+ taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
+ taskObj.put("update_optid", UserInfoUtil.getCurrentUserId());
+ taskObj.put("update_optname", UserInfoUtil.getNickName());
+ taskObj.put("update_time", DateUtil.now());
+ taskTab.update(taskObj);
+ }
}
- }
- @Override
+ @Override
// @Transactional(rollbackFor = Exception.class)
- public String createTask(JSONObject form) {
- // 请求参数 载具、起点 物料,数量,客户,批次,创建方式 是否满托不能为空! 终点可以不为空时,入库单据编号不能为空
- 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 stewing_time = form.getString("stewing_time");
- String producetask_id = form.getString("producetask_id");
- String is_full = form.getString("is_full");
- String qty = form.getString("qty");
- String cust_id = form.getString("cust_id");
- String create_mode = form.getString("create_mode");
- String pcsn = form.getString("pcsn");
- String vehicle_code = form.getString("vehicle_code");
- String group_id = form.getString("group_id");
- String print_pc = form.getString("print_pc");
- WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
- if (StrUtil.isEmpty(start_point_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);
- if (ObjectUtil.isNotEmpty(beforTaskObj)) {
-// throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
- }
- PointService pointService = SpringContextHolder.getBean(PointService.class);
- PointDto startPoint = pointService.findByCode(start_point_code);
- String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- String qty_unit_id = "";
- String endArea_type = "";
- String bill_type = "";
- WQLObject iosTable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
- // 如果给了终点,更新入库单据,给pc、手持调用
- if (StrUtil.isNotEmpty(next_point_code)) {
- String iostorinv_id = form.getString("iostorinv_id");
- if (StrUtil.isEmpty(iostorinv_id)) {
- throw new BadRequestException("入库单据号不能为空!");
- }
- JSONObject IosObj = iosTable.query("iostorinv_id='" + iostorinv_id + "'").uniqueResult(0);
- IosObj.put("bill_status", "20");
- iosTable.update(IosObj);
- }
- // 如果没给终点,根据起点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
- if (StrUtil.isEmpty(next_point_code)) {
- if (StrUtil.isEmpty(material_id)) {
- throw new BadRequestException("物料标识不能为空!");
- }
- if (StrUtil.isEmpty(qty)) {
- throw new BadRequestException("数量数值不能为空!");
- }
- if (StrUtil.isEmpty(create_mode)) {
- throw new BadRequestException("创建方式不能为空!");
- }
- 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);
- String workprocedure_id = workInfo.getString("workprocedure_id");
- WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
- // 用于判断是不是压制工序,
- switch (workProcedureEnum) {
- // 压制工序
- case YZGX:
- qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
- endArea_type = AreaEnum.RYHCHJ.getCode();
- bill_type = BillTypeEnum.YZRK.getCode();
- break;
- // 烧制工序
- case SZGX:
- qty_unit_id = BussConstant.YZ_IN_QTY_UNIT_ID;
- bill_type = BillTypeEnum.SZRK.getCode();
- endArea_type = AreaEnum.CYHCHJ.getCode();
- break;
- // 分拣工序
- case FJGX:
- qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
- bill_type = BillTypeEnum.SZRK.getCode();
- endArea_type = AreaEnum.BTHCQ.getCode();
- break;
- default:
- qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
- break;
- }
- JSONObject param = new JSONObject();
- param.put("material_id", material_id);
- param.put("area_type", endArea_type);
- JSONObject inStructObj = StructFindUtil.getInStruct(param);
- if (ObjectUtil.isEmpty(inStructObj)) {
- throw new BadRequestException("未找到合适的入库仓位!");
- }
- next_point_code = inStructObj.getString("struct_code");
- // 创建入库单据
- // 假如静置时间为0 或者为空,则取物料表上的静置时间
- 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");
- }
- // 假如是烧制工序,静置时间都是0
- if (StrUtil.equals(workProcedureEnum.getCode(), WorkProcedureEnum.SZGX.getCode())) {
- stewing_time = "0";
- }
- JSONObject iosObj = new JSONObject();
- iosObj.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId());
- iosObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
- iosObj.put("io_type", "0");
- iosObj.put("bill_type", bill_type);
- iosObj.put("workprocedure_id", workprocedure_id);
- iosObj.put("ivt_workprocedure_id", workprocedure_id);
- iosObj.put("material_id", material_id);
- iosObj.put("producetask_id", producetask_id);
- iosObj.put("stewing_time", stewing_time);
- iosObj.put("qty", qty);
- iosObj.put("qty_unit_id", qty_unit_id);
- iosObj.put("print_pc", print_pc);
- // 默认是分配状态
- iosObj.put("bill_status", "20");
- iosObj.put("start_point_code", start_point_code);
- iosObj.put("end_point_code", next_point_code);
- iosObj.put("start_area", startPoint.getArea_type());
- iosObj.put("end_area", endArea_type);
- iosObj.put("cust_id", cust_id);
- iosObj.put("create_mode", create_mode);
- iosObj.put("task_id", task_id);
- iosObj.put("pcsn", pcsn);
- iosObj.put("create_id", UserInfoUtil.getCurrentUserId());
- iosObj.put("create_name", UserInfoUtil.getNickName());
- iosObj.put("create_time", DateUtil.now());
- iosObj.put("is_full", is_full);
- iosObj.put("vehicle_code", vehicle_code);
- WQLObject.getWQLObject("ST_IVT_workProcedureIOS").insert(iosObj);
- }
- String task_status = TaskStatusEnum.START_AND_POINT.getCode();
- PointDto nextPoint = pointService.findByCode(next_point_code);
- // 终点点加锁
- HashMap lock_map = new HashMap();
- lock_map.put("lock_type", "01");
- 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() + "");
- taskObj.put("task_type", "00");
- taskObj.put("acs_task_type", "1");
- taskObj.put("task_status", task_status);
- taskObj.put("start_point_code", start_point_code);
- taskObj.put("start_area", startPoint.getArea_type());
- taskObj.put("request_param", form.toJSONString());
- taskObj.put("next_point_code", next_point_code);
- taskObj.put("next_area", nextPoint.getArea_type());
- taskObj.put("handle_class", THIS_CLASS);
- taskObj.put("is_auto_issue", "1");
- taskObj.put("create_name", UserInfoUtil.getNickName());
- taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
- taskObj.put("create_time", DateUtil.now());
- taskObj.put("vehicle_code", vehicle_code);
- taskObj.put("is_delete", "0");
- taskTable.insert(taskObj);
+ public String createTask(JSONObject form) {
+ // 请求参数 载具、起点 物料,数量,客户,批次,创建方式 是否满托不能为空! 终点可以不为空时,入库单据编号不能为空
+ 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 stewing_time = form.getString("stewing_time");
+ String producetask_id = form.getString("producetask_id");
+ String is_full = form.getString("is_full");
+ String qty = form.getString("qty");
+ String cust_id = form.getString("cust_id");
+ String create_mode = form.getString("create_mode");
+ String pcsn = form.getString("pcsn");
+ String vehicle_code = form.getString("vehicle_code");
+ String group_id = form.getString("group_id");
+ String print_pc = form.getString("print_pc");
+ WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
+ if (StrUtil.isEmpty(start_point_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);
+ if (ObjectUtil.isNotEmpty(beforTaskObj)) {
+ throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
+ }
+ PointService pointService = SpringContextHolder.getBean(PointService.class);
+ PointDto startPoint = pointService.findByCode(start_point_code);
+ String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ String qty_unit_id = "";
+ String endArea_type = "";
+ String bill_type = "";
+ WQLObject iosTable = WQLObject.getWQLObject("ST_IVT_workProcedureIOS");
+ // 如果给了终点,更新入库单据,给pc、手持调用
+ if (StrUtil.isNotEmpty(next_point_code)) {
+ String iostorinv_id = form.getString("iostorinv_id");
+ if (StrUtil.isEmpty(iostorinv_id)) {
+ throw new BadRequestException("入库单据号不能为空!");
+ }
+ JSONObject IosObj = iosTable.query("iostorinv_id='" + iostorinv_id + "'").uniqueResult(0);
+ IosObj.put("bill_status", "20");
+ iosTable.update(IosObj);
+ }
+ // 如果没给终点,根据起点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位
+ if (StrUtil.isEmpty(next_point_code)) {
+ if (StrUtil.isEmpty(material_id)) {
+ throw new BadRequestException("物料标识不能为空!");
+ }
+ if (StrUtil.isEmpty(qty)) {
+ throw new BadRequestException("数量数值不能为空!");
+ }
+ if (StrUtil.isEmpty(create_mode)) {
+ throw new BadRequestException("创建方式不能为空!");
+ }
+ 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);
+ String workprocedure_id = workInfo.getString("workprocedure_id");
+ WorkProcedureEnum workProcedureEnum = WorkProcedureEnum.get(workprocedure_id);
+ // 用于判断是不是压制工序,
+ switch (workProcedureEnum) {
+ // 压制工序
+ case YZGX:
+ qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
+ endArea_type = AreaEnum.RYHCHJ.getCode();
+ bill_type = BillTypeEnum.YZRK.getCode();
+ break;
+ // 烧制工序
+ case SZGX:
+ qty_unit_id = BussConstant.YZ_IN_QTY_UNIT_ID;
+ bill_type = BillTypeEnum.SZRK.getCode();
+ endArea_type = AreaEnum.CYHCHJ.getCode();
+ break;
+ // 分拣工序
+ case FJGX:
+ qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
+ bill_type = BillTypeEnum.SZRK.getCode();
+ endArea_type = AreaEnum.BTHCQ.getCode();
+ break;
+ default:
+ qty_unit_id = BussConstant.HN_IN_QTY_UNIT_ID;
+ break;
+ }
+ JSONObject param = new JSONObject();
+ param.put("material_id", material_id);
+ param.put("area_type", endArea_type);
+ JSONObject inStructObj = StructFindUtil.getInStruct(param);
+ if (ObjectUtil.isEmpty(inStructObj)) {
+ throw new BadRequestException("未找到合适的入库仓位!");
+ }
+ next_point_code = inStructObj.getString("struct_code");
+ // 创建入库单据
+ // 假如静置时间为0 或者为空,则取物料表上的静置时间
+ 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");
+ }
+ // 假如是烧制工序,静置时间都是0
+ if (StrUtil.equals(workProcedureEnum.getCode(), WorkProcedureEnum.SZGX.getCode())) {
+ stewing_time = "0";
+ }
+ JSONObject iosObj = new JSONObject();
+ iosObj.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId());
+ iosObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
+ iosObj.put("io_type", "0");
+ iosObj.put("bill_type", bill_type);
+ iosObj.put("workprocedure_id", workprocedure_id);
+ iosObj.put("ivt_workprocedure_id", workprocedure_id);
+ iosObj.put("material_id", material_id);
+ iosObj.put("producetask_id", producetask_id);
+ iosObj.put("stewing_time", stewing_time);
+ iosObj.put("qty", qty);
+ iosObj.put("qty_unit_id", qty_unit_id);
+ iosObj.put("print_pc", print_pc);
+ // 默认是分配状态
+ iosObj.put("bill_status", "20");
+ iosObj.put("start_point_code", start_point_code);
+ iosObj.put("end_point_code", next_point_code);
+ iosObj.put("start_area", startPoint.getArea_type());
+ iosObj.put("end_area", endArea_type);
+ iosObj.put("cust_id", cust_id);
+ iosObj.put("create_mode", create_mode);
+ iosObj.put("task_id", task_id);
+ iosObj.put("pcsn", pcsn);
+ iosObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ iosObj.put("create_name", UserInfoUtil.getNickName());
+ iosObj.put("create_time", DateUtil.now());
+ iosObj.put("is_full", is_full);
+ iosObj.put("vehicle_code", vehicle_code);
+ WQLObject.getWQLObject("ST_IVT_workProcedureIOS").insert(iosObj);
+ }
+ String task_status = TaskStatusEnum.START_AND_POINT.getCode();
+ PointDto nextPoint = pointService.findByCode(next_point_code);
+ // 终点点加锁
+ HashMap lock_map = new HashMap();
+ lock_map.put("lock_type", "01");
+ 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() + "");
+ taskObj.put("task_type", "00");
+ taskObj.put("acs_task_type", "1");
+ taskObj.put("task_status", task_status);
+ taskObj.put("start_point_code", start_point_code);
+ taskObj.put("start_area", startPoint.getArea_type());
+ taskObj.put("request_param", form.toJSONString());
+ taskObj.put("next_point_code", next_point_code);
+ taskObj.put("next_area", nextPoint.getArea_type());
+ taskObj.put("handle_class", THIS_CLASS);
+ taskObj.put("is_auto_issue", "1");
+ taskObj.put("create_name", UserInfoUtil.getNickName());
+ taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ taskObj.put("create_time", DateUtil.now());
+ taskObj.put("vehicle_code", vehicle_code);
+ taskObj.put("is_delete", "0");
+ taskTable.insert(taskObj);
- // 如果是压料制下,或者是分拣送料需要更新组盘信息,将task_id 更新
- 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");
- JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0);
- if (ObjectUtil.isNotEmpty(groupInfo)) {
- groupInfo.put("task_id", task_id);
- groupInfo.put("material_move_id", task_id);
- groupTable.update(groupInfo);
- }
+ // 如果是压料制下,或者是分拣送料需要更新组盘信息,将task_id 更新
+ 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");
+ JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0);
+ if (ObjectUtil.isNotEmpty(groupInfo)) {
+ groupInfo.put("task_id", task_id);
+ groupInfo.put("material_move_id", task_id);
+ groupTable.update(groupInfo);
+ }
+ }
+ return task_id;
}
- return task_id;
- }
- @Override
- public void forceFinish(String task_id) {
- JSONObject taskObj =
- WQLObject.getWQLObject("SCH_BASE_Task")
- .query("task_id = '" + task_id + "'")
- .uniqueResult(0);
- this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
- }
+ @Override
+ public void forceFinish(String task_id) {
+ 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) {}
+ @Override
+ public void pullBack(String task_id) {
+ }
- @Override
- public void cancel(String task_id) {
- System.out.println("acs取消");
- }
+ @Override
+ public void cancel(String task_id) {
+ System.out.println("acs取消");
+ }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java
index d2b0096..eb8aaaa 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java
@@ -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);
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java
index 5a8e059..3e6d22a 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java
@@ -24,150 +24,129 @@ import java.util.HashMap;
@RequiredArgsConstructor
@Slf4j
public class ToPackIngTask extends AbstractAcsTask {
- private final String THIS_CLASS = ToPackIngTask.class.getName();
+ private final String THIS_CLASS = ToPackIngTask.class.getName();
- @Override
- public void updateTaskStatus(JSONObject taskObj, String status) {
- /** 改变任务状态 */
- String task_id = taskObj.getString("task_id");
- WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
- JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
- if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
- // 更新任务状态为执行中
- jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
- jsonTask.put("update_time", DateUtil.now());
- taskTab.update(jsonTask);
- 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") + "'");
+ @Override
+ public void updateTaskStatus(JSONObject taskObj, String status) {
+ /** 改变任务状态 */
+ String task_id = taskObj.getString("task_id");
+ WQLObject taskTab = WQLObject.getWQLObject("sch_base_task");
+ JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0);
+ if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
+ // 更新任务状态为执行中
+ jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
+ jsonTask.put("update_time", DateUtil.now());
+ taskTab.update(jsonTask);
+ 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)) {
+ // 更新任务状态为完成
+ jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
+ jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
+ jsonTask.put("update_time", DateUtil.now());
+ jsonTask.put("remark", "任务执行完成");
+ taskTab.update(jsonTask);
+ WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
+ // 将起点的载具清除
+ 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")
+ || StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW301")
+ || StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW302"))) {
+
+ startPointObj.put("lock_type", "00");
+ startPointObj.put("point_status", "00");
+ startPointObj.put("vehicle_code", "");
+ startPointObj.put("update_time", DateUtil.now());
+ pointTab.update(startPointObj);
+ }
+ // 调用mes接口
+ 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);
+ if (ObjectUtil.isNotEmpty(groupObj)) {
+ groupObj.put("is_delete", "0");
+ group_Table.update(groupObj);
+ }
+ }
}
- if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
- // 更新任务状态为完成
- jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
- jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
- jsonTask.put("update_time", DateUtil.now());
- jsonTask.put("remark", "任务执行完成");
- taskTab.update(jsonTask);
- WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
- // 将起点的载具清除
- 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")
- || StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW301")
- || StrUtil.equals(jsonTask.getString("start_point_code"), "FJJXSXLW302"))) {
-
- startPointObj.put("lock_type", "00");
- startPointObj.put("point_status", "00");
- startPointObj.put("vehicle_code", "");
- startPointObj.put("update_time", DateUtil.now());
- pointTab.update(startPointObj);
- }
- // 调用mes接口
- 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);
- if (ObjectUtil.isNotEmpty(groupObj)) {
- groupObj.put("is_delete", "0");
- group_Table.update(groupObj);
- }
+ @Override
+ public void findStartPoint() {
}
- }
- @Override
- public void findStartPoint() {}
-
- @Override
- public void findNextPoint() {}
-
- @Override
- public String createTask(JSONObject form) {
- // 请求参数 载具、起点 物料,数量,客户,批次,创建方式 是否满托不能为空! 终点可以不为空时,入库单据编号不能为空
- 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("起点不能为空!");
+ @Override
+ public void findNextPoint() {
}
- if (StrUtil.isEmpty(next_point_code)) {
- throw new BadRequestException("终点不能为空!");
+
+ @Override
+ public String createTask(JSONObject form) {
+ // 请求参数 载具、起点 物料,数量,客户,批次,创建方式 是否满托不能为空! 终点可以不为空时,入库单据编号不能为空
+ String vehicle_code = form.getString("vehicle_code");
+ String start_point_code = form.getString("start_point_code");
+ String next_point_code = "BZSLW";
+ WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task");
+ if (StrUtil.isEmpty(start_point_code)) {
+ throw new BadRequestException("起点不能为空!");
+ }
+ if (StrUtil.isEmpty(next_point_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);
+ if (ObjectUtil.isNotEmpty(beforTaskObj)) {
+ throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!");
+ }
+ String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
+ PointService pointService = SpringContextHolder.getBean(PointService.class);
+ PointDto startPoint = pointService.findByCode(start_point_code);
+ String task_status = TaskStatusEnum.START_AND_POINT.getCode();
+ PointDto nextPoint = pointService.findByCode(next_point_code);
+ JSONObject taskObj = new JSONObject();
+ taskObj.put("task_id", task_id);
+ taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
+ taskObj.put("task_type", "00");
+ taskObj.put("acs_task_type", "1");
+ taskObj.put("task_status", task_status);
+ taskObj.put("start_point_code", start_point_code);
+ taskObj.put("start_area", startPoint.getArea_type());
+ taskObj.put("request_param", form.toJSONString());
+ taskObj.put("next_point_code", next_point_code);
+ taskObj.put("next_area", nextPoint.getArea_type());
+ taskObj.put("vehicle_code", vehicle_code);
+ taskObj.put("handle_class", THIS_CLASS);
+ taskObj.put("is_auto_issue", "1");
+ taskObj.put("create_name", UserInfoUtil.getNickName());
+ taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
+ taskObj.put("create_time", DateUtil.now());
+ taskObj.put("is_delete", "0");
+ taskTable.insert(taskObj);
+ return task_id;
}
- // 判断起点有没有未完成的指令
- 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") + "' 未完成!");
+
+ @Override
+ public void forceFinish(String task_id) {
+ JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
+ this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
}
- String task_id = IdUtil.getSnowflake(1, 1).nextId() + "";
- PointService pointService = SpringContextHolder.getBean(PointService.class);
- PointDto startPoint = pointService.findByCode(start_point_code);
- String task_status = TaskStatusEnum.START_AND_POINT.getCode();
- PointDto nextPoint = pointService.findByCode(next_point_code);
- JSONObject taskObj = new JSONObject();
- taskObj.put("task_id", task_id);
- taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + "");
- taskObj.put("task_type", "00");
- taskObj.put("acs_task_type", "1");
- taskObj.put("task_status", task_status);
- taskObj.put("start_point_code", start_point_code);
- taskObj.put("start_area", startPoint.getArea_type());
- taskObj.put("request_param", form.toJSONString());
- taskObj.put("next_point_code", next_point_code);
- taskObj.put("next_area", nextPoint.getArea_type());
- taskObj.put("vehicle_code", vehicle_code);
- taskObj.put("handle_class", THIS_CLASS);
- taskObj.put("is_auto_issue", "1");
- taskObj.put("create_name", UserInfoUtil.getNickName());
- taskObj.put("create_id", UserInfoUtil.getCurrentUserId());
- taskObj.put("create_time", DateUtil.now());
- taskObj.put("is_delete", "0");
- taskTable.insert(taskObj);
- return task_id;
- }
- @Override
- public void forceFinish(String task_id) {
- 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) {
+ }
- @Override
- public void pullBack(String task_id) {}
-
- @Override
- public void cancel(String task_id) {}
+ @Override
+ public void cancel(String task_id) {
+ }
}
diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java
index 9b6bec1..3f3bc31 100644
--- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java
+++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java
@@ -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);
diff --git a/wms/hd/nladmin-system/src/main/resources/config/application-prod.yml b/wms/hd/nladmin-system/src/main/resources/config/application-prod.yml
index a1e2b75..a1c0e09 100644
--- a/wms/hd/nladmin-system/src/main/resources/config/application-prod.yml
+++ b/wms/hd/nladmin-system/src/main/resources/config/application-prod.yml
@@ -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:
# 登录缓存
diff --git a/wms/hd/nladmin-system/src/main/resources/config/application-test.yml b/wms/hd/nladmin-system/src/main/resources/config/application-test.yml
index cbdf87b..3a5f7ff 100644
--- a/wms/hd/nladmin-system/src/main/resources/config/application-test.yml
+++ b/wms/hd/nladmin-system/src/main/resources/config/application-test.yml
@@ -56,11 +56,6 @@ spring:
wall:
config:
multi-statement-alagvslow: true
- data:
- mongodb:
- host: 192.168.81.251
- port: 27017
- database: nlacs
redis:
#数据库索引
diff --git a/wms/hd/nladmin-system/src/main/resources/config/application.yml b/wms/hd/nladmin-system/src/main/resources/config/application.yml
index e124131..c7ad90c 100644
--- a/wms/hd/nladmin-system/src/main/resources/config/application.yml
+++ b/wms/hd/nladmin-system/src/main/resources/config/application.yml
@@ -2,7 +2,7 @@ spring:
freemarker:
check-template-location: false
profiles:
- active: prod
+ active: dev
jackson:
time-zone: GMT+8
data:
diff --git a/wms/qd/src/views/wms/sch/point/index.vue b/wms/qd/src/views/wms/sch/point/index.vue
index fdec03d..b8217f1 100644
--- a/wms/qd/src/views/wms/sch/point/index.vue
+++ b/wms/qd/src/views/wms/sch/point/index.vue
@@ -197,6 +197,23 @@
/>
+
+
+
+
+
+
+