update
This commit is contained in:
@@ -264,7 +264,12 @@ public class LnshOutKilnTrussDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
if (result.getStatus() == HttpStatus.OK.value()) {
|
if (result.getStatus() == HttpStatus.OK.value()) {
|
||||||
JSONObject jsonObject = JSONObject.parseObject(result.body());
|
JSONObject jsonObject = JSONObject.parseObject(result.body());
|
||||||
if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) {
|
if (ObjectUtil.isNotEmpty(jsonObject) && "200".equals(jsonObject.getString("status"))) {
|
||||||
this.writing(jsonObject.getBooleanValue("data") ? 22 : 23);
|
Boolean isPackage = jsonObject.getBoolean("data");
|
||||||
|
if (isPackage == null) {
|
||||||
|
this.writing(24);
|
||||||
|
} else {
|
||||||
|
this.writing(isPackage ? 22 : 23);
|
||||||
|
}
|
||||||
this.setRequireSucess(true);
|
this.setRequireSucess(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,9 +206,9 @@ public class ItemProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<ItemDto> getReadableItemDtos() {
|
public static List<ItemDto> getReadableItemDtos() {
|
||||||
ArrayList list = new ArrayList();
|
ArrayList<ItemDto> list = new ArrayList<>();
|
||||||
list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0"));
|
list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0"));
|
||||||
list.add(new ItemDto(item_mode, "工作模式", "DB1.B1", Boolean.valueOf(true)));
|
list.add(new ItemDto(item_mode, "工作模式", "DB1.B1", Boolean.TRUE));
|
||||||
list.add(new ItemDto(item_status, "设备状态", "DB1.B2"));
|
list.add(new ItemDto(item_status, "设备状态", "DB1.B2"));
|
||||||
list.add(new ItemDto(item_error, "故障代码", "DB1.B3"));
|
list.add(new ItemDto(item_error, "故障代码", "DB1.B3"));
|
||||||
list.add(new ItemDto(item_putStation, "当前工位", "DB1.D4"));
|
list.add(new ItemDto(item_putStation, "当前工位", "DB1.D4"));
|
||||||
@@ -230,19 +230,17 @@ public class ItemProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<ItemDto> getWriteableItemDtos() {
|
public static List<ItemDto> getWriteableItemDtos() {
|
||||||
ArrayList list = new ArrayList();
|
ArrayList<ItemDto> list = new ArrayList<>();
|
||||||
list.add(new ItemDto(item_to_feedback, "机器人动作反馈", "DB2.B0"));
|
list.add(new ItemDto(item_to_feedback, "机器人动作反馈", "DB2.W0"));
|
||||||
list.add(new ItemDto(item_to_error, "故障代码", "DB2.B1"));
|
list.add(new ItemDto(item_to_error, "故障代码", "DB2.W2"));
|
||||||
list.add(new ItemDto(item_to_material, "物料", "DB2.STRING2.50"));
|
list.add(new ItemDto(item_to_material, "物料", "DB2.STRING4.50"));
|
||||||
list.add(new ItemDto(item_to_order_No, "工单号", "DB2.STRING54.50"));
|
list.add(new ItemDto(item_to_order_No, "工单号", "DB2.STRING56.50"));
|
||||||
list.add(new ItemDto(item_to_order_qty, "工单数量", "DB2.D106"));
|
list.add(new ItemDto(item_to_order_qty, "工单数量", "DB2.D108"));
|
||||||
list.add(new ItemDto(item_to_product_code, "产品编号", "DB2.W110"));
|
list.add(new ItemDto(item_to_product_code, "产品编号", "DB2.W112"));
|
||||||
list.add(new ItemDto(item_to_AlongSide, "A长边", "DB2.W112"));
|
list.add(new ItemDto(item_to_AlongSide, "A长边", "DB2.W114"));
|
||||||
list.add(new ItemDto(item_to_BshortSide, "B短边", "DB2.W114"));
|
list.add(new ItemDto(item_to_BshortSide, "B短边", "DB2.W116"));
|
||||||
list.add(new ItemDto(item_to_Htrapezoidal, "H梯形高", "DB2.W116"));
|
list.add(new ItemDto(item_to_Htrapezoidal, "H梯形高", "DB2.W118"));
|
||||||
list.add(new ItemDto(item_to_Wthickness, "W厚度", "DB2.W118"));
|
list.add(new ItemDto(item_to_Wthickness, "W厚度", "DB2.W120"));
|
||||||
list.add(new ItemDto(item_to_on_vehicle_qty, "托盘上数量", "DB2.W120"));
|
|
||||||
list.add(new ItemDto(item_to_vehicle_type, "托盘类型", "DB2.W122"));
|
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,27 +56,7 @@ public class LnshPackagePalletManipulatorDefination implements OpcDeviceDriverDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static List<ItemDto> getReadableItemDtos2() {
|
public static List<ItemDto> getReadableItemDtos2() {
|
||||||
ArrayList list = new ArrayList();
|
return ItemProtocol.getReadableItemDtos();
|
||||||
list.add(new ItemDto(ItemProtocol.item_heartbeat, "心跳", "DB1.B0"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_mode, "工作模式", "DB1.B1", Boolean.valueOf(true)));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_status, "设备状态", "DB1.B2"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_error, "故障代码", "DB1.B3"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_putStation, "当前工位", "DB1.D4"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_material, "物料", "DB1.STRING8.50"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_qty, "拆/码垛数量", "DB1.D60"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_order_qty, "工单总数量", "DB1.D64"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_open_time, "开机时间", "DB1.STRING68.50"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_standby_time, "待机时间", "DB1.D120"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_production_time, "生产时间", "DB1.D124"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_error_time, "故障时间", "DB1.D128"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_order_No, "工单号", "DB1.STRING132.50"));
|
|
||||||
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_product_code, "产品编号", "DB1.W184"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_AlongSide, "A长边", "DB1.W186"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_BshortSide, "B短边", "DB1.W188"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_Htrapezoidal, "H梯形高", "DB1.W190"));
|
|
||||||
list.add(new ItemDto(ItemProtocol.item_Wthickness, "W厚度", "DB1.W192"));
|
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -21,7 +21,10 @@ import org.nl.wms.ext.acs.service.AcsToWmsService;
|
|||||||
import org.nl.wms.pdm.service.WorkordeService;
|
import org.nl.wms.pdm.service.WorkordeService;
|
||||||
import org.nl.wms.sch.manage.*;
|
import org.nl.wms.sch.manage.*;
|
||||||
import org.nl.wms.sch.task.call.empty.YZCallEmptyTask;
|
import org.nl.wms.sch.task.call.empty.YZCallEmptyTask;
|
||||||
|
import org.nl.wms.sch.task.call.material.FJCallMaterialTask;
|
||||||
import org.nl.wms.sch.task.call.material.GZCallMaterialTask;
|
import org.nl.wms.sch.task.call.material.GZCallMaterialTask;
|
||||||
|
import org.nl.wms.sch.task.send.material.GZSendMaterialTask;
|
||||||
|
import org.nl.wms.sch.task.send.material.HLSendMaterialTask;
|
||||||
import org.nl.wms.sch.task.send.material.YZSendMaterialTask;
|
import org.nl.wms.sch.task.send.material.YZSendMaterialTask;
|
||||||
import org.nl.wms.sch.task.util.TaskUtils;
|
import org.nl.wms.sch.task.util.TaskUtils;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -44,6 +47,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
private final GZCallMaterialTask gzCallMaterialTask;
|
private final GZCallMaterialTask gzCallMaterialTask;
|
||||||
|
|
||||||
|
private final GZSendMaterialTask gzSendMaterialTask;
|
||||||
|
|
||||||
|
private final FJCallMaterialTask fjCallMaterialTask;
|
||||||
|
|
||||||
|
private final HLSendMaterialTask hlSendMaterialTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* task_id:任务标识
|
* task_id:任务标识
|
||||||
* task_code:任务编码
|
* task_code:任务编码
|
||||||
@@ -206,11 +215,54 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
case "1":
|
case "1":
|
||||||
// 送料
|
// 送料
|
||||||
switch (region) {
|
switch (region) {
|
||||||
|
case HL:
|
||||||
|
JSONObject workOrder = TaskUtils.hasWorkOrder(point);
|
||||||
|
methodParam.put("workorder", workOrder);
|
||||||
|
|
||||||
|
// 组盘
|
||||||
|
String vehicleCode = TaskUtils.formatVehicleCode(param.getString("vehicle_code"));
|
||||||
|
if ("0000".equals(vehicleCode)) {
|
||||||
|
throw new BadRequestException("条码不能为空!");
|
||||||
|
}
|
||||||
|
String weight = param.getString("weight");
|
||||||
|
if (StrUtil.isBlank(weight)) {
|
||||||
|
throw new BadRequestException("重量不能为空!");
|
||||||
|
}
|
||||||
|
JSONObject vd = new JSONObject();
|
||||||
|
vd.put("vd_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||||
|
vd.put("vehicle_type", VehicleType.CUP.value());
|
||||||
|
vd.put("vehicle_code", vehicleCode);
|
||||||
|
vd.put("material_id", workOrder.getString("material_id"));
|
||||||
|
vd.put("weight", Long.parseLong(weight) / 1000.00);
|
||||||
|
vd.put("workorder_id", workOrder.getString("workorder_id"));
|
||||||
|
vd.put("point_code", pointCode);
|
||||||
|
vd.put("create_id", ACSSystem.id);
|
||||||
|
vd.put("create_name", ACSSystem.nick_name);
|
||||||
|
vd.put("create_time", DateUtil.now());
|
||||||
|
vd.put("is_delete", TrueOrFalse.FALSE.value());
|
||||||
|
WQLObject.getWQLObject("st_ivt_vehicle_detail").insert(vd);
|
||||||
|
methodParam.put("vd", vd);
|
||||||
|
|
||||||
|
taskCode = hlSendMaterialTask.createTask(methodParam);
|
||||||
|
break;
|
||||||
case YZ:
|
case YZ:
|
||||||
methodParam.put("workorder", param.getJSONObject("workorder"));
|
methodParam.put("workorder", param.getJSONObject("workorder"));
|
||||||
methodParam.put("vd", param.getJSONObject("vd"));
|
methodParam.put("vd", param.getJSONObject("vd"));
|
||||||
taskCode = yzSendMaterialTask.createTask(methodParam);
|
taskCode = yzSendMaterialTask.createTask(methodParam);
|
||||||
break;
|
break;
|
||||||
|
case GZ:
|
||||||
|
vehicleCode = TaskUtils.formatVehicleCode(param.getString("vehicle_code"));
|
||||||
|
if ("0000".equals(vehicleCode)) {
|
||||||
|
throw new BadRequestException("条码不能为空!");
|
||||||
|
}
|
||||||
|
vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND vehicle_type = '2' AND vehicle_code = '" + vehicleCode + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(vd)) {
|
||||||
|
throw new BadRequestException("[" + vehicleCode + "] 未找到组盘信息!");
|
||||||
|
}
|
||||||
|
methodParam.put("vd", vd);
|
||||||
|
methodParam.put("workorder", WQLObject.getWQLObject("pdm_bd_workorder").query("workorder_id = " + vd.getString("workorder_id")).uniqueResult(0));
|
||||||
|
taskCode = gzSendMaterialTask.createTask(methodParam);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
|
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
|
||||||
}
|
}
|
||||||
@@ -221,6 +273,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
case GZ:
|
case GZ:
|
||||||
taskCode = gzCallMaterialTask.createTask(methodParam);
|
taskCode = gzCallMaterialTask.createTask(methodParam);
|
||||||
break;
|
break;
|
||||||
|
case FJ:
|
||||||
|
methodParam.put("workorder", TaskUtils.hasWorkOrder(point));
|
||||||
|
taskCode = fjCallMaterialTask.createTask(methodParam);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!");
|
throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!");
|
||||||
}
|
}
|
||||||
@@ -705,7 +761,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
throw new BadRequestException("载具编码不能为空!");
|
throw new BadRequestException("载具编码不能为空!");
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean to_package = true;
|
Boolean to_package = null;
|
||||||
|
|
||||||
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
|
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
|
||||||
JSONObject vd = vd_table
|
JSONObject vd = vd_table
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import org.nl.wms.sch.task.call.material.FJCallMaterialTask;
|
|||||||
import org.nl.wms.sch.task.call.material.YZCallMaterialTask;
|
import org.nl.wms.sch.task.call.material.YZCallMaterialTask;
|
||||||
import org.nl.wms.sch.task.send.empty.FJSendEmptyTask;
|
import org.nl.wms.sch.task.send.empty.FJSendEmptyTask;
|
||||||
import org.nl.wms.sch.task.send.empty.YZSendEmptyTask;
|
import org.nl.wms.sch.task.send.empty.YZSendEmptyTask;
|
||||||
import org.nl.wms.sch.task.send.material.FJSendMaterialTask;
|
|
||||||
import org.nl.wms.sch.task.send.material.HLSendMaterialTask;
|
import org.nl.wms.sch.task.send.material.HLSendMaterialTask;
|
||||||
import org.nl.wms.sch.task.send.material.YZSendMaterialTask;
|
import org.nl.wms.sch.task.send.material.YZSendMaterialTask;
|
||||||
import org.nl.wms.sch.task.util.TaskUtils;
|
import org.nl.wms.sch.task.util.TaskUtils;
|
||||||
@@ -46,8 +45,6 @@ public class PdaServiceImpl implements PdaService {
|
|||||||
|
|
||||||
private final YZSendMaterialTask yzSendMaterialTask;
|
private final YZSendMaterialTask yzSendMaterialTask;
|
||||||
|
|
||||||
private final FJSendMaterialTask fjSendMaterialTask;
|
|
||||||
|
|
||||||
private final YZCallMaterialTask yzCallMaterialTask;
|
private final YZCallMaterialTask yzCallMaterialTask;
|
||||||
|
|
||||||
private final FJCallMaterialTask fjCallMaterialTask;
|
private final FJCallMaterialTask fjCallMaterialTask;
|
||||||
@@ -377,10 +374,6 @@ public class PdaServiceImpl implements PdaService {
|
|||||||
method_param.put("vd", vd);
|
method_param.put("vd", vd);
|
||||||
yzSendMaterialTask.createTask(method_param);
|
yzSendMaterialTask.createTask(method_param);
|
||||||
break;
|
break;
|
||||||
case FJ:
|
|
||||||
vd_table.insert(vd);
|
|
||||||
method_param.put("vd", vd);
|
|
||||||
fjSendMaterialTask.createTask(method_param);
|
|
||||||
default:
|
default:
|
||||||
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
|
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,4 +75,6 @@ public class PointDto implements Serializable {
|
|||||||
|
|
||||||
/** 修改时间 */
|
/** 修改时间 */
|
||||||
private String update_time;
|
private String update_time;
|
||||||
|
|
||||||
|
private Long vd_id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -154,12 +154,29 @@ public class PointServiceImpl implements PointService {
|
|||||||
dto.setUpdate_optname(nickName);
|
dto.setUpdate_optname(nickName);
|
||||||
String pointStatus = dto.getPoint_status();
|
String pointStatus = dto.getPoint_status();
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals("0")) { // 空位
|
|
||||||
dto.setVehicle_type("");
|
|
||||||
dto.setVehicle_code("");
|
|
||||||
// PointUpdateUtil.clearPoint(dto.getPoint_code());
|
|
||||||
}
|
|
||||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||||
|
if ("1".equals(pointStatus)) { // 空位
|
||||||
|
json.put("vehicle_type", "");
|
||||||
|
json.put("vehicle_code", "");
|
||||||
|
json.put("vd_id", null);
|
||||||
|
} else if ("2".equals(pointStatus)) {// 空载具
|
||||||
|
if (StrUtil.isBlank(dto.getVehicle_type())) {
|
||||||
|
throw new BadRequestException("载具类型不能为空!");
|
||||||
|
}
|
||||||
|
json.put("vd_id", null);
|
||||||
|
} else if ("3".equals(pointStatus)) {
|
||||||
|
if (StrUtil.isBlank(dto.getVehicle_type())) {
|
||||||
|
throw new BadRequestException("载具类型不能为空!");
|
||||||
|
}
|
||||||
|
if ("0000".equals(dto.getVehicle_code())) {
|
||||||
|
throw new BadRequestException("载具号不能为空!");
|
||||||
|
}
|
||||||
|
JSONObject vd = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND vehicle_type = '" + dto.getVehicle_type() + "' AND vehicle_code = '" + dto.getVehicle_code() + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(vd)) {
|
||||||
|
throw new BadRequestException("该载具类型种载具号为" + dto.getVehicle_code() + "的载具未找到组盘信息!");
|
||||||
|
}
|
||||||
|
json.put("vd_id", vd.getLongValue("vd_id"));
|
||||||
|
}
|
||||||
pointTab.update(json);
|
pointTab.update(json);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class FJCallEmptyTask extends AbstractAcsTask {
|
|||||||
work_order.getString("material_id"),
|
work_order.getString("material_id"),
|
||||||
work_order.getString("vehicle_type"),
|
work_order.getString("vehicle_type"),
|
||||||
null,
|
null,
|
||||||
TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1,
|
TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1,
|
||||||
FJCallEmptyTask.class.getName(),
|
FJCallEmptyTask.class.getName(),
|
||||||
form.getString("create_mode"),
|
form.getString("create_mode"),
|
||||||
form.getString("request_param"),
|
form.getString("request_param"),
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class HLCallEmptyTask extends AbstractAcsTask {
|
|||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = 1;
|
int priority = 1;
|
||||||
if (ObjectUtil.isNotEmpty(work_order)) {
|
if (ObjectUtil.isNotEmpty(work_order)) {
|
||||||
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class YZCallEmptyTask extends AbstractAcsTask {
|
|||||||
int priority = 1;
|
int priority = 1;
|
||||||
String materialId = null;
|
String materialId = null;
|
||||||
if (ObjectUtil.isNotEmpty(workOrder)) {
|
if (ObjectUtil.isNotEmpty(workOrder)) {
|
||||||
priority = TrueOrFalse.trueOrFalse(workOrder.getString("is_urgent")) ? 2 : 1;
|
priority = TrueOrFalse.trueOrFalse(workOrder.getString("is_urgent")) ? 100 : 1;
|
||||||
materialId = workOrder.getString("material_id");
|
materialId = workOrder.getString("material_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class FJCallMaterialTask extends AbstractAcsTask {
|
|||||||
workorder.getString("material_id"),
|
workorder.getString("material_id"),
|
||||||
VehicleType.STEEL_TRAY.value(),
|
VehicleType.STEEL_TRAY.value(),
|
||||||
null,
|
null,
|
||||||
TrueOrFalse.trueOrFalse(workorder.getString("is_urgent")) ? 50 : 1,
|
TrueOrFalse.trueOrFalse(workorder.getString("is_urgent")) ? 100 : 1,
|
||||||
FJCallMaterialTask.class.getName(),
|
FJCallMaterialTask.class.getName(),
|
||||||
form.getString("create_mode"),
|
form.getString("create_mode"),
|
||||||
form.getString("request_param"),
|
form.getString("request_param"),
|
||||||
@@ -60,7 +60,7 @@ public class FJCallMaterialTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
JSONObject point1 = WQL
|
JSONObject point1 = WQL
|
||||||
.getWO("CALL_MATERIAL_TASK")
|
.getWO("CALL_MATERIAL_TASK")
|
||||||
.addParam("flag", "3")
|
.addParam("flag", "2")
|
||||||
.addParam("material_id", task.getString("material_id"))
|
.addParam("material_id", task.getString("material_id"))
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
@@ -186,6 +186,7 @@ public class FJCallMaterialTask extends AbstractAcsTask {
|
|||||||
point1.put("task_code", "");
|
point1.put("task_code", "");
|
||||||
point1.put("vehicle_type", "");
|
point1.put("vehicle_type", "");
|
||||||
point1.put("vehicle_code", "");
|
point1.put("vehicle_code", "");
|
||||||
|
point1.put("vd_id", null);
|
||||||
point1.put("point_status", PointStatus.EMPTY.value());
|
point1.put("point_status", PointStatus.EMPTY.value());
|
||||||
if (operation_type == OperationType.AUTO) {
|
if (operation_type == OperationType.AUTO) {
|
||||||
TaskUtils.addACSUpdateColum(point1);
|
TaskUtils.addACSUpdateColum(point1);
|
||||||
@@ -203,6 +204,7 @@ public class FJCallMaterialTask extends AbstractAcsTask {
|
|||||||
point2.put("task_code", "");
|
point2.put("task_code", "");
|
||||||
point2.put("vehicle_type", task.getString("vehicle_type"));
|
point2.put("vehicle_type", task.getString("vehicle_type"));
|
||||||
point2.put("vehicle_code", task.getString("vehicle_code"));
|
point2.put("vehicle_code", task.getString("vehicle_code"));
|
||||||
|
point2.put("vd_id", task.getString("group_id"));
|
||||||
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
||||||
if (operation_type == OperationType.AUTO) {
|
if (operation_type == OperationType.AUTO) {
|
||||||
TaskUtils.addACSUpdateColum(point2);
|
TaskUtils.addACSUpdateColum(point2);
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class YZCallMaterialTask extends AbstractAcsTask {
|
|||||||
workorder.getString("material_id"),
|
workorder.getString("material_id"),
|
||||||
VehicleType.CUP.value(),
|
VehicleType.CUP.value(),
|
||||||
null,
|
null,
|
||||||
TrueOrFalse.trueOrFalse(workorder.getString("is_urgent")) ? 50 : 1,
|
TrueOrFalse.trueOrFalse(workorder.getString("is_urgent")) ? 100 : 1,
|
||||||
YZCallMaterialTask.class.getName(),
|
YZCallMaterialTask.class.getName(),
|
||||||
form.getString("create_mode"),
|
form.getString("create_mode"),
|
||||||
form.getString("request_param"),
|
form.getString("request_param"),
|
||||||
|
|||||||
@@ -55,6 +55,8 @@
|
|||||||
AND p.region_code = 'YQHJ'
|
AND p.region_code = 'YQHJ'
|
||||||
AND p.point_type = '1'
|
AND p.point_type = '1'
|
||||||
AND p.point_status = '3'
|
AND p.point_status = '3'
|
||||||
|
AND p.vehicle_type = '2'
|
||||||
|
AND p.vd_id IS NOT NULL
|
||||||
ORDER BY
|
ORDER BY
|
||||||
wo.is_urgent DESC,
|
wo.is_urgent DESC,
|
||||||
vd.create_time ASC
|
vd.create_time ASC
|
||||||
@@ -65,14 +67,23 @@
|
|||||||
IF 输入.flag = "2"
|
IF 输入.flag = "2"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
*
|
p.*
|
||||||
FROM
|
FROM
|
||||||
sch_base_point
|
sch_base_point p
|
||||||
|
LEFT JOIN st_ivt_vehicle_detail vd ON p.vd_id = vd.vd_id
|
||||||
|
LEFT JOIN pdm_bd_workorder wo ON vd.workorder_id = wo.workorder_id
|
||||||
WHERE
|
WHERE
|
||||||
is_used = '1'
|
p.is_used = '1'
|
||||||
AND lock_type = '1'
|
AND p.lock_type = '1'
|
||||||
AND region_code = 'SZ'
|
AND p.region_code = 'YHHJ'
|
||||||
AND point_type = '1'
|
AND p.point_type = '1'
|
||||||
|
AND p.point_status = '3'
|
||||||
|
AND p.vehicle_type = '2'
|
||||||
|
AND vd.material_id = 输入.material_id
|
||||||
|
ORDER BY
|
||||||
|
wo.is_pri DESC,
|
||||||
|
wo.is_urgent DESC,
|
||||||
|
vd.create_time ASC
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class FJSendEmptyTask extends AbstractAcsTask {
|
|||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = 1;
|
int priority = 1;
|
||||||
if (ObjectUtil.isNotEmpty(work_order)) {
|
if (ObjectUtil.isNotEmpty(work_order)) {
|
||||||
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class YZSendEmptyTask extends AbstractAcsTask {
|
|||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = 1;
|
int priority = 1;
|
||||||
if (ObjectUtil.isNotEmpty(work_order)) {
|
if (ObjectUtil.isNotEmpty(work_order)) {
|
||||||
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
}
|
}
|
||||||
if (Region.KLHJ.value().equals(point.getString("region_code"))) {
|
if (Region.KLHJ.value().equals(point.getString("region_code"))) {
|
||||||
priority++;
|
priority++;
|
||||||
|
|||||||
@@ -1,311 +0,0 @@
|
|||||||
package org.nl.wms.sch.task.send.material;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
|
||||||
import org.nl.modules.wql.WQL;
|
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
|
||||||
import org.nl.wms.basedata.eum.TrueOrFalse;
|
|
||||||
import org.nl.wms.sch.manage.*;
|
|
||||||
import org.nl.wms.sch.task.util.TaskUtils;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author zhangjiangwei
|
|
||||||
*/
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@Component
|
|
||||||
public class FJSendMaterialTask extends AbstractAcsTask {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateTaskStatus(JSONObject task, String status) {
|
|
||||||
if (TaskStatus.EXECUTING.value().equals(status)) {
|
|
||||||
task.put("task_status", TaskStatus.EXECUTING.value());
|
|
||||||
TaskUtils.addACSUpdateColum(task);
|
|
||||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
|
||||||
} else if (TaskStatus.FINISHED.value().equals(status)) {
|
|
||||||
this.finishTask(task, OperationType.AUTO);
|
|
||||||
} else if (TaskStatus.CANCELLED.value().equals(status)) {
|
|
||||||
this.cancelTask(task, OperationType.AUTO);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String createTask(JSONObject form) {
|
|
||||||
JSONObject point = form.getJSONObject("point");
|
|
||||||
JSONObject work_order = form.getJSONObject("workorder");
|
|
||||||
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
|
||||||
JSONObject vd = form.getJSONObject("vd");
|
|
||||||
|
|
||||||
JSONObject material_task = TaskUtils.buildTask(
|
|
||||||
"分拣区送料",
|
|
||||||
TaskType.SEND_MATERIAL.value(),
|
|
||||||
TaskStatus.SURE_START.value(),
|
|
||||||
point.getString("point_code"),
|
|
||||||
null,
|
|
||||||
vd.getLong("vd_id"),
|
|
||||||
vd.getString("material_id"),
|
|
||||||
vd.getString("vehicle_type"),
|
|
||||||
vd.getString("vehicle_code"),
|
|
||||||
priority,
|
|
||||||
FJSendMaterialTask.class.getName(),
|
|
||||||
form.getString("create_mode"),
|
|
||||||
form.getString("request_param"),
|
|
||||||
form.getString("create_id"),
|
|
||||||
form.getString("create_name")
|
|
||||||
);
|
|
||||||
|
|
||||||
if (TrueOrFalse.trueOrFalse(vd.getString("is_full"))) {
|
|
||||||
JSONObject empty_task = TaskUtils.buildTask(
|
|
||||||
"分拣区叫空",
|
|
||||||
TaskType.CALL_EMPTY.value(),
|
|
||||||
TaskStatus.SURE_END.value(),
|
|
||||||
null,
|
|
||||||
point.getString("point_code"),
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
work_order.getString("vehicle_type"),
|
|
||||||
null,
|
|
||||||
priority,
|
|
||||||
FJSendMaterialTask.class.getName(),
|
|
||||||
form.getString("create_mode"),
|
|
||||||
form.getString("request_param"),
|
|
||||||
form.getString("create_id"),
|
|
||||||
form.getString("create_name")
|
|
||||||
);
|
|
||||||
empty_task.put("task_group_id", material_task.getLongValue("task_id"));
|
|
||||||
WQLObject.getWQLObject("sch_base_task").insert(empty_task);
|
|
||||||
}
|
|
||||||
|
|
||||||
WQLObject.getWQLObject("sch_base_task").insert(material_task);
|
|
||||||
|
|
||||||
point.put("lock_type", LockType.TASK_LOCKED.value());
|
|
||||||
point.put("task_code", material_task.getString("task_code"));
|
|
||||||
TaskUtils.addFormUpdateColum(point, form);
|
|
||||||
WQLObject.getWQLObject("sch_base_point").update(point);
|
|
||||||
|
|
||||||
return material_task.getString("task_code");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void findNextPoint() {
|
|
||||||
WQLObject task_table = WQLObject.getWQLObject("sch_base_task");
|
|
||||||
JSONArray tasks = task_table
|
|
||||||
.query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + FJSendMaterialTask.class.getName() + "'", "priority DESC, create_time ASC")
|
|
||||||
.getResultJSONArray(0);
|
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(tasks)) {
|
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
|
||||||
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
|
|
||||||
|
|
||||||
for (int i = 0; i < tasks.size(); i++) {
|
|
||||||
JSONObject material_task = tasks.getJSONObject(i);
|
|
||||||
|
|
||||||
JSONObject vd = vd_table
|
|
||||||
.query("is_delete = '0' AND vehicle_type = '" + material_task.getString("vehicle_type") + "' AND vehicle_code = '" + material_task.getString("vehicle_code") + "'")
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(vd)) {
|
|
||||||
JSONObject send_point = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "2")
|
|
||||||
.addParam("is_full", vd.getString("is_full"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(send_point)) {
|
|
||||||
material_task.put("task_status", TaskStatus.START_AND_END.value());
|
|
||||||
material_task.put("point_code2", send_point.getString("point_code"));
|
|
||||||
material_task.put("remark", "");
|
|
||||||
TaskUtils.addAutoUpdateColum(material_task);
|
|
||||||
|
|
||||||
send_point.put("lock_type", LockType.TASK_LOCKED.value());
|
|
||||||
send_point.put("task_code", material_task.getString("task_code"));
|
|
||||||
TaskUtils.addAutoUpdateColum(send_point);
|
|
||||||
|
|
||||||
JSONObject empty_task = task_table
|
|
||||||
.query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_END.value() + "' AND handle_class = '" + FJSendMaterialTask.class.getName() + "' AND task_group_id = " + material_task.getLongValue("task_id"))
|
|
||||||
.uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(empty_task)) {
|
|
||||||
JSONObject fmj_point = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "3")
|
|
||||||
.addParam("vehicle_type", empty_task.getString("vehicle_type"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(fmj_point)) {
|
|
||||||
empty_task.put("task_status", TaskStatus.START_AND_END.value());
|
|
||||||
empty_task.put("point_code1", fmj_point.getString("device_code"));
|
|
||||||
empty_task.put("vehicle_code", TaskUtils.formatVehicleCode(fmj_point.getString("vehicle_code")));
|
|
||||||
empty_task.put("remark", "");
|
|
||||||
TaskUtils.addAutoUpdateColum(empty_task);
|
|
||||||
|
|
||||||
JSONObject update_point = new JSONObject();
|
|
||||||
update_point.put("lock_type", LockType.TASK_LOCKED.value());
|
|
||||||
update_point.put("task_code", empty_task.getString("task_code"));
|
|
||||||
TaskUtils.addAutoUpdateColum(update_point);
|
|
||||||
|
|
||||||
task_table.update(material_task);
|
|
||||||
point_table.update(send_point);
|
|
||||||
task_table.update(empty_task);
|
|
||||||
point_table.update(update_point, "point_code = '" + fmj_point.getString("device_code") + "'");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
task_table.update(material_task);
|
|
||||||
point_table.update(send_point);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void forceFinish(String task_id) {
|
|
||||||
JSONObject task = WQLObject.getWQLObject("sch_base_task").query("task_id = " + task_id).uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(task)) {
|
|
||||||
throw new BadRequestException("未找到任务!");
|
|
||||||
}
|
|
||||||
this.finishTask(task, OperationType.MANUAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void cancel(String task_id) {
|
|
||||||
JSONObject task = WQLObject.getWQLObject("sch_base_task").query("task_id = " + task_id).uniqueResult(0);
|
|
||||||
if (ObjectUtil.isEmpty(task)) {
|
|
||||||
throw new BadRequestException("未找到任务!");
|
|
||||||
}
|
|
||||||
this.cancelTask(task, OperationType.MANUAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void cancelTask(JSONObject task, OperationType operation_type) {
|
|
||||||
if (task.getIntValue("task_status") < Integer.parseInt(TaskStatus.FINISHED.value())) {
|
|
||||||
task.put("task_status", TaskStatus.CANCELLED.value());
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(task);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(task);
|
|
||||||
}
|
|
||||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
|
||||||
|
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
|
||||||
|
|
||||||
String point_code1 = task.getString("point_code1");
|
|
||||||
if (StrUtil.isNotBlank(point_code1)) {
|
|
||||||
JSONObject point1 = point_table.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
|
||||||
if (LockType.TASK_LOCKED.value().equals(point1.getString("lock_type"))
|
|
||||||
&& task.getString("task_code").equals(point1.getString("task_code"))) {
|
|
||||||
point1.put("lock_type", LockType.UNLOCKED.value());
|
|
||||||
point1.put("task_code", "");
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(point1);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(point1);
|
|
||||||
}
|
|
||||||
point_table.update(point1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String point_code2 = task.getString("point_code2");
|
|
||||||
if (StrUtil.isNotBlank(point_code2)) {
|
|
||||||
JSONObject point2 = new JSONObject();
|
|
||||||
point2.put("lock_type", LockType.UNLOCKED.value());
|
|
||||||
point2.put("task_code", "");
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(point2);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(point2);
|
|
||||||
}
|
|
||||||
point_table.update(point2, "point_code = '" + point_code2 + "'");
|
|
||||||
}
|
|
||||||
|
|
||||||
String data_id = task.getString("table_fk_id");
|
|
||||||
if (TaskType.SEND_MATERIAL.value().equals(task.getString("task_type"))
|
|
||||||
&& StrUtil.isNotBlank(data_id)) {
|
|
||||||
WQLObject.getWQLObject("das_produce_number").delete("data_id = " + data_id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void finishTask(JSONObject task, OperationType operation_type) {
|
|
||||||
int current_task_status = task.getIntValue("task_status");
|
|
||||||
if (current_task_status < Integer.parseInt(TaskStatus.FINISHED.value())) {
|
|
||||||
if (operation_type == OperationType.MANUAL
|
|
||||||
&& current_task_status < Integer.parseInt(TaskStatus.START_AND_END.value())) {
|
|
||||||
throw new BadRequestException("只能手动完成 [确认起点和终点] 之后的任务!");
|
|
||||||
}
|
|
||||||
|
|
||||||
task.put("task_status", TaskStatus.FINISHED.value());
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(task);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(task);
|
|
||||||
}
|
|
||||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
|
||||||
|
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
|
||||||
|
|
||||||
String point_code1 = task.getString("point_code1");
|
|
||||||
if (StrUtil.isNotBlank(point_code1)) {
|
|
||||||
JSONObject point1 = point_table.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(point1)
|
|
||||||
&& LockType.TASK_LOCKED.value().equals(point1.getString("lock_type"))
|
|
||||||
&& task.getString("task_code").equals(point1.getString("task_code"))) {
|
|
||||||
point1.put("lock_type", LockType.UNLOCKED.value());
|
|
||||||
point1.put("task_code", "");
|
|
||||||
point1.put("vehicle_type", "");
|
|
||||||
point1.put("vehicle_code", "");
|
|
||||||
point1.put("point_status", PointStatus.EMPTY.value());
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(point1);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(point1);
|
|
||||||
}
|
|
||||||
point_table.update(point1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String point_code2 = task.getString("point_code2");
|
|
||||||
if (StrUtil.isNotBlank(point_code2)) {
|
|
||||||
JSONObject point2 = new JSONObject();
|
|
||||||
point2.put("lock_type", LockType.UNLOCKED.value());
|
|
||||||
point2.put("task_code", "");
|
|
||||||
if (TaskType.CALL_EMPTY.value().equals(task.getString("task_type"))) {
|
|
||||||
point2.put("vehicle_type", task.getString("vehicle_type"));
|
|
||||||
point2.put("vehicle_code", task.getString("vehicle_code"));
|
|
||||||
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
|
||||||
}
|
|
||||||
if (operation_type == OperationType.AUTO) {
|
|
||||||
TaskUtils.addACSUpdateColum(point2);
|
|
||||||
} else if (operation_type == OperationType.MANUAL) {
|
|
||||||
TaskUtils.addCurrentUpdateColum(point2);
|
|
||||||
}
|
|
||||||
point_table.update(point2, "point_code = '" + task.getString("point_code2") + "'");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TaskType.SEND_MATERIAL.value().equals(task.getString("task_type"))) {
|
|
||||||
JSONObject workorder = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "7")
|
|
||||||
.addParam("vd_id", task.getString("group_id"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
JSONObject workorder_update = new JSONObject();
|
|
||||||
workorder_update.put("real_qty", workorder.getIntValue("real_qty") + workorder.getIntValue("qty"));
|
|
||||||
workorder_update.put("qualified_qty", workorder.getIntValue("qualified_qty") + workorder.getIntValue("qty"));
|
|
||||||
TaskUtils.addACSUpdateColum(workorder_update);
|
|
||||||
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder_update, "workorder_id = " + workorder.getString("workorder_id"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.wql.WQL;
|
import org.nl.modules.wql.WQL;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.basedata.eum.TrueOrFalse;
|
||||||
import org.nl.wms.sch.manage.*;
|
import org.nl.wms.sch.manage.*;
|
||||||
import org.nl.wms.sch.task.util.TaskUtils;
|
import org.nl.wms.sch.task.util.TaskUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -38,9 +39,10 @@ public class GZSendMaterialTask extends AbstractAcsTask {
|
|||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
JSONObject point = form.getJSONObject("point");
|
JSONObject point = form.getJSONObject("point");
|
||||||
JSONObject vd = form.getJSONObject("vd");
|
JSONObject vd = form.getJSONObject("vd");
|
||||||
|
JSONObject workOrder = form.getJSONObject("workorder");
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
"烧制区送料",
|
"干燥区送料",
|
||||||
TaskType.SEND_MATERIAL.value(),
|
TaskType.SEND_MATERIAL.value(),
|
||||||
TaskStatus.SURE_START.value(),
|
TaskStatus.SURE_START.value(),
|
||||||
point.getString("point_code"),
|
point.getString("point_code"),
|
||||||
@@ -49,7 +51,7 @@ public class GZSendMaterialTask extends AbstractAcsTask {
|
|||||||
vd.getString("material_id"),
|
vd.getString("material_id"),
|
||||||
vd.getString("vehicle_type"),
|
vd.getString("vehicle_type"),
|
||||||
vd.getString("vehicle_code"),
|
vd.getString("vehicle_code"),
|
||||||
1,
|
TrueOrFalse.trueOrFalse(workOrder.getString("is_urgent")) ? 100 : 1,
|
||||||
GZSendMaterialTask.class.getName(),
|
GZSendMaterialTask.class.getName(),
|
||||||
form.getString("create_mode"),
|
form.getString("create_mode"),
|
||||||
form.getString("request_param"),
|
form.getString("request_param"),
|
||||||
@@ -81,7 +83,7 @@ public class GZSendMaterialTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
JSONObject point = WQL
|
JSONObject point = WQL
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
.getWO("SEND_MATERIAL_TASK")
|
||||||
.addParam("flag", "1")
|
.addParam("flag", "2")
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
|
|
||||||
@@ -211,6 +213,7 @@ public class GZSendMaterialTask extends AbstractAcsTask {
|
|||||||
point2.put("task_code", "");
|
point2.put("task_code", "");
|
||||||
point2.put("vehicle_type", task.getString("vehicle_type"));
|
point2.put("vehicle_type", task.getString("vehicle_type"));
|
||||||
point2.put("vehicle_code", task.getString("vehicle_code"));
|
point2.put("vehicle_code", task.getString("vehicle_code"));
|
||||||
|
point2.put("vd_id", task.getLongValue("group_id"));
|
||||||
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
||||||
if (operation_type == OperationType.AUTO) {
|
if (operation_type == OperationType.AUTO) {
|
||||||
TaskUtils.addACSUpdateColum(point2);
|
TaskUtils.addACSUpdateColum(point2);
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
JSONObject point = form.getJSONObject("point");
|
JSONObject point = form.getJSONObject("point");
|
||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
JSONObject vd = form.getJSONObject("vd");
|
JSONObject vd = form.getJSONObject("vd");
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
@@ -65,6 +65,9 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
point.put("lock_type", LockType.TASK_LOCKED.value());
|
point.put("lock_type", LockType.TASK_LOCKED.value());
|
||||||
point.put("task_code", task.getString("task_code"));
|
point.put("task_code", task.getString("task_code"));
|
||||||
|
point.put("vehicle_type", vd.getLongValue("vehicle_type"));
|
||||||
|
point.put("vehicle_code", vd.getLongValue("vehicle_code"));
|
||||||
|
point.put("vd_id", vd.getLongValue("vd_id"));
|
||||||
TaskUtils.addFormUpdateColum(point, form);
|
TaskUtils.addFormUpdateColum(point, form);
|
||||||
WQLObject.getWQLObject("sch_base_point").update(point);
|
WQLObject.getWQLObject("sch_base_point").update(point);
|
||||||
|
|
||||||
@@ -85,40 +88,42 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
for (int i = 0; i < tasks.size(); i++) {
|
for (int i = 0; i < tasks.size(); i++) {
|
||||||
JSONObject task = tasks.getJSONObject(i);
|
JSONObject task = tasks.getJSONObject(i);
|
||||||
|
|
||||||
JSONObject point1 = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0);
|
JSONObject startPoint = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0);
|
||||||
JSONObject point2 = null;
|
JSONObject nextPoint = null;
|
||||||
JSONObject workorder = WQL.getWO("SEND_MATERIAL_TASK").addParam("flag", "8").addParam("vd_id", task.getString("group_id")).process().uniqueResult(0);
|
|
||||||
if (ObjectUtil.isNotEmpty(point1)
|
// 如果是高速混料机下料位就只能去液压机困料货位,如果不是高速混料机下料位优先去普通压机困料货位,普通压机困料货位没有位置再去公用困料货位。
|
||||||
&& "2".equals(point1.getString("point_type"))
|
String startPointType = startPoint.getString("point_type");
|
||||||
&& ObjectUtil.isNotEmpty(workorder)
|
if ("1".equals(startPointType)) {
|
||||||
&& "1".equals(workorder.getString("is_new"))) {
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
point2 = WQL
|
.addParam("flag", "3")
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
.addParam("material_id", task.getString("material_id"))
|
||||||
|
.process()
|
||||||
|
.uniqueResult(0);
|
||||||
|
} else if ("2".equals(startPointType)) {
|
||||||
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
.addParam("flag", "4")
|
.addParam("flag", "4")
|
||||||
.addParam("material_id", task.getString("material_id"))
|
.addParam("material_id", task.getString("material_id"))
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
}
|
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||||
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
if (ObjectUtil.isEmpty(point2)) {
|
|
||||||
point2 = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "5")
|
.addParam("flag", "5")
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(point2)) {
|
if (ObjectUtil.isNotEmpty(nextPoint)) {
|
||||||
task.put("task_status", TaskStatus.START_AND_END.value());
|
task.put("task_status", TaskStatus.START_AND_END.value());
|
||||||
task.put("point_code2", point2.getString("point_code"));
|
task.put("point_code2", nextPoint.getString("point_code"));
|
||||||
task.put("remark", "");
|
task.put("remark", "");
|
||||||
TaskUtils.addAutoUpdateColum(task);
|
TaskUtils.addAutoUpdateColum(task);
|
||||||
task_table.update(task);
|
task_table.update(task);
|
||||||
|
|
||||||
point2.put("lock_type", LockType.TASK_LOCKED.value());
|
nextPoint.put("lock_type", LockType.TASK_LOCKED.value());
|
||||||
point2.put("task_code", task.getString("task_code"));
|
nextPoint.put("task_code", task.getString("task_code"));
|
||||||
TaskUtils.addAutoUpdateColum(point2);
|
TaskUtils.addAutoUpdateColum(nextPoint);
|
||||||
point_table.update(point2);
|
point_table.update(nextPoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,6 +233,7 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
point1.put("task_code", "");
|
point1.put("task_code", "");
|
||||||
point1.put("vehicle_type", "");
|
point1.put("vehicle_type", "");
|
||||||
point1.put("vehicle_code", "");
|
point1.put("vehicle_code", "");
|
||||||
|
point1.put("vd_id", null);
|
||||||
point1.put("point_status", PointStatus.EMPTY.value());
|
point1.put("point_status", PointStatus.EMPTY.value());
|
||||||
if (operation_type == OperationType.AUTO) {
|
if (operation_type == OperationType.AUTO) {
|
||||||
TaskUtils.addACSUpdateColum(point1);
|
TaskUtils.addACSUpdateColum(point1);
|
||||||
@@ -245,6 +251,7 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
point2.put("task_code", "");
|
point2.put("task_code", "");
|
||||||
point2.put("vehicle_type", task.getString("vehicle_type"));
|
point2.put("vehicle_type", task.getString("vehicle_type"));
|
||||||
point2.put("vehicle_code", task.getString("vehicle_code"));
|
point2.put("vehicle_code", task.getString("vehicle_code"));
|
||||||
|
point2.put("vd_id", task.getString("group_id"));
|
||||||
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
point2.put("point_status", PointStatus.HAS_GOODS.value());
|
||||||
if (operation_type == OperationType.AUTO) {
|
if (operation_type == OperationType.AUTO) {
|
||||||
TaskUtils.addACSUpdateColum(point2);
|
TaskUtils.addACSUpdateColum(point2);
|
||||||
@@ -253,18 +260,6 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
point_table.update(point2, "point_code = '" + point_code2 + "'");
|
point_table.update(point2, "point_code = '" + point_code2 + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject workorder = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "7")
|
|
||||||
.addParam("vd_id", task.getString("group_id"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
JSONObject workorder_update = new JSONObject();
|
|
||||||
workorder_update.put("real_qty", workorder.getIntValue("real_qty") + workorder.getIntValue("weight"));
|
|
||||||
TaskUtils.addACSUpdateColum(workorder_update);
|
|
||||||
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder_update, "workorder_id = " + workorder.getString("workorder_id"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class YZSendMaterialTask extends AbstractAcsTask {
|
|||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
JSONObject point = form.getJSONObject("point");
|
JSONObject point = form.getJSONObject("point");
|
||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 2 : 1;
|
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
JSONObject vd = form.getJSONObject("vd");
|
JSONObject vd = form.getJSONObject("vd");
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
|
|||||||
@@ -14,10 +14,7 @@
|
|||||||
## 表字段对应输入参数
|
## 表字段对应输入参数
|
||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
输入.is_full TYPEAS s_string
|
输入.material_id TYPEAS f_string
|
||||||
输入.vehicle_type TYPEAS s_string
|
|
||||||
输入.material_id TYPEAS s_string
|
|
||||||
输入.vd_id TYPEAS s_string
|
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
--这边列出来的临时表就会在运行期动态创建
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
@@ -66,16 +63,9 @@
|
|||||||
WHERE
|
WHERE
|
||||||
is_used = '1'
|
is_used = '1'
|
||||||
AND lock_type = '1'
|
AND lock_type = '1'
|
||||||
AND point_status = '0'
|
AND point_status = '1'
|
||||||
OPTION 输入.is_full = "1"
|
AND region_code = 'YHHJ'
|
||||||
region_code = 'FJ'
|
|
||||||
AND point_type = '5'
|
|
||||||
ENDOPTION
|
|
||||||
OPTION 输入.is_full = "0"
|
|
||||||
region_code = 'BTHC'
|
|
||||||
AND point_type = '1'
|
AND point_type = '1'
|
||||||
AND point_status = '0'
|
|
||||||
ENDOPTION
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -83,19 +73,18 @@
|
|||||||
IF 输入.flag = "3"
|
IF 输入.flag = "3"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
tpw.*
|
p.*
|
||||||
FROM
|
FROM
|
||||||
sch_base_point tpw
|
sch_base_point p
|
||||||
LEFT JOIN sch_base_point djw ON tpw.device_code = djw.point_code
|
LEFT JOIN pdm_bi_device d ON p.device_code = d.device_code
|
||||||
|
LEFT JOIN pdm_bd_workorder wo ON d.device_id = wo.device_id AND wo.order_status = '3'
|
||||||
WHERE
|
WHERE
|
||||||
tpw.is_used = '1'
|
p.is_used = '1'
|
||||||
AND djw.is_used = '1'
|
AND p.lock_type = '1'
|
||||||
AND tpw.region_code = 'FJ'
|
AND p.point_status = '1'
|
||||||
AND djw.region_code = 'FJ'
|
AND p.region_code = 'KLHJ'
|
||||||
AND tpw.point_type = '4'
|
AND p.point_type = '2'
|
||||||
AND djw.point_type = '3'
|
AND wo.material_id = 输入.material_id
|
||||||
AND djw.lock_type = '1'
|
|
||||||
AND tpw.vehicle_type = 输入.vehicle_type
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -103,19 +92,18 @@
|
|||||||
IF 输入.flag = "4"
|
IF 输入.flag = "4"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
point.*
|
p.*
|
||||||
FROM
|
FROM
|
||||||
sch_base_point point
|
sch_base_point p
|
||||||
JOIN pdm_bi_device device ON point.device_code = device.device_code
|
LEFT JOIN pdm_bi_device d ON p.device_code = d.device_code
|
||||||
LEFT JOIN pdm_bd_workorder workorder ON device.device_id = workorder.device_id AND workorder.order_status = '3'
|
LEFT JOIN pdm_bd_workorder wo ON d.device_id = wo.device_id AND wo.order_status = '3'
|
||||||
LEFT JOIN md_me_materialbase mb1 ON workorder.material_id = mb1.material_id AND mb1.material_type = '1'
|
|
||||||
WHERE
|
WHERE
|
||||||
point.is_used = '1'
|
p.is_used = '1'
|
||||||
AND point.lock_type = '1'
|
AND p.lock_type = '1'
|
||||||
AND point.region_code = 'KLHJ'
|
AND p.point_status = '1'
|
||||||
AND point.point_type = '2'
|
AND p.region_code = 'KLHJ'
|
||||||
AND point.point_status = '0'
|
AND p.point_type = '3'
|
||||||
AND mb1.material_id = 输入.material_id
|
AND wo.material_id = 输入.material_id
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -129,53 +117,9 @@
|
|||||||
WHERE
|
WHERE
|
||||||
is_used = '1'
|
is_used = '1'
|
||||||
AND lock_type = '1'
|
AND lock_type = '1'
|
||||||
|
AND point_status = '1'
|
||||||
AND region_code = 'KLHJ'
|
AND region_code = 'KLHJ'
|
||||||
AND point_type = '1'
|
AND point_type = '1'
|
||||||
AND point_status = '0'
|
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUER
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF 输入.flag = "6"
|
|
||||||
QUERY
|
|
||||||
SELECT
|
|
||||||
workorder.*,
|
|
||||||
vd.weight
|
|
||||||
FROM
|
|
||||||
pdm_bd_workorder workorder
|
|
||||||
LEFT JOIN st_ivt_vehicle_detail vd ON workorder.workorder_id = vd.workorder_id
|
|
||||||
WHERE
|
|
||||||
vd.vd_id = 输入.vd_id
|
|
||||||
ENDSELECT
|
|
||||||
ENDQUERY
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF 输入.flag = "7"
|
|
||||||
QUERY
|
|
||||||
SELECT
|
|
||||||
vd.weight,
|
|
||||||
vd.qty,
|
|
||||||
workorder.workorder_id,
|
|
||||||
workorder.real_qty,
|
|
||||||
workorder.qualified_qty
|
|
||||||
FROM
|
|
||||||
st_ivt_vehicle_detail vd
|
|
||||||
LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id
|
|
||||||
WHERE
|
|
||||||
vd.vd_id = 输入.vd_id
|
|
||||||
ENDSELECT
|
|
||||||
ENDQUERY
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
IF 输入.flag = "8"
|
|
||||||
QUERY
|
|
||||||
SELECT
|
|
||||||
workorder.*
|
|
||||||
FROM
|
|
||||||
st_ivt_vehicle_detail vd
|
|
||||||
LEFT JOIN pdm_bd_workorder workorder ON vd.workorder_id = workorder.workorder_id
|
|
||||||
WHERE
|
|
||||||
vd.vd_id = 输入.vd_id
|
|
||||||
ENDSELECT
|
|
||||||
ENDQUERY
|
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class FJToPackageTask extends AbstractAcsTask {
|
|||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
JSONObject point = form.getJSONObject("point");
|
JSONObject point = form.getJSONObject("point");
|
||||||
JSONObject work_order = form.getJSONObject("workorder");
|
JSONObject work_order = form.getJSONObject("workorder");
|
||||||
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 50 : 1;
|
int priority = TrueOrFalse.trueOrFalse(work_order.getString("is_urgent")) ? 100 : 1;
|
||||||
JSONObject vd = form.getJSONObject("vd");
|
JSONObject vd = form.getJSONObject("vd");
|
||||||
|
|
||||||
JSONObject task = TaskUtils.buildTask(
|
JSONObject task = TaskUtils.buildTask(
|
||||||
|
|||||||
@@ -22,14 +22,22 @@ public class PointTest {
|
|||||||
JSONObject point = new JSONObject();
|
JSONObject point = new JSONObject();
|
||||||
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
|
||||||
String now = DateUtil.now();
|
String now = DateUtil.now();
|
||||||
for (int i = 1; i <= 24; i++) {
|
for (int i = 1; i <= 18; i++) {
|
||||||
point.put("point_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
point.put("point_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||||
point.put("point_code", "YHHW" + String.format("%02d", i));
|
point.put("point_code", "KLHW" + String.format("%02d", i));
|
||||||
point.put("point_name", "窑后货位" + i);
|
if (i <= 6) {
|
||||||
point.put("region_id", 1695713466955993088L);
|
point.put("point_name", "压机" + i + "困料货位");
|
||||||
point.put("region_code", "YHHJ");
|
point.put("point_type", "3");
|
||||||
point.put("region_name", "窑后货架");
|
} else if (i <= 10) {
|
||||||
|
point.put("point_name", "液压机困料货位" + i);
|
||||||
|
point.put("point_type", "2");
|
||||||
|
} else {
|
||||||
|
point.put("point_name", "公用困料货位" + i);
|
||||||
point.put("point_type", "1");
|
point.put("point_type", "1");
|
||||||
|
}
|
||||||
|
point.put("region_id", 1695713307387891712L);
|
||||||
|
point.put("region_code", "KLHJ");
|
||||||
|
point.put("region_name", "困料货架");
|
||||||
point.put("lock_type", "1");
|
point.put("lock_type", "1");
|
||||||
point.put("create_id", 1);
|
point.put("create_id", 1);
|
||||||
point.put("create_name", "管理员");
|
point.put("create_name", "管理员");
|
||||||
|
|||||||
Reference in New Issue
Block a user