add PDA送空

This commit is contained in:
张江玮
2023-05-13 17:42:10 +08:00
parent 5ffca09127
commit 65734963c5
14 changed files with 227 additions and 50 deletions

View File

@@ -25,6 +25,7 @@ import org.nl.wms.sch.task.call.empty.GTKCallEmptyTask;
import org.nl.wms.sch.task.call.empty.HLCallEmptyTask;
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.SZCallMaterialTask;
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.YZSendEmptyTask;
@@ -75,6 +76,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private final YZSendEmptyTask yzSendEmptyTask;
private final SZCallMaterialTask szCallMaterialTask;
/**
* task_id任务标识
* task_code任务编码
@@ -313,14 +316,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
break;
case "2":
// 叫料
JSONObject workorder = TaskUtils.hasWorkOrder(point);
method_param.put("workorder", workorder);
switch (region) {
case YZ:
JSONObject workorder = TaskUtils.hasWorkOrder(point);
method_param.put("workorder", workorder);
task_code = yzCallMaterialTask.createTask(method_param);
break;
case SZ:
task_code = szCallMaterialTask.createTask(method_param);
break;
case FJ:
workorder = TaskUtils.hasWorkOrder(point);
method_param.put("workorder", workorder);
task_code = fjCallMaterialTask.createTask(method_param);
break;
default:
@@ -329,7 +336,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
break;
case "3":
// 送空
workorder = WQLObject
JSONObject workorder = WQLObject
.getWQLObject("pdm_bd_workorder")
.query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'")
.uniqueResult(0);
@@ -347,6 +354,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
JSONObject vd_update = new JSONObject();
vd_update.put("is_delete", TrueOrFalse.TRUE.value());
TaskUtils.addACSUpdateColum(vd_update);
WQLObject
.getWQLObject("st_ivt_vehicle_detail")
.update(vd_update, "vehicle_type = " + vehicle_type + " AND vehicle_code = '" + vehicle_code + "'");
@@ -364,6 +372,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
method_param.put("vehicle_code", vehicle_code);
vd_update = new JSONObject();
vd_update.put("is_delete", TrueOrFalse.TRUE.value());
TaskUtils.addACSUpdateColum(vd_update);
WQLObject
.getWQLObject("st_ivt_vehicle_detail")
.update(vd_update, "vehicle_type = '2' AND vehicle_code = '" + vehicle_code + "'");

View File

@@ -140,4 +140,22 @@ public class PdaController {
pdaService.callMaterial(point_code, param.toJSONString());
return PdaUtils.buildSuccessResultJSON(null);
}
@PostMapping("/sendEmpty")
@Log("送空")
@ApiOperation("送空")
@PdaAnnotation
public JSONObject sendEmpty(@RequestBody JSONObject param) {
String point_code = param.getString("point_code");
if (StrUtil.isBlank(point_code)) {
throw new BadRequestException("点位编码不能为空!");
}
String vehicle_code = param.getString("vehicle_code");
if (StrUtil.isBlank(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
pdaService.sendEmpty(point_code, vehicle_code, param.toJSONString());
return PdaUtils.buildSuccessResultJSON(null);
}
}

View File

@@ -61,4 +61,12 @@ public interface PdaService {
* @param point_code 点位编码
*/
void callMaterial(String point_code, String request_param);
/**
* 送空
*
* @param point_code 点位编码
* @param vehicle_code 载具编码
*/
void sendEmpty(String point_code, String vehicle_code, String request_param);
}

View File

