fix 表结构修改,反向组盘接口

This commit is contained in:
张江玮
2023-07-19 17:37:33 +08:00
parent 85adcb1b8f
commit 1b3a849fd7
5 changed files with 23 additions and 303 deletions

View File

@@ -122,11 +122,7 @@ public class AcsToWmsController {
@ApiOperation("入窑口反向组盘") @ApiOperation("入窑口反向组盘")
@SaIgnore @SaIgnore
public ResponseEntity<Object> reverseGroup(@RequestBody JSONObject whereJson) { public ResponseEntity<Object> reverseGroup(@RequestBody JSONObject whereJson) {
acsToWmsService.reverseGroup(whereJson); return new ResponseEntity<>(acsToWmsService.reverseGroup(whereJson), HttpStatus.OK);
JSONObject result = new JSONObject();
result.put("status", HttpStatus.OK.value());
result.put("message", "发送任务成功");
return new ResponseEntity<>(result, HttpStatus.OK);
} }
@SaIgnore @SaIgnore

View File

@@ -100,7 +100,7 @@ public interface AcsToWmsService {
* 入窑口反向组盘 * 入窑口反向组盘
* @param whereJson * @param whereJson
*/ */
void reverseGroup(JSONObject whereJson); JSONObject reverseGroup(JSONObject whereJson);
/** /**
* 根据设备编码获取托盘信息 * 根据设备编码获取托盘信息

View File

@@ -207,263 +207,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public JSONObject apply(JSONObject param) { public JSONObject apply(JSONObject param) {
String point_code = param.getString("device_code"); return null;
if (StrUtil.isBlank(point_code)) {
throw new BadRequestException("点位不能为空!");
}
String type = param.getString("type");
String task_code;
JSONObject point = param.getJSONObject("point");
if (ObjectUtil.isEmpty(point)) {
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 + "] 已删除或未启用!");
}
}
TaskUtils.isLocked(point);
Region region = Region.get(point.getString("region_code"));
JSONObject method_param = new JSONObject();
method_param.put("point", point);
method_param.put("create_mode", CreateMode.ACSSQ.value());
String request_param = param.getString("request_param");
if (StrUtil.isBlank(request_param)) {
request_param = param.toJSONString();
}
method_param.put("request_param", request_param);
method_param.put("create_id", ACSSystem.id);
method_param.put("create_name", ACSSystem.nick_name);
switch (type) {
case "1":
// 送料
switch (region) {
case HL:
JSONObject workorder = TaskUtils.hasWorkOrder(point);
method_param.put("workorder", workorder);
String vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code"));
if ("0000".equals(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
method_param.put("vehicle_code", vehicle_code);
String weight = param.getString("weight");
if (StrUtil.isBlank(weight)) {
throw new BadRequestException("重量不能为空!");
}
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
JSONObject vd_update = new JSONObject();
vd_update.put("is_delete", "1");
vd_update.put("update_optid", ACSSystem.id);
vd_update.put("update_optname", ACSSystem.nick_name);
String now = DateUtil.now();
vd_update.put("update_time", now);
vd_table.update(vd_update, "vehicle_type = '1' AND vehicle_code = '" + vehicle_code + "' AND is_delete = '0'");
String device_code = workorder.getString("device_code");
JSONObject result = wmsToAcsService.getDeviceStatus(
new JSONArray() {{
add(new JSONObject() {{
put("device_code", device_code);
}});
}});
if (!"200".equals(result.getString("status"))) {
throw new BadRequestException("[" + device_code + "] ACS未返回设备信息");
}
JSONArray data = result.getJSONArray("data");
if (ObjectUtil.isEmpty(data)) {
throw new BadRequestException("[" + device_code + "] ACS未返回设备信息");
}
String mix_num = data.getJSONObject(0).getString("mix_num");
if (StrUtil.isBlank(mix_num)) {
throw new BadRequestException("未知碾次!");
}
JSONObject vd = new JSONObject();
vd.put("vd_id", IdUtil.getSnowflake(1L, 1L).nextId());
vd.put("vehicle_type", VehicleType.CUP.value());
vd.put("vehicle_code", vehicle_code);
vd.put("material_id", workorder.getString("material_id"));
vd.put("weight", weight);
vd.put("workorder_id", workorder.getString("workorder_id"));
vd.put("point_code", point_code);
vd.put("create_id", ACSSystem.id);
vd.put("create_name", ACSSystem.nick_name);
vd.put("create_time", now);
vd.put("is_in_kiln", "0");
vd.put("stand_status", StandStatus.STANDING.value());
vd.put("mix_num", mix_num);
vd_table.insert(vd);
method_param.put("vd", vd);
task_code = hlSendMaterialTask.createTask(method_param);
break;
case YZ:
method_param.put("workorder", param.getJSONObject("workorder"));
method_param.put("vd", param.getJSONObject("vd"));
task_code = yzSendMaterialTask.createTask(method_param);
break;
case SZ:
vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code"));
if ("0000".equals(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
method_param.put("vehicle_code", vehicle_code);
vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
vd = vd_table
.query("is_delete = '0' AND vehicle_type = '2' AND vehicle_code = '" + vehicle_code + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(vd)) {
throw new BadRequestException("未找到 [" + vehicle_code + "] 的组盘信息!");
}
vd.put("is_fire", "1");
vd.put("is_in_kiln", "0");
vd_table.update(vd);
method_param.put("vd", vd);
task_code = szSendMaterialTask.createTask(method_param);
break;
case FJ:
method_param.put("workorder", param.getJSONObject("workorder"));
method_param.put("vd", param.getJSONObject("vd"));
task_code = fjSendMaterialTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起送料任务!");
}
break;
case "2":
// 叫料
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:
throw new BadRequestException("[" + region.label() + "] 不能发起叫料任务!");
}
break;
case "3":
// 送空
JSONObject workorder = WQLObject
.getWQLObject("pdm_bd_workorder")
.query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'")
.uniqueResult(0);
method_param.put("workorder", workorder);
switch (region) {
case YZ:
String vehicle_type = point.getString("vehicle_type");
if (StrUtil.isBlank(vehicle_type)) {
throw new BadRequestException("点位 [" + point_code + "] 无载具类型!");
}
String vehicle_code = TaskUtils.formatVehicleCode(point.getString("vehicle_code"));
if ("0000".equals(vehicle_code)) {
throw new BadRequestException("点位 [" + point_code + "] 无载具编码!");
}
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 + "'");
task_code = yzSendEmptyTask.createTask(method_param);
break;
case FJ:
vehicle_code = TaskUtils.formatVehicleCode(param.getString("vehicle_code"));
if ("0000".equals(vehicle_code)) {
vehicle_code = point.getString("vehicle_code");
if (StrUtil.isBlank(vehicle_code) || "0000".equals(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
}
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 + "'");
task_code = fjSendEmptyTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起送空任务!");
}
break;
case "4":
// 叫空
switch (region) {
case HL:
workorder = WQLObject
.getWQLObject("pdm_bd_workorder")
.query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'")
.uniqueResult(0);
method_param.put("workorder", workorder);
task_code = hlCallEmptyTask.createTask(method_param);
break;
case YZ:
workorder = WQLObject
.getWQLObject("pdm_bd_workorder")
.query("is_delete = '0' AND device_code = '" + point.getString("device_code") + "' AND order_status = '3'")
.uniqueResult(0);
method_param.put("workorder", workorder);
task_code = yzCallEmptyTask.createTask(method_param);
break;
case GTK:
task_code = gtkCallEmptyTask.createTask(method_param);
break;
case FJ:
workorder = TaskUtils.hasWorkOrder(point);
method_param.put("workorder", workorder);
task_code = fjCallEmptyTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起叫空任务!");
}
break;
case "5":
// 去包装
switch (region) {
case FJ:
method_param.put("workorder", param.getJSONObject("workorder"));
method_param.put("vd", param.getJSONObject("vd"));
task_code = fjToPackageTask.createTask(method_param);
break;
case BTHC:
TaskUtils.isNotEmptyPoint(point);
JSONObject vd = WQLObject
.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' vehicle_type = '" + point.getString("vehicle_type") + "' AND vehicle_code = '" + point.getString("vehicle_code") + "'")
.uniqueResult(0);
if (ObjectUtil.isEmpty(vd)) {
throw new BadRequestException("未找到 [" + point_code + "] 上的组盘信息!");
}
method_param.put("vd", vd);
task_code = bthcToPackageTask.createTask(method_param);
break;
default:
throw new BadRequestException("[" + region.label() + "] 不能发起去包装任务!");
}
break;
default:
throw new BadRequestException("未知任务类型!");
}
JSONObject result = new JSONObject();
result.put("message", "申请任务成功,任务编码 [" + task_code + "]");
result.put("status", HttpStatus.OK.value());
return result;
} }
/** /**
@@ -480,11 +224,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (StrUtil.isBlank(point_code)) { if (StrUtil.isBlank(point_code)) {
throw new BadRequestException("点位不能为空!"); throw new BadRequestException("点位不能为空!");
} }
String vehicle_code = jsonObject.getString("vehicle_code");
vehicle_code = TaskUtils.formatVehicleCode(vehicle_code);
if ("0000".equals(vehicle_code)) {
throw new BadRequestException("载具编码不能为空!");
}
String qty = jsonObject.getString("qty"); String qty = jsonObject.getString("qty");
if (StrUtil.isBlank(qty)) { if (StrUtil.isBlank(qty)) {
throw new BadRequestException("数量不能为空!"); throw new BadRequestException("数量不能为空!");
@@ -507,13 +246,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
} }
TaskUtils.isLocked(point); TaskUtils.isLocked(point);
String vehicle_code = TaskUtils.formatVehicleCode(jsonObject.getString("vehicle_code"));
JSONObject workorder = TaskUtils.hasWorkOrder(point); JSONObject workorder = TaskUtils.hasWorkOrder(point);
String vehicle_type = workorder.getString("vehicle_type"); String vehicle_type = workorder.getString("vehicle_type");
WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail"); WQLObject vd_table = WQLObject.getWQLObject("st_ivt_vehicle_detail");
JSONObject vd_update = new JSONObject(); if (!"0000".equals(vehicle_code)) {
vd_update.put("is_delete", TrueOrFalse.TRUE.value()); JSONObject vd_update = new JSONObject();
TaskUtils.addACSUpdateColum(vd_update); vd_update.put("is_delete", TrueOrFalse.TRUE.value());
vd_table.update(vd_update, "is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'"); TaskUtils.addACSUpdateColum(vd_update);
vd_table.update(vd_update, "is_delete = '0' AND vehicle_type = '" + vehicle_type + "' AND vehicle_code = '" + vehicle_code + "'");
}
JSONObject vd = new JSONObject(); JSONObject vd = new JSONObject();
vd.put("vd_id", IdUtil.getSnowflake(1, 1).nextId()); vd.put("vd_id", IdUtil.getSnowflake(1, 1).nextId());
@@ -578,19 +320,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
vd.put("create_time", DateUtil.now()); vd.put("create_time", DateUtil.now());
vd.put("is_delete", TrueOrFalse.FALSE.value()); vd.put("is_delete", TrueOrFalse.FALSE.value());
vd.put("is_fire", TrueOrFalse.FALSE.value());
String region_code = point.getString("region_code");
if (Region.FJ.value().equals(region_code)) {
vd.put("is_fire", TrueOrFalse.TRUE.value());
}
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", jsonObject.getString("is_package"));
}
vd_table.insert(vd); vd_table.insert(vd);
// 入库 // 入库
@@ -777,25 +506,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void reverseGroup(JSONObject whereJson) { public JSONObject reverseGroup(JSONObject whereJson) {
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
String vehicle_code = whereJson.getString("vehicle_code"); String vehicle_code = whereJson.getString("vehicle_code");
String task_id = whereJson.getString("task_id"); if (StrUtil.isBlank(vehicle_code)) {
// 通过任务号获取任务中的 throw new BadRequestException("条码不能为空!");
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0); }
String group_id = taskObj.getString("group_id"); String task_code = whereJson.getString("task_code");
if (StrUtil.isBlank(task_code)) {
throw new BadRequestException("任务编码不能为空!");
}
JSONObject result = new JSONObject();
JSONObject rywPoint = pointTab.query("point_code = 'RYW'").uniqueResult(0); result.put("status", HttpStatus.OK.value());
JSONObject group = groupTab.query("group_id = '" + group_id + "'").uniqueResult(0); result.put("message", "组盘成功!");
group.put("vehicle_code", vehicle_code); return result;
group.put("create_time", DateUtil.now());
groupTab.update(group);
// 清理点位
rywPoint.put("point_status", PointEnum.POINT_STATUS_EMPTY_POSITION.getCode());
pointTab.update(rywPoint);
} }
/** /**

View File

@@ -6,7 +6,7 @@ spring:
druid: druid:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lnsh_lms3}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lnsh_lms4}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useOldAliasMetadataBehavior=true
username: ${DB_USER:root} username: ${DB_USER:root}
password: ${DB_PWD:123456} password: ${DB_PWD:123456}
# 初始连接数 # 初始连接数