fix: 手持下发送空盘任务
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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("该工单已送完");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user