@@ -13,12 +13,16 @@ import org.nl.modules.common.utils.SecurityUtils;
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.basedata.eum.VehicleType;
import org.nl.wms.pda.service.PdaService;
import org.nl.wms.sch.manage.ACSSystem;
import org.nl.wms.sch.manage.CreateMode;
import org.nl.wms.sch.manage.PointStatus;
import org.nl.wms.sch.manage.Region;
import org.nl.wms.sch.task.call.material.FJCallMaterialTask;
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.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.YZSendMaterialTask;
@@ -45,19 +49,31 @@ public class PdaServiceImpl implements PdaService {
private final FJCallMaterialTask fjCallMaterialTask;
private final YZSendEmptyTask yzSendEmptyTask;
private final FJSendEmptyTask fjSendEmptyTask;
@Override
public JSONArray region(String func) {
switch (func) {
case "send_material":
// 送料
case "call_material":
// 送料
return WQL
.getWO("PDA")
.addParam("flag", "1")
.addParam("where", "('HL', 'YZ', 'FJ')")
.process()
.getResultJSONArray(0);
case "call_material":
// 叫料
case "send_empty":
// 送空
return WQL
.getWO("PDA")
.addParam("flag", "1")
.addParam("where", "('YZ', 'FJ')")
.process()
.getResultJSONArray(0);
default:
throw new BadRequestException("未知功能!");
}
@@ -131,6 +147,36 @@ public class PdaServiceImpl implements PdaService {
default:
throw new BadRequestException(region.label() + "没有叫料点位!");
}
case "send_empty":
// 送空
switch (region) {
case YZ:
JSONArray result = WQL
.getWO("PDA")
.addParam("flag", "2")
.addParam("region_code", region_code)
.addParam("point_type", "('2', '3')")
.process()
.getResultJSONArray(0);
result.addAll(WQL
.getWO("PDA")
.addParam("flag", "2")
.addParam("region_code", Region.KLHJ.value())
.addParam("point_type", "('3')")
.process()
.getResultJSONArray(0));
return result;
case FJ:
return WQL
.getWO("PDA")
.addParam("flag", "2")
.addParam("region_code", region_code)
.addParam("point_type", "('1')")
.process()
.getResultJSONArray(0);
default:
throw new BadRequestException(region.label() + "没有送空点位!");
}
default:
throw new BadRequestException("未知功能!");
}
@@ -174,11 +220,11 @@ public class PdaServiceImpl implements PdaService {
TaskUtils.isLocked(point);
JSONObject workorder = TaskUtils.hasWorkOrder(point);
String vehicle_type = workorder.getString("vehicle_type");
String device_code = workorder.getString("device_code");
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
JSONObject vd_update = new JSONObject();
vd_update.put("is_delete", TrueOrFalse.TRUE.value());
vd_table.update(vd_update, "vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'");
TaskUtils.addCurrentUpdateColum(vd_update);
vd_table.update(vd_update, "is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'");
// 组盘
JSONObject vd = new JSONObject();
@@ -191,17 +237,25 @@ public class PdaServiceImpl implements PdaService {
vd.put("is_full", is_full);
vd.put("workorder_id", workorder.getString("workorder_id"));
vd.put("point_code", point_code);
vd.put("create_id", SecurityUtils.getCurrentUserId());
vd.put("create_name", SecurityUtils.getCurrentNickName());
Long user_id = SecurityUtils.getCurrentUserId();
vd.put("create_id", user_id);
String nick_name = SecurityUtils.getCurrentNickName();
vd.put("create_name", nick_name);
vd.put("create_time", DateUtil.now());
vd.put("is_delete", "0");
if (device_code.startsWith("FJ")) {
vd.put("is_delete", TrueOrFalse.FALSE.value());
String region_code = point.getString("region_code");
vd.put("is_fire", TrueOrFalse.FALSE.value());
if (Region.FJ.value().equals(region_code)) {
vd.put("is_fire", TrueOrFalse.TRUE.value());
}
vd.put("is_in_kiln", TrueOrFalse.trueOrFalse(is_full) ? TrueOrFalse.TRUE.value() : TrueOrFalse.FALSE.value());
if (device_code.startsWith("FJ")) {
vd.put("is_in_kiln", is_full);
if (Region.FJ.value().equals(region_code)) {
vd.put("is_in_kiln", TrueOrFalse.FALSE.value());
}
if (Region.FJ.value().equals(region_code)) {
vd.put("is_package", TrueOrFalse.TRUE.value());
}
vd_table.insert(vd);
Region region = Region.get(point.getString("region_code"));
@@ -211,8 +265,8 @@ public class PdaServiceImpl implements PdaService {
method_param.put("vd", vd);
method_param.put("create_mode", CreateMode.SCCJ.value());
method_param.put("request_param", request_param);
method_param.put("create_id", SecurityUtils.getCurrentUserId());
method_param.put("create_name", SecurityUtils.getCurrentNickName());
method_param.put("create_id", user_id);
method_param.put("create_name", nick_name);
switch (region) {
case HL:
@@ -250,6 +304,7 @@ public class PdaServiceImpl implements PdaService {
method_param.put("create_name", SecurityUtils.getCurrentNickName());
switch (region) {
case KLHJ:
case YZ:
yzCallMaterialTask.createTask(method_param);
break;
@@ -260,4 +315,54 @@ public class PdaServiceImpl implements PdaService {
throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!");
}
}
@Override
public void sendEmpty(String point_code, String vehicle_code, String request_param) {
JSONObject point = WQLObject
.getWQLObject("sch_base_point")
.query("is_used = '1' AND point_code = '" + point_code + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(point)) {
throw new BadRequestException("[" + point_code + "] 已删除或未启用!");
}
JSONObject workorder = WQLObject
.getWQLObject("pdm_bd_workorder")
.query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'")
.uniqueResult(0);
Region region = Region.get(point.getString("region_code"));
JSONObject method_param = new JSONObject();
method_param.put("point", point);
method_param.put("workorder", workorder);
method_param.put("create_mode", CreateMode.SCCJ.value());
method_param.put("request_param", request_param);
method_param.put("create_id", SecurityUtils.getCurrentUserId());
method_param.put("create_name", SecurityUtils.getCurrentNickName());
switch (region) {
case KLHJ:
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
point.put("vehicle_type", VehicleType.CUP.value());
point.put("vehicle_code", vehicle_code);
point.put("point_status", PointStatus.NOT_EMPTY.value());
TaskUtils.addCurrentUpdateColum(point);
point_table.update(point);
JSONObject point_update = new JSONObject();
point_update.put("vehicle_type", "");
point_update.put("vehicle_code", "");
point_update.put("point_status", PointStatus.EMPTY.value());
TaskUtils.addCurrentUpdateColum(point_update);
point_table.update(point_update, "region_code = 'KLHJ' AND point_type = '2' AND vehicle_type = '1' AND vehicle_code = '" + vehicle_code + "'");
case YZ:
yzSendEmptyTask.createTask(method_param);
break;
case FJ:
method_param.put("vehicle_code", vehicle_code);
fjSendEmptyTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起送空任务!");
}
}
}

View File

@@ -77,4 +77,9 @@ public class DeviceDto implements Serializable {
* 设备产能
*/
private BigDecimal productivity;
/**
* 是否工单设备
*/
private String is_workorder;
}

View File

@@ -46,6 +46,7 @@ public class DeviceServiceImpl implements DeviceService {
if (!StrUtil.isEmpty(search)) {
map.put("search", "%" + search + "%");
}
map.put("is_workorder", MapUtil.getStr(whereJson, "is_workorder"));
map.put("region_str", MapUtil.getStr(whereJson, "region_str"));
JSONObject json = WQL.getWO("PDM_BI_DEVICE01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "device.device_model ASC, device.device_code ASC");
return json;

View File

@@ -16,6 +16,7 @@
输入.flag TYPEAS s_string
输入.search TYPEAS s_string
输入.region_str TYPEAS f_string
输入.is_workorder TYPEAS s_string
[临时表]
@@ -58,7 +59,9 @@
OPTION 输入.region_str <> ""
device.region_code IN 输入.region_str
ENDOPTION
OPTION 输入.is_workorder <> ""
device.is_workorder = 输入.is_workorder
ENDOPTION
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -22,24 +22,6 @@ import org.springframework.stereotype.Component;
public class SZCallMaterialTask extends AbstractAcsTask {
@Override
public void autoCreate() {
JSONArray points = WQL.getWO("CALL_MATERIAL_TASK").addParam("flag", "2").process().getResultJSONArray(0);
if (ObjectUtil.isNotEmpty(points) && !points.isEmpty()) {
JSONObject form = new JSONObject();
form.put("create_mode", CreateMode.ZDSC.value());
form.put("create_id", AutoCreate.id);
form.put("create_name", AutoCreate.nick_name);
form.put("request_param", "auto");
for (int i = 0; i < points.size(); i++) {
JSONObject point = points.getJSONObject(i);
form.put("point", point);
this.createTask(form);
}
}
}
@Override
public void updateTaskStatus(JSONObject task, String status) {
if (TaskStatus.EXECUTING.value().equals(status)) {