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(); JSONObject param = new JSONObject();
param.put("point_code1", point_code); param.put("point_code1", point_code);
param.put("qty", vehicle_num); 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); YqxSendEmpVehicleTask taskBean = SpringContextHolder.getBean(YqxSendEmpVehicleTask.class);
taskBean.createTask(param); taskBean.createTask(param);

View File

@@ -130,7 +130,6 @@ public class MesToWmsServiceImpl implements MesToWmsService {
workOrderTab.insert(param); workOrderTab.insert(param);
} else { } else {
// 有的话就暂存起来 // 有的话就暂存起来
param.put("plan_qty", param.getString("vehicle_qty"));
param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr()); param.put("workorder_id", IdUtil.getSnowflake(1,1).nextIdStr());
param.put("device_id", "1607915553220071424"); param.put("device_id", "1607915553220071424");
param.put("device_code", deviceCodeWX); 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Slf4j @Slf4j
@@ -57,7 +60,11 @@ public class SendVehicleServiceImpl implements SendVehicleService {
JSONObject jsonObject = WQLObject.getWQLObject("sch_base_region").query("region_id ='" + region_id + "'").uniqueResult(0); JSONObject jsonObject = WQLObject.getWQLObject("sch_base_region").query("region_id ='" + region_id + "'").uniqueResult(0);
String region_code = jsonObject.getString("region_code"); String region_code = jsonObject.getString("region_code");
if (StrUtil.equals(region_code, "DPXWQ01")) param.put("type","9"); 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("point_code",whereJson.getString("point_code"));
param.put("vehicle_code",whereJson.getString("vehicle_code")); param.put("vehicle_code",whereJson.getString("vehicle_code"));
@@ -69,4 +76,29 @@ public class SendVehicleServiceImpl implements SendVehicleService {
result.put("desc", "操作成功"); result.put("desc", "操作成功");
return result; 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 WHERE
is_used = '1' is_used = '1'
AND is_delete = '0' AND is_delete = '0'
AND point_type = '4' AND point_type = '2'
OPTION 输入.region_id <> "" OPTION 输入.region_id <> ""
region_id = 输入.region_id region_id = 输入.region_id

View File

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

View File

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

View File

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