add: 添加Sorting交互接口,反馈物料完成信号,sorting下发交期时间/下道工序;添加呼叫无下道工序物料
This commit is contained in:
@@ -188,24 +188,42 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} else if (device_code.contains("_02")) {
|
} else if (device_code.contains("_02")) {
|
||||||
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
||||||
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
|
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
if (plcToAgvDeviceDriver.getAGVSetOutReqUpper() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqUpper", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
|
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
|
||||||
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
||||||
if ("1".equals(plc_to_agv)) {
|
if ("1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
if (plcToAgvDeviceDriver.getAGVSetOutReqUpper() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqUpper", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetOutUpperAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
} else if ("2".equals(plc_to_agv)) {
|
} else if ("2".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
|
if (plcToAgvDeviceDriver.getAGVSetOutReqLower() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetOutReqLower", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetOutLowerAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetOutLowerAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
data = feedBackStatus(data, index, 1, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -348,9 +366,15 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
if (device_code.contains("_01")) {
|
if (device_code.contains("_01")) {
|
||||||
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
||||||
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
|
if (ObjectUtil.isNotNull(plc_to_agv) && "1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
if (plcToAgvDeviceDriver.getAGVSetInReqUpper() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqUpper", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -361,15 +385,27 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
|
} else if (ObjectUtil.isNotEmpty(extraValue.get("upper_lower_levels"))) {
|
||||||
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
Object plc_to_agv = extraValue.get("upper_lower_levels");
|
||||||
if ("1".equals(plc_to_agv)) {
|
if ("1".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
if (plcToAgvDeviceDriver.getAGVSetInReqUpper() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqUpper", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetInUpperAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
} else if ("2".equals(plc_to_agv)) {
|
} else if ("2".equals(plc_to_agv)) {
|
||||||
plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
|
if (plcToAgvDeviceDriver.getAGVSetInReqLower() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVSetInReqLower", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVSetInReqLower", "1");
|
||||||
if (plcToAgvDeviceDriver.getAGVSetInLowerAllowed() == 1) {
|
if (plcToAgvDeviceDriver.getAGVSetInLowerAllowed() == 1) {
|
||||||
plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
if (plcToAgvDeviceDriver.getAGVInOP() != 1) {
|
||||||
|
writeSignal(plcToAgvDeviceDriver, "AGVInOP", "1");
|
||||||
|
}
|
||||||
|
//plcToAgvDeviceDriver.writing("AGVInOP", "1");
|
||||||
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
data = feedBackStatus(data, index, 3, inst, task, 2, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -532,6 +568,19 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 写信号
|
||||||
|
*/
|
||||||
|
public void writeSignal(PlcToAgvDeviceDriver plcToAgvDeviceDriver, String kepName, String kepValue) {
|
||||||
|
List list = new ArrayList<>();
|
||||||
|
Map map = new HashMap();
|
||||||
|
map.put("code", kepName);
|
||||||
|
map.put("value", kepValue);
|
||||||
|
list.add(map);
|
||||||
|
plcToAgvDeviceDriver.writing(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private byte[] getData(byte[] data, int index, Instruction inst, TaskDto task) {
|
private byte[] getData(byte[] data, int index, Instruction inst, TaskDto task) {
|
||||||
String hasWms = paramService.findByCode("hasWms").getValue();
|
String hasWms = paramService.findByCode("hasWms").getValue();
|
||||||
if ("3".equals(task.getTask_type()) && StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
if ("3".equals(task.getTask_type()) && StrUtil.isNotEmpty(hasWms) && "1".equals(hasWms)) {
|
||||||
|
|||||||
@@ -423,7 +423,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void finishTask(String task_code, String point_code) {
|
private void finishTask(String task_code, String point_code) {
|
||||||
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code)
|
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class)
|
||||||
|
.eq(SchBasePoint::getPoint_code, point_code)
|
||||||
.set(SchBasePoint::getIs_lock, false));
|
.set(SchBasePoint::getIs_lock, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -492,6 +493,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
json.put("device_code", schBaseTask.getPoint_code1());
|
json.put("device_code", schBaseTask.getPoint_code1());
|
||||||
json.put("task_code", schBaseTask.getTask_code());
|
json.put("task_code", schBaseTask.getTask_code());
|
||||||
boolean flag = true;
|
boolean flag = true;
|
||||||
|
String jobName = null;
|
||||||
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json);
|
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json);
|
||||||
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) {
|
if (acsResponse.getStatus() == 200 && StrUtil.isNotEmpty(acsResponse.getData())) {
|
||||||
JSONArray objects = JSONObject.parseArray(acsResponse.getData());
|
JSONArray objects = JSONObject.parseArray(acsResponse.getData());
|
||||||
@@ -517,13 +519,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
schBaseVehiclematerialgroup.setCreate_name("Connector");
|
schBaseVehiclematerialgroup.setCreate_name("Connector");
|
||||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||||
if ("Y".equals(connectorDto.getFinished())) {
|
if ("Y".equals(connectorDto.getFinished())) {
|
||||||
JSONObject jsonObject = new JSONObject();
|
jobName = connectorDto.getJobname();
|
||||||
jsonObject.put("cJobName",connectorDto.getJobname());
|
}
|
||||||
try {
|
}
|
||||||
sortingService.applyFinishJobName(jsonObject);
|
if (StrUtil.isNotEmpty(jobName)) {
|
||||||
}catch (Exception e){
|
JSONObject jsonObject = new JSONObject();
|
||||||
log.info("wms反馈sorting->JobName完成,失败{}",e.getMessage());
|
jsonObject.put("cJobName", jobName);
|
||||||
}
|
try {
|
||||||
|
sortingService.applyFinishJobName(jsonObject);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info("wms反馈sorting->JobName完成,失败{}", e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -40,4 +40,6 @@ public class OrderMater {
|
|||||||
* 客户编码
|
* 客户编码
|
||||||
*/
|
*/
|
||||||
public String custom;
|
public String custom;
|
||||||
|
|
||||||
|
public String create_time;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,8 +110,14 @@ public class HandheldServiceImpl implements HandheldService {
|
|||||||
if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!");
|
if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!");
|
||||||
MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle);
|
MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle);
|
||||||
if (ObjectUtil.isEmpty(mdBaseVehicle))
|
if (ObjectUtil.isEmpty(mdBaseVehicle))
|
||||||
throw new BadRequestException("载具不存在或载具号与点位不匹配!");
|
throw new BadRequestException("载具不存在!");
|
||||||
AbstractTask connectorTask = taskFactory.getTask("RACKTask");
|
AbstractTask connectorTask = taskFactory.getTask("RACKTask");
|
||||||
|
SchBasePoint one = iSchBasePointService.getOne(Wrappers.lambdaQuery(SchBasePoint.class)
|
||||||
|
.eq(SchBasePoint::getVehicle_code, vehicle)
|
||||||
|
.ne(SchBasePoint::getPoint_code, device_code));
|
||||||
|
if (ObjectUtil.isNotEmpty(one)) {
|
||||||
|
throw new BadRequestException("载具号已存在别的点位,请确认再下发");
|
||||||
|
}
|
||||||
// 准备参数:设备编码
|
// 准备参数:设备编码
|
||||||
JSONObject jo = new JSONObject();
|
JSONObject jo = new JSONObject();
|
||||||
jo.put("device_code", device_code);
|
jo.put("device_code", device_code);
|
||||||
@@ -245,12 +251,14 @@ public class HandheldServiceImpl implements HandheldService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void cageBlankingTask(JSONObject param) {
|
public void cageBlankingTask(JSONObject param) {
|
||||||
Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_code")},
|
Assert.noNullElements(new Object[]{param.getString("device_code"), param.getString("vehicle_code")},
|
||||||
"当前点位或目的地不能为空!");
|
"当前点位或载具号不能为空!");
|
||||||
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(param.getString("device_code"));
|
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(param.getString("device_code"));
|
||||||
/*if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("设备点位不存在!");
|
SchBasePoint one = iSchBasePointService.getOne(Wrappers.lambdaQuery(SchBasePoint.class)
|
||||||
if (schBasePoint.getIs_lock()) {
|
.eq(SchBasePoint::getVehicle_code, param.getString("vehicle_code"))
|
||||||
throw new BadRequestException("该点位正在执行任务,请稍后再试!");
|
.ne(SchBasePoint::getPoint_code, param.getString("device_code")));
|
||||||
}*/
|
if (ObjectUtil.isNotEmpty(one)) {
|
||||||
|
throw new BadRequestException("载具号已存在别的点位,请确认再下发");
|
||||||
|
}
|
||||||
String region_code = param.getString("region_code");
|
String region_code = param.getString("region_code");
|
||||||
String device_code = param.getString("device_code");
|
String device_code = param.getString("device_code");
|
||||||
String vehicle_code = param.getString("vehicle_code");
|
String vehicle_code = param.getString("vehicle_code");
|
||||||
@@ -405,7 +413,8 @@ public class HandheldServiceImpl implements HandheldService {
|
|||||||
throw new BadRequestException("物料下料数量不能为空!");
|
throw new BadRequestException("物料下料数量不能为空!");
|
||||||
}
|
}
|
||||||
MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle_code);
|
MdBaseVehicle mdBaseVehicle = iMdBaseVehicleService.selectByVehicleCode(vehicle_code);
|
||||||
if(mdBaseVehicle.getVehicle_type().equals(VehicleTypeEnum.TRAY.getVehicleCode())) throw new BadRequestException("钢托盘不能存放加工区!");
|
if (mdBaseVehicle.getVehicle_type().equals(VehicleTypeEnum.TRAY.getVehicleCode()))
|
||||||
|
throw new BadRequestException("钢托盘不能存放加工区!");
|
||||||
param.put("region_code", region_code);
|
param.put("region_code", region_code);
|
||||||
jo.put("device_code", device_code);
|
jo.put("device_code", device_code);
|
||||||
jo.put("config_code", "ProcessingSMTTask");
|
jo.put("config_code", "ProcessingSMTTask");
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@@ -35,6 +36,9 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -53,6 +57,8 @@ public class SortingServiceImpl implements SortingService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService iSchBaseVehiclematerialgroupService;
|
||||||
|
|
||||||
|
private static final DateTimeFormatter ISO_8601_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -61,133 +67,136 @@ public class SortingServiceImpl implements SortingService {
|
|||||||
try {
|
try {
|
||||||
Assert.noNullElements(new Object[]{jsonObject, jsonObject.getString("pointCode"), jsonObject.getString("vehicle_code")
|
Assert.noNullElements(new Object[]{jsonObject, jsonObject.getString("pointCode"), jsonObject.getString("vehicle_code")
|
||||||
, jsonObject.getString("task_type"), jsonObject.getString("is_empty")}, "请求参数不能为空");
|
, jsonObject.getString("task_type"), jsonObject.getString("is_empty")}, "请求参数不能为空");
|
||||||
//任务号
|
|
||||||
String task_code = jsonObject.getString("task_code");
|
|
||||||
String pointCode = jsonObject.getString("pointCode");
|
|
||||||
//任务类型:1.运送托盘到sorting;2.从sorting运送托盘给线边库
|
|
||||||
String task_type = jsonObject.getString("task_type");
|
|
||||||
//是否空托盘; 1.是 0.否
|
|
||||||
String is_empty = jsonObject.getString("is_empty");
|
|
||||||
String task_time = jsonObject.getString("taskTime");
|
|
||||||
//冲床工作号
|
|
||||||
String jobname = jsonObject.getString("jobname");
|
|
||||||
//载具托盘号
|
|
||||||
String vehicle_code = jsonObject.getString("vehicle_code");
|
|
||||||
String vehicle_type = jsonObject.getString("vehicle_type");
|
|
||||||
//托盘上的堆垛信息
|
|
||||||
JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail"));
|
JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail"));
|
||||||
JSONArray jsonArray1 = JSONUtil.parseArray(jsonObject.get("pallet_detail2"));
|
if (StrUtil.isNotEmpty(jsonObject.getString("is_rawdata")) && "1".equals(jsonObject.getString("is_rawdata"))) {
|
||||||
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
|
createMaterial(jsonArray, jsonObject.getString("vehicle_code"));
|
||||||
if (ObjectUtil.isEmpty(schBasePoint)) {
|
} else {
|
||||||
log.info("点位编码不存在:{}", pointCode);
|
//任务号
|
||||||
return MapOf.of("status", 400, "msg", "点位编码不存在!");
|
String task_code = jsonObject.getString("task_code");
|
||||||
}
|
String pointCode = jsonObject.getString("pointCode");
|
||||||
if (schBasePoint.getIs_lock()) {
|
//任务类型:1.运送托盘到sorting;2.从sorting运送托盘给线边库
|
||||||
log.info("该点位已创建任务:{}", pointCode);
|
String task_type = jsonObject.getString("task_type");
|
||||||
return MapOf.of("status", 400, "msg", "该点位已创建任务!");
|
//是否空托盘; 1.是 0.否
|
||||||
}
|
String is_empty = jsonObject.getString("is_empty");
|
||||||
JSONObject taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
String task_time = jsonObject.getString("taskTime");
|
||||||
, "sorting_" + IdUtil.getStringId(), "ext_data", jsonObject, "vehicle_code", vehicle_code, "ext_data", jsonObject));
|
//冲床工作号
|
||||||
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
|
String jobname = jsonObject.getString("jobname");
|
||||||
if ("0".equals(vehicle_type)) {
|
//载具托盘号
|
||||||
// TODO:呼叫空托
|
String vehicle_code = jsonObject.getString("vehicle_code");
|
||||||
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
String vehicle_type = jsonObject.getString("vehicle_type");
|
||||||
taskParam.put("vehicle_type", "G01");
|
//托盘上的堆垛信息
|
||||||
taskParam.put("config_code", "SortingCNTTask");
|
JSONArray jsonArray1 = JSONUtil.parseArray(jsonObject.get("pallet_detail2"));
|
||||||
connectorTask.apply(taskParam);
|
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
|
||||||
//TODO:叫料
|
if (ObjectUtil.isEmpty(schBasePoint)) {
|
||||||
} else if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
log.info("点位编码不存在:{}", pointCode);
|
||||||
if (StrUtil.isEmpty(vehicle_code)) {
|
return MapOf.of("status", 400, "msg", "点位编码不存在!");
|
||||||
log.info("载具号未传递");
|
|
||||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
|
||||||
}
|
|
||||||
taskParam.put("config_code", "SortingCMTTask");
|
|
||||||
connectorTask.apply(taskParam);
|
|
||||||
//TODO:将空托盘放到线边库
|
|
||||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
|
||||||
if (StrUtil.isEmpty(vehicle_code)) {
|
|
||||||
log.info("载具号未传递");
|
|
||||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
|
||||||
}
|
|
||||||
taskParam.put("config_code", "SortingSNTTask");
|
|
||||||
connectorTask.apply(taskParam);
|
|
||||||
//TODO:将满料放到线边库
|
|
||||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
|
||||||
if (StrUtil.isEmpty(vehicle_code)) {
|
|
||||||
log.info("载具号未传递");
|
|
||||||
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
|
||||||
}
|
|
||||||
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
|
||||||
log.info("物料信息为空!");
|
|
||||||
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
|
||||||
}
|
|
||||||
taskParam.put("config_code", "SortingSMTTask");
|
|
||||||
connectorTask.apply(taskParam);
|
|
||||||
}
|
}
|
||||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
if (schBasePoint.getIs_lock()) {
|
||||||
.set("is_lock", true)
|
log.info("该点位已创建任务:{}", pointCode);
|
||||||
.set("remark", task_code)
|
return MapOf.of("status", 400, "msg", "该点位已创建任务!");
|
||||||
.eq("point_code", pointCode));
|
}
|
||||||
} else if ("1".equals(vehicle_type)) {
|
JSONObject taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
||||||
//TODO:呼叫两个空笼框
|
, "sorting_" + IdUtil.getStringId(), "ext_data", jsonObject, "vehicle_code", vehicle_code, "ext_data", jsonObject));
|
||||||
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
|
||||||
taskParam.put("device_code", pointCode + "_01");
|
if ("0".equals(vehicle_type)) {
|
||||||
taskParam.put("task_seq", "2");
|
// TODO:呼叫空托
|
||||||
taskParam.put("config_code", "SortingTwoCNTTask");
|
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||||
taskParam.put("task_code", task_code + "A");
|
taskParam.put("vehicle_type", "G01");
|
||||||
connectorTask.apply(taskParam);
|
taskParam.put("config_code", "SortingCNTTask");
|
||||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
connectorTask.apply(taskParam);
|
||||||
.set("is_lock", true)
|
//TODO:叫料
|
||||||
.set("remark", task_code)
|
} else if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||||
.eq("point_code", pointCode + "_01"));
|
if (StrUtil.isEmpty(vehicle_code)) {
|
||||||
taskParam.put("device_code", pointCode + "_02");
|
log.info("载具号未传递");
|
||||||
taskParam.put("task_seq", "1");
|
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||||
taskParam.put("task_code", task_code + "B");
|
}
|
||||||
connectorTask.apply(taskParam);
|
taskParam.put("config_code", "SortingCMTTask");
|
||||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
connectorTask.apply(taskParam);
|
||||||
.set("is_lock", true)
|
//TODO:将空托盘放到线边库
|
||||||
.set("remark", task_code)
|
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||||
.eq("point_code", pointCode + "_02"));
|
if (StrUtil.isEmpty(vehicle_code)) {
|
||||||
//TODO:将两个笼框放到线边库
|
log.info("载具号未传递");
|
||||||
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||||
if (StrUtil.isEmpty(jsonObject.getString("vehicle_code2"))) {
|
}
|
||||||
log.info("第二个笼框载具号未传递");
|
taskParam.put("config_code", "SortingSNTTask");
|
||||||
return MapOf.of("status", 400, "msg", "第二个笼框载具号未传递!");
|
connectorTask.apply(taskParam);
|
||||||
|
//TODO:将满料放到线边库
|
||||||
|
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||||
|
if (StrUtil.isEmpty(vehicle_code)) {
|
||||||
|
log.info("载具号未传递");
|
||||||
|
return MapOf.of("status", 400, "msg", "载具号未传递!");
|
||||||
|
}
|
||||||
|
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
||||||
|
log.info("物料信息为空!");
|
||||||
|
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
||||||
|
}
|
||||||
|
taskParam.put("config_code", "SortingSMTTask");
|
||||||
|
connectorTask.apply(taskParam);
|
||||||
}
|
}
|
||||||
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
|
||||||
log.info("物料信息为空!");
|
|
||||||
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
|
||||||
}
|
|
||||||
if (CollUtil.isEmpty(jsonArray1) || jsonArray1.size() < 1) {
|
|
||||||
log.info("第二个物料信息为空!");
|
|
||||||
return MapOf.of("status", 400, "msg", "第二个物料信息为空!");
|
|
||||||
}
|
|
||||||
taskParam.put("config_code", "SortingSMTTask");
|
|
||||||
taskParam.put("vehicle_code", vehicle_code);
|
|
||||||
taskParam.put("task_seq", "1");
|
|
||||||
taskParam.put("device_code", pointCode + "_01");
|
|
||||||
taskParam.put("task_code", task_code + "A");
|
|
||||||
connectorTask.apply(taskParam);
|
|
||||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
.set("is_lock", true)
|
.set("is_lock", true)
|
||||||
.set("remark", task_code)
|
.set("remark", task_code)
|
||||||
.eq("point_code", pointCode + "_01"));
|
.eq("point_code", pointCode));
|
||||||
jsonObject.put("pallet_detail",jsonArray1);
|
} else if ("1".equals(vehicle_type)) {
|
||||||
taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
//TODO:呼叫两个空笼框
|
||||||
, "sorting_" + IdUtil.getStringId(), "ext_data", jsonObject, "vehicle_code", vehicle_code, "ext_data", jsonObject));
|
if (SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)) {
|
||||||
taskParam.put("config_code", "SortingSMTTask");
|
taskParam.put("device_code", pointCode + "_01");
|
||||||
taskParam.put("task_seq", "2");
|
taskParam.put("task_seq", "2");
|
||||||
taskParam.put("vehicle_code", jsonObject.getString("vehicle_code2"));
|
taskParam.put("config_code", "SortingTwoCNTTask");
|
||||||
taskParam.put("device_code", pointCode + "_02");
|
taskParam.put("task_code", task_code + "A");
|
||||||
taskParam.put("task_code", task_code + "B");
|
connectorTask.apply(taskParam);
|
||||||
connectorTask.apply(taskParam);
|
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
.set("is_lock", true)
|
||||||
.set("is_lock", true)
|
.set("remark", task_code)
|
||||||
.set("remark", task_code)
|
.eq("point_code", pointCode + "_01"));
|
||||||
.eq("point_code", pointCode + "_02"));
|
taskParam.put("device_code", pointCode + "_02");
|
||||||
|
taskParam.put("task_seq", "1");
|
||||||
|
taskParam.put("task_code", task_code + "B");
|
||||||
|
connectorTask.apply(taskParam);
|
||||||
|
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("is_lock", true)
|
||||||
|
.set("remark", task_code)
|
||||||
|
.eq("point_code", pointCode + "_02"));
|
||||||
|
//TODO:将两个笼框放到线边库
|
||||||
|
} else if (SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)) {
|
||||||
|
if (StrUtil.isEmpty(jsonObject.getString("vehicle_code2"))) {
|
||||||
|
log.info("第二个笼框载具号未传递");
|
||||||
|
return MapOf.of("status", 400, "msg", "第二个笼框载具号未传递!");
|
||||||
|
}
|
||||||
|
if (CollUtil.isEmpty(jsonArray) || jsonArray.size() < 1) {
|
||||||
|
log.info("物料信息为空!");
|
||||||
|
return MapOf.of("status", 400, "msg", "物料信息为空!");
|
||||||
|
}
|
||||||
|
if (CollUtil.isEmpty(jsonArray1) || jsonArray1.size() < 1) {
|
||||||
|
log.info("第二个物料信息为空!");
|
||||||
|
return MapOf.of("status", 400, "msg", "第二个物料信息为空!");
|
||||||
|
}
|
||||||
|
taskParam.put("config_code", "SortingSMTTask");
|
||||||
|
taskParam.put("vehicle_code", vehicle_code);
|
||||||
|
taskParam.put("task_seq", "1");
|
||||||
|
taskParam.put("device_code", pointCode + "_01");
|
||||||
|
taskParam.put("task_code", task_code + "A");
|
||||||
|
connectorTask.apply(taskParam);
|
||||||
|
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("is_lock", true)
|
||||||
|
.set("remark", task_code)
|
||||||
|
.eq("point_code", pointCode + "_01"));
|
||||||
|
jsonObject.put("pallet_detail", jsonArray1);
|
||||||
|
taskParam = new JSONObject(MapOf.of("task_code", task_code, "job_name", jobname, "device_code", pointCode, "requestNo"
|
||||||
|
, "sorting_" + IdUtil.getStringId(), "ext_data", jsonObject, "vehicle_code", vehicle_code, "ext_data", jsonObject));
|
||||||
|
taskParam.put("config_code", "SortingSMTTask");
|
||||||
|
taskParam.put("task_seq", "2");
|
||||||
|
taskParam.put("vehicle_code", jsonObject.getString("vehicle_code2"));
|
||||||
|
taskParam.put("device_code", pointCode + "_02");
|
||||||
|
taskParam.put("task_code", task_code + "B");
|
||||||
|
connectorTask.apply(taskParam);
|
||||||
|
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
|
||||||
|
.set("is_lock", true)
|
||||||
|
.set("remark", task_code)
|
||||||
|
.eq("point_code", pointCode + "_02"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return MapOf.of("status", 200, "msg", "sucess");
|
return MapOf.of("status", 200, "msg", "sucess");
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
log.info("sorting下发任务失败:{}", ex.getMessage());
|
log.info("sorting下发任务失败:{}", ex.getMessage());
|
||||||
@@ -195,17 +204,60 @@ public class SortingServiceImpl implements SortingService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createMaterial(JSONArray jsonArray, String vehicleCode) {
|
||||||
|
iSchBaseVehiclematerialgroupService.remove(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||||
|
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode));
|
||||||
|
for (Object o : jsonArray) {
|
||||||
|
JSONObject jO = (JSONObject) JSONObject.toJSON(o);
|
||||||
|
String workorder = jO.getString("ProductionOrder");
|
||||||
|
String ProductID = jO.getString("ProductID");
|
||||||
|
Integer qty = jO.getInteger("Currentqty");
|
||||||
|
String Jobname = jO.getString("Jobname");
|
||||||
|
String dueDate = jO.getString("DueDate");
|
||||||
|
String region_code = jO.getString("NextOperation");
|
||||||
|
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||||
|
schBaseVehiclematerialgroup.setVehicle_code(vehicleCode);
|
||||||
|
schBaseVehiclematerialgroup.setMaterial_id(ProductID);
|
||||||
|
schBaseVehiclematerialgroup.setMaterial_qty(qty);
|
||||||
|
schBaseVehiclematerialgroup.setRegion_code(region_code);
|
||||||
|
schBaseVehiclematerialgroup.setOrder_code(workorder);
|
||||||
|
schBaseVehiclematerialgroup.setJob_name(Jobname);
|
||||||
|
if (StrUtil.isNotEmpty(dueDate) && isValidISO8601(dueDate)) {
|
||||||
|
dueDate = parseDate(dueDate);
|
||||||
|
}
|
||||||
|
schBaseVehiclematerialgroup.setDue_date(dueDate);
|
||||||
|
schBaseVehiclematerialgroup.setCreate_name("Sorting");
|
||||||
|
schBaseVehiclematerialgroup.setExtend(JSON.toJSONString(jO));
|
||||||
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String parseDate(String isoString) {
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||||
|
ZonedDateTime zonedDateTime = ZonedDateTime.parse(isoString);
|
||||||
|
return formatter.format(zonedDateTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isValidISO8601(String dateString) {
|
||||||
|
try {
|
||||||
|
ZonedDateTime.parse(dateString, ISO_8601_FORMATTER);
|
||||||
|
return true;
|
||||||
|
} catch (DateTimeParseException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ConnectorDto> getStructList(String jobName) {
|
public List<ConnectorDto> getStructList(String jobName) {
|
||||||
log.info("sorting查询组盘请求参数数据:{}", jobName);
|
log.info("sorting查询组盘请求参数数据:{}", jobName);
|
||||||
List<SchBaseVehiclematerialgroup> list = iSchBaseVehiclematerialgroupService.list(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
List<SchBaseVehiclematerialgroup> list = iSchBaseVehiclematerialgroupService.list(Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||||
.eq(SchBaseVehiclematerialgroup::getJob_name, jobName)
|
.eq(SchBaseVehiclematerialgroup::getJob_name, jobName)
|
||||||
.eq(SchBaseVehiclematerialgroup::getCreate_name,"Connector"));
|
.eq(SchBaseVehiclematerialgroup::getCreate_name, "Connector"));
|
||||||
List<ConnectorDto> connectors = new ArrayList<>();
|
List<ConnectorDto> connectors = new ArrayList<>();
|
||||||
for (SchBaseVehiclematerialgroup schBaseVehiclematerialgroup : list) {
|
for (SchBaseVehiclematerialgroup schBaseVehiclematerialgroup : list) {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
ConnectorDto connectorDto = gson.fromJson(schBaseVehiclematerialgroup.getExtend(), ConnectorDto.class);
|
ConnectorDto connectorDto = gson.fromJson(schBaseVehiclematerialgroup.getExtend(), ConnectorDto.class);
|
||||||
connectorDto.setDueDate(StrUtil.isNotEmpty(connectorDto.getDueDate()) ? connectorDto.getDueDate() : DateUtil.now() );
|
connectorDto.setDueDate(StrUtil.isNotEmpty(connectorDto.getDueDate()) ? connectorDto.getDueDate() : DateUtil.now());
|
||||||
connectorDto.setNextOperation(StrUtil.isNotEmpty(connectorDto.getNextOperation()) ? connectorDto.getNextOperation() : RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code());
|
connectorDto.setNextOperation(StrUtil.isNotEmpty(connectorDto.getNextOperation()) ? connectorDto.getNextOperation() : RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code());
|
||||||
connectors.add(connectorDto);
|
connectors.add(connectorDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,8 @@
|
|||||||
sch_base_vehiclematerialgroup.region_code,
|
sch_base_vehiclematerialgroup.region_code,
|
||||||
sch_base_vehiclematerialgroup.order_code,
|
sch_base_vehiclematerialgroup.order_code,
|
||||||
sch_base_vehiclematerialgroup.due_date,
|
sch_base_vehiclematerialgroup.due_date,
|
||||||
sch_base_vehiclematerialgroup.has_work
|
sch_base_vehiclematerialgroup.has_work,
|
||||||
|
sch_base_vehiclematerialgroup.create_time
|
||||||
FROM
|
FROM
|
||||||
sch_base_point
|
sch_base_point
|
||||||
inner JOIN sch_base_vehiclematerialgroup ON sch_base_point.vehicle_code =
|
inner JOIN sch_base_vehiclematerialgroup ON sch_base_point.vehicle_code =
|
||||||
@@ -44,8 +45,16 @@
|
|||||||
<if test="due_date != null and due_date != ''">
|
<if test="due_date != null and due_date != ''">
|
||||||
and #{due_date} > sch_base_vehiclematerialgroup.due_date
|
and #{due_date} > sch_base_vehiclematerialgroup.due_date
|
||||||
</if>
|
</if>
|
||||||
AND sch_base_vehiclematerialgroup.region_code = #{region_code}
|
<if test="region_code != null and region_code != ''">
|
||||||
|
AND sch_base_vehiclematerialgroup.region_code = #{region_code}
|
||||||
|
</if>
|
||||||
|
<if test="due_date == null">
|
||||||
|
and sch_base_vehiclematerialgroup.due_date IS NULL
|
||||||
|
</if>
|
||||||
|
<if test="region_code == null">
|
||||||
|
AND sch_base_vehiclematerialgroup.region_code IS NULL
|
||||||
|
AND sch_base_vehiclematerialgroup.create_name = 'Sorting'
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectByRegionCode" resultType="java.lang.String">
|
<select id="selectByRegionCode" resultType="java.lang.String">
|
||||||
|
|||||||
@@ -389,13 +389,13 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SchBasePoint selectByGroundPoint(String region_code, String pointStatus, String vehicle_type, int seq,int point_type) {
|
public SchBasePoint selectByGroundPoint(String region_code, String pointStatus, String vehicle_type, int seq, int point_type) {
|
||||||
List<SchBasePoint> schBasePoints = pointMapper.selectList(Wrappers.lambdaQuery(SchBasePoint.class)
|
List<SchBasePoint> schBasePoints = pointMapper.selectList(Wrappers.lambdaQuery(SchBasePoint.class)
|
||||||
.eq(SchBasePoint::getIs_lock, false)
|
.eq(SchBasePoint::getIs_lock, false)
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
.eq(SchBasePoint::getPoint_status, pointStatus)
|
.eq(SchBasePoint::getPoint_status, pointStatus)
|
||||||
.eq(!vehicle_type.equals("G01"), SchBasePoint::getPoint_type, "1")
|
.eq(!vehicle_type.equals("G01"), SchBasePoint::getPoint_type, "1")
|
||||||
.eq(vehicle_type.equals("G01"), SchBasePoint::getPoint_type,point_type )
|
.eq(vehicle_type.equals("G01"), SchBasePoint::getPoint_type, point_type)
|
||||||
.eq(StrUtil.isNotBlank(vehicle_type), SchBasePoint::getCan_vehicle_type, vehicle_type)
|
.eq(StrUtil.isNotBlank(vehicle_type), SchBasePoint::getCan_vehicle_type, vehicle_type)
|
||||||
.isNull(seq == 2, SchBasePoint::getVehicles)
|
.isNull(seq == 2, SchBasePoint::getVehicles)
|
||||||
.isNull(seq == 1, SchBasePoint::getVehicle_code)
|
.isNull(seq == 1, SchBasePoint::getVehicle_code)
|
||||||
@@ -511,16 +511,37 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
if (dueDate != null && StringUtils.isNotEmpty(dueDate.getValue())) {
|
if (dueDate != null && StringUtils.isNotEmpty(dueDate.getValue())) {
|
||||||
s = DateUtil.offsetDay(new Date(), Integer.parseInt(dueDate.getValue())).toDateStr();
|
s = DateUtil.offsetDay(new Date(), Integer.parseInt(dueDate.getValue())).toDateStr();
|
||||||
}
|
}
|
||||||
|
String last_regionCode = null;
|
||||||
|
if ("1".equals(regionCode)) {
|
||||||
|
last_regionCode = regionCode;
|
||||||
|
regionCode = null;
|
||||||
|
s = null;
|
||||||
|
}
|
||||||
|
List<OrderMater> collect = null;
|
||||||
List<OrderMater> structList = pointMapper.getStructList(regionCode, null, s);
|
List<OrderMater> structList = pointMapper.getStructList(regionCode, null, s);
|
||||||
List<OrderMater> collect = structList.stream().collect(Collectors.groupingBy(
|
if ("1".equals(last_regionCode)) {
|
||||||
OrderMater::getVehicle_code,
|
collect = structList.stream().collect(Collectors.groupingBy(
|
||||||
Collectors.collectingAndThen(
|
OrderMater::getVehicle_code,
|
||||||
Collectors.maxBy(Comparator.comparing(OrderMater::getDue_date)),
|
Collectors.collectingAndThen(
|
||||||
Optional::get
|
Collectors.maxBy(Comparator.comparing(OrderMater::getCreate_time)),
|
||||||
)
|
Optional::get
|
||||||
)).values()
|
)
|
||||||
.stream()
|
)).values()
|
||||||
.collect(Collectors.toList());
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
collect = collect.stream().sorted(Comparator.comparing(OrderMater::getVehicle_code)).collect(Collectors.toList());
|
||||||
|
} else {
|
||||||
|
collect = structList.stream().collect(Collectors.groupingBy(
|
||||||
|
OrderMater::getVehicle_code,
|
||||||
|
Collectors.collectingAndThen(
|
||||||
|
Collectors.maxBy(Comparator.comparing(OrderMater::getDue_date)),
|
||||||
|
Optional::get
|
||||||
|
)
|
||||||
|
)).values()
|
||||||
|
.stream()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
collect = collect.stream().sorted(Comparator.comparingLong(order -> getTime(order.getDue_date()))).collect(Collectors.toList());
|
||||||
|
}
|
||||||
return collect;
|
return collect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,10 +66,11 @@ public class ConnectorUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 新的请求方式:对象中包含数组
|
* 新的请求方式:对象中包含数组
|
||||||
|
*
|
||||||
* @param api
|
* @param api
|
||||||
* @param object
|
* @param object
|
||||||
* @return
|
|
||||||
* @param <T>
|
* @param <T>
|
||||||
|
* @return
|
||||||
*/
|
*/
|
||||||
public static <T> AcsResponse notifyConnector2(String api, T object) {
|
public static <T> AcsResponse notifyConnector2(String api, T object) {
|
||||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||||
@@ -90,7 +91,7 @@ public class ConnectorUtil {
|
|||||||
return AcsResponse.requestRefuse("未连接Connector!");
|
return AcsResponse.requestRefuse("未连接Connector!");
|
||||||
}
|
}
|
||||||
String url = connectorUrl + api;
|
String url = connectorUrl + api;
|
||||||
log.info("反馈connector到达取货点的请求参数参数为:{},url:{}", JSON.toJSONString(object),url);
|
log.info("反馈connector到达取货点的请求参数参数为:{},url:{}", JSON.toJSONString(object), url);
|
||||||
AcsResponse resultForAcs;
|
AcsResponse resultForAcs;
|
||||||
try {
|
try {
|
||||||
String resultMsg = HttpRequest.post(url)
|
String resultMsg = HttpRequest.post(url)
|
||||||
@@ -107,7 +108,8 @@ public class ConnectorUtil {
|
|||||||
}
|
}
|
||||||
return resultForAcs;
|
return resultForAcs;
|
||||||
}
|
}
|
||||||
public static <T> AcsResponse notifyEextSystem(String api, T object,String urlConfig) {
|
|
||||||
|
public static <T> AcsResponse notifyEextSystem(String api, T object, String urlConfig) {
|
||||||
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||||
//判断是否连接ACS系统
|
//判断是否连接ACS系统
|
||||||
Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.IS_CONNECT_CONNECTOR);
|
Param isConnectConnector = sysParamService.findByCode(GeneralDefinition.IS_CONNECT_CONNECTOR);
|
||||||
@@ -126,7 +128,7 @@ public class ConnectorUtil {
|
|||||||
return AcsResponse.requestRefuse("未连接ACS!");
|
return AcsResponse.requestRefuse("未连接ACS!");
|
||||||
}
|
}
|
||||||
String url = connectorUrl + api;
|
String url = connectorUrl + api;
|
||||||
log.info("反馈sortingAGV状态:{},url:{}", JSON.toJSONString(object),url);
|
log.info("反馈sortingAGV状态:{},url:{}", JSON.toJSONString(object), url);
|
||||||
AcsResponse resultForAcs;
|
AcsResponse resultForAcs;
|
||||||
try {
|
try {
|
||||||
String resultMsg = HttpRequest.post(url)
|
String resultMsg = HttpRequest.post(url)
|
||||||
@@ -175,7 +177,7 @@ public class ConnectorUtil {
|
|||||||
return new JSONObject(map);
|
return new JSONObject(map);
|
||||||
}
|
}
|
||||||
String url = connectorUrl + api;
|
String url = connectorUrl + api;
|
||||||
log.info("向connector申请物料下道工序和交期时间:{},接口路径:{}", JSON.toJSONString(object),url);
|
log.info("向connector申请物料下道工序和交期时间:{},接口路径:{}", JSON.toJSONString(object), url);
|
||||||
AcsResponse resultForAcs;
|
AcsResponse resultForAcs;
|
||||||
try {
|
try {
|
||||||
String resultMsg = HttpRequest.post(url)
|
String resultMsg = HttpRequest.post(url)
|
||||||
|
|||||||
Reference in New Issue
Block a user