fix: 手持下发送空盘任务

This commit is contained in:
2023-10-30 14:37:16 +08:00
parent 48eb17cd0b
commit 7e295834a0
7 changed files with 63 additions and 21 deletions

View File

@@ -261,6 +261,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
JSONObject param = new JSONObject();
param.put("point_code1", point_code);
param.put("qty", vehicle_num);
param.put("force", whereJson.getString("force"));
param.put("vehicle_type", whereJson.getString("vehicle_type"));
// 创建任务
YqxSendEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxSendEmpVehicleTask.class);
taskBean.createTask(param);

View File

@@ -130,7 +130,6 @@ public class MesToWmsServiceImpl implements MesToWmsService {
workOrderTab.insert(param);
} else {
// 有的话就暂存起来
param.put("plan_qty", param.getString("vehicle_qty"));
param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr());
param.put("device_id", "1607915553220071424");
param.put("device_code", deviceCodeWX);

View File

@@ -15,6 +15,9 @@ import org.nl.wms.sch.tasks.RegionTypeEnum;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Service
@RequiredArgsConstructor
@Slf4j
@@ -57,7 +60,11 @@ public class SendVehicleServiceImpl implements SendVehicleService {
JSONObject jsonObject = WQLObject.getWQLObject("sch_base_region").query("region_id ='" + region_id + "'").uniqueResult(0);
String region_code = jsonObject.getString("region_code");
if (StrUtil.equals(region_code, "DPXWQ01")) param.put("type","9");
if (StrUtil.equals(region_code, "YQQY01")) param.put("type","5");
if (StrUtil.equals(region_code, "YQQY01")) {
param.put("type","5");
param.put("force","1");
param.put("vehicle_type", convertInput(whereJson.getString("point_code")));
}
param.put("point_code",whereJson.getString("point_code"));
param.put("vehicle_code",whereJson.getString("vehicle_code"));
@@ -69,4 +76,29 @@ public class SendVehicleServiceImpl implements SendVehicleService {
result.put("desc", "操作成功");
return result;
}
public static int convertInput(String input) {
// 定义正则表达式来匹配数字部分
Pattern pattern = Pattern.compile("YQX01_(\\d+)KX");
Matcher matcher = pattern.matcher(input);
// 如果匹配成功,提取数字部分并进行转换
if (matcher.find()) {
String numberStr = matcher.group(1);
int number = Integer.parseInt(numberStr);
// 根据不同的数字值进行转换
if (number == 1300) {
return 1;
} else if (number == 1600) {
return 2;
} else if (number == 1900) {
return 3;
} else {
// 其余情况返回-1表示错误
return -1;
}
} else {
// 如果匹配失败,返回-1表示错误
return -1;
}
}
}

View File

@@ -84,7 +84,7 @@
WHERE
is_used = '1'
AND is_delete = '0'
AND point_type = '4'
AND point_type = '2'
OPTION 输入.region_id <> ""
region_id = 输入.region_id

View File

@@ -419,9 +419,9 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
Integer need = 5;
if (realQty >= planQty) {
// 当前位置工单完成,物上工单完成
JSONObject row = new JSONObject();
row.put("row", workOrderObj);
workordeService.finish(row);
// JSONObject row = new JSONObject();
// row.put("row", workOrderObj);
// workordeService.finish(row);
throw new BadRequestException("该工单所需托盘已经足够");
}
if (realQty + need > planQty) {

View File

@@ -137,17 +137,25 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
//点位基础表【SCH_BASE_Point】
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
String point_code1 = form.getString("point_code1");
String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code");
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
String vehicleType = workOrderObj.getString("vehicle_type");
log.info("目前工单请求的载具类型: {}", vehicleType);
if (ObjectUtil.isEmpty(vehicleType)) throw new BadRequestException("载具类型不能为空");
JSONObject jsonObject = pointTab.query("region_code = 'YQQY01' and point_type = '2' and can_vehicle_type = '" + vehicleType + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonObject)) throw new BadRequestException("找不到油漆线托盘下料起点");
String startPointCode = jsonObject.getString("point_code");
log.info("找到起点的位置:{}", startPointCode);
String startPointCode = "";
String vehicleType = "";
Integer vehicleQty = 5;
if (ObjectUtil.isEmpty(form.getString("force"))) {
String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code");
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
vehicleType = workOrderObj.getString("vehicle_type");
log.info("目前工单请求的载具类型: {}", vehicleType);
if (ObjectUtil.isEmpty(vehicleType)) throw new BadRequestException("载具类型不能为空");
JSONObject jsonObject = pointTab.query("region_code = 'YQQY01' and point_type = '2' and can_vehicle_type = '" + vehicleType + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonObject)) throw new BadRequestException("找不到油漆线托盘下料起点");
startPointCode = jsonObject.getString("point_code");
log.info("找到起点的位置:{}", startPointCode);
} else {
startPointCode = form.getString("point_code1");
vehicleType = form.getString("vehicle_type");
vehicleQty = form.getInteger("qty");
}
//任务表【SCH_BASE_Task】
//判断当前点是否有未完成的任务
JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" +
@@ -164,7 +172,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
.priority("8")
.vehicle_code(form.getString("vehicle_code"))
.vehicle_type(vehicleType)
.vehicle_qty(5)
.vehicle_qty(vehicleQty)
.handle_class(THIS_CLASS)
.create_time(DateUtil.now())
.build();

View File

@@ -176,9 +176,10 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
// 最后一个要把工单完成
if (workOrderObj.getInteger("real_qty") == workOrderObj.getInteger("plan_qty")) {
// 当前位置工单完成,物上工单完成
JSONObject row = new JSONObject();
row.put("row", workOrderObj);
workordeService.finish(row);
// JSONObject row = new JSONObject();
// row.put("row", workOrderObj);
// workordeService.finish(row);
throw new BadRequestException("该工单已送完");
}