opt: 优化connector交互逻辑
This commit is contained in:
@@ -42,6 +42,7 @@ import org.nl.config.SpringContextHolder;
|
|||||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NDC单工位AGV
|
* NDC单工位AGV
|
||||||
@@ -396,8 +397,12 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {
|
||||||
try {
|
try {
|
||||||
StandardOrdinarySiteDeviceDriver standar = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
StandardOrdinarySiteDeviceDriver standar = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver();
|
||||||
boolean is_empty = (boolean)standar.getDevice().getExtraValue().get("is_empty");
|
Map<String, Object> extraValue = standar.getDevice().getExtraValue();
|
||||||
data = feedBackStatus(data, index, 2, inst, task,1,false);
|
boolean is_empty = false;
|
||||||
|
if(ObjectUtil.isNotEmpty(extraValue.get("is_empty"))){
|
||||||
|
is_empty = (boolean)extraValue.get("is_empty");
|
||||||
|
}
|
||||||
|
data = feedBackStatus(data, index, 4, inst, task,1,is_empty);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("放货完成反馈AGV状态失败:{},", e.getMessage());
|
log.info("放货完成反馈AGV状态失败:{},", e.getMessage());
|
||||||
}
|
}
|
||||||
@@ -482,7 +487,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
jo.put("task_code", inst.getTask_code());
|
jo.put("task_code", inst.getTask_code());
|
||||||
jo.put("is_empty", is_empty);
|
jo.put("is_empty", is_empty);
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
HttpResponse httpResponse = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse httpResponse = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
log.info("指令号:{},phase:{},acs反馈wms结果:{}", inst.getInstruction_code(), phase, httpResponse);
|
log.info("指令号:{},phase:{},acs反馈wms结果:{}", inst.getInstruction_code(), phase, httpResponse);
|
||||||
if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) {
|
if (ObjectUtil.isNotEmpty(httpResponse) && httpResponse.getStatus() == 200) {
|
||||||
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0, 0, 0, 0, 0);
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -427,7 +427,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -464,7 +464,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -499,7 +499,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -529,7 +529,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -550,7 +550,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
jo.put("status", "6");
|
jo.put("status", "6");
|
||||||
jo.put("device_code", this.device_code);
|
jo.put("device_code", this.device_code);
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
if (resp.getStatus() == 200) {
|
if (resp.getStatus() == 200) {
|
||||||
writing("to_di_height", 0);
|
writing("to_di_height", 0);
|
||||||
writing("to_di_low", 0);
|
writing("to_di_low", 0);
|
||||||
@@ -563,7 +563,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
jo.put("status", "7");
|
jo.put("status", "7");
|
||||||
jo.put("device_code", this.device_code);
|
jo.put("device_code", this.device_code);
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
if (resp.getStatus() == 200) {
|
if (resp.getStatus() == 200) {
|
||||||
writing("to_di_low", 0);
|
writing("to_di_low", 0);
|
||||||
} else {
|
} else {
|
||||||
@@ -593,7 +593,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
.method("feedAgvTaskStatus")
|
.method("feedAgvTaskStatus")
|
||||||
.build();
|
.build();
|
||||||
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
luceneExecuteLogService.deviceExecuteLog(reqlogDto);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
LuceneLogDto resplogDto = LuceneLogDto.builder()
|
||||||
.device_code(device_code)
|
.device_code(device_code)
|
||||||
.content("返回参数:"+resp.body())
|
.content("返回参数:"+resp.body())
|
||||||
@@ -614,7 +614,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
jo.put("status", "6");
|
jo.put("status", "6");
|
||||||
jo.put("device_code", "A4");
|
jo.put("device_code", "A4");
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
if (resp.getStatus() == 200) {
|
if (resp.getStatus() == 200) {
|
||||||
writing("to_di_height", 0);
|
writing("to_di_height", 0);
|
||||||
writing("to_di_low", 0);
|
writing("to_di_low", 0);
|
||||||
@@ -628,7 +628,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device
|
|||||||
jo.put("status", "7");
|
jo.put("status", "7");
|
||||||
jo.put("device_code", "A4");
|
jo.put("device_code", "A4");
|
||||||
ja.add(jo);
|
ja.add(jo);
|
||||||
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(ja);
|
HttpResponse resp = acsToWmsService.feedAgvTaskStatus(jo);
|
||||||
if (resp.getStatus() == 200) {
|
if (resp.getStatus() == 200) {
|
||||||
writing("to_di_height", 0);
|
writing("to_di_height", 0);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -32,13 +32,11 @@ public class LmsUtil {
|
|||||||
}
|
}
|
||||||
String liKu_wcs_url = paramService.findByCode("wmsurl").getValue();
|
String liKu_wcs_url = paramService.findByCode("wmsurl").getValue();
|
||||||
try {
|
try {
|
||||||
// log.info("请求LMS参数:{}", JSON.toJSONString(requestParam));
|
|
||||||
String body = HttpRequest
|
String body = HttpRequest
|
||||||
.post(liKu_wcs_url + api).setConnectionTimeout(3000)
|
.post(liKu_wcs_url + api).setConnectionTimeout(3000)
|
||||||
.body(JSON.toJSONString(requestParam))
|
.body(JSON.toJSONString(requestParam))
|
||||||
.execute()
|
.execute()
|
||||||
.body();
|
.body();
|
||||||
// log.info("请求LMS参数返回参数:{}", body);
|
|
||||||
return body;
|
return body;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
JSONObject result = new JSONObject();
|
JSONObject result = new JSONObject();
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class AcsToWmsController {
|
|||||||
@PostMapping("/feedAgvTaskStatus")
|
@PostMapping("/feedAgvTaskStatus")
|
||||||
@Log(value = "反馈AGV取放货状态")
|
@Log(value = "反馈AGV取放货状态")
|
||||||
@ApiOperation("反馈AGV取放货状态")
|
@ApiOperation("反馈AGV取放货状态")
|
||||||
public ResponseEntity<Object> feedAgvTaskStatus(@RequestBody JSONArray from) {
|
public ResponseEntity<Object> feedAgvTaskStatus(@RequestBody JSONObject from) {
|
||||||
return new ResponseEntity<>(acstowmsService.feedAgvTaskStatus(from), HttpStatus.OK);
|
return new ResponseEntity<>(acstowmsService.feedAgvTaskStatus(from), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
package org.nl.acs.ext.wms.rest;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaIgnore;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.acs.ext.wms.liKuData.InStoreReportRequest;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "connector")
|
||||||
|
@RequestMapping("/api/iot/agvtask")
|
||||||
|
@Slf4j
|
||||||
|
public class ConnectorController {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@SaIgnore
|
||||||
|
@PostMapping
|
||||||
|
@Log(value = "立库反馈入库任务状态")
|
||||||
|
@ApiOperation("立库反馈入库任务状态")
|
||||||
|
public Map inStoreReport(@RequestBody JSONObject requestParam) throws Exception {
|
||||||
|
Map map = new HashMap();
|
||||||
|
String msg = "[\n" +
|
||||||
|
"{\n" +
|
||||||
|
"\"ID\":\"C202404281545\",\n" +
|
||||||
|
"\"Jobname\":\"N319001\",\n" +
|
||||||
|
"\"PalletID\":\"N319001_1_3\",\n" +
|
||||||
|
"\"ProductID\":\"A7E44207473001_0B\",\n" +
|
||||||
|
"\"Currentqty\":\"36\",\n" +
|
||||||
|
"\"SizeX\":\"140.98\",\n" +
|
||||||
|
"\"SizeY\":\"642\",\n" +
|
||||||
|
"\"Angle\":\"90\",\n" +
|
||||||
|
"\"Thickness\":\"2\",\n" +
|
||||||
|
"\"PositionX\":\"-227.379\",\n" +
|
||||||
|
"\"PositionY\":\"60\",\n" +
|
||||||
|
"\"vehicle_code\":\"T0001\", \n" +
|
||||||
|
"\"ProductionOrder\":\"800032285176\",\n" +
|
||||||
|
"\"Finished\": \"Y\",\n" +
|
||||||
|
"\"NextOperation\": \"\",\n" +
|
||||||
|
"\"DueDate\": \"\"\n" +
|
||||||
|
"} \n" +
|
||||||
|
"]";
|
||||||
|
JSONArray jo = JSONArray.parseArray(msg);
|
||||||
|
map.put("status",200);
|
||||||
|
map.put("message","请求成功");
|
||||||
|
map.put("data",jo);
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -111,7 +111,7 @@ public interface AcsToWmsService {
|
|||||||
* @param from
|
* @param from
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
HttpResponse feedAgvTaskStatus(JSONArray from);
|
HttpResponse feedAgvTaskStatus(JSONObject from);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -531,7 +531,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpResponse feedAgvTaskStatus(JSONArray from) {
|
public HttpResponse feedAgvTaskStatus(JSONObject from) {
|
||||||
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue();
|
||||||
|
|
||||||
AddressDto addressDto = addressService.findByCode("feedAgvTaskStatus");
|
AddressDto addressDto = addressService.findByCode("feedAgvTaskStatus");
|
||||||
|
|||||||
@@ -870,7 +870,7 @@ public class TaskServiceImpl extends CommonServiceImpl<TaskMapper, Task> impleme
|
|||||||
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
|
||||||
request.setTask_code(entity.getTask_code());
|
request.setTask_code(entity.getTask_code());
|
||||||
request.setTask_id(entity.getExt_task_id());
|
request.setTask_id(entity.getExt_task_id());
|
||||||
request.setTask_status(entity.getTask_status());
|
request.setTask_status(task.getTask_status());
|
||||||
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
|
request.setRequest_medthod_code(RequestMethodEnum.feedback_task_status.getCode());
|
||||||
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
|
request.setRequest_medthod_name(RequestMethodEnum.feedback_task_status.getName());
|
||||||
boolean flag = false;
|
boolean flag = false;
|
||||||
|
|||||||
@@ -107,4 +107,16 @@ public class AcsToWmsController {
|
|||||||
public ResponseEntity<Object> feedAgvAgain(@RequestBody JSONObject param) {
|
public ResponseEntity<Object> feedAgvAgain(@RequestBody JSONObject param) {
|
||||||
return new ResponseEntity<>(acsToWmsService.feedAgvAgain(param), HttpStatus.OK);
|
return new ResponseEntity<>(acsToWmsService.feedAgvAgain(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/taskStatus")
|
||||||
|
@Log("acs反馈LMS任务状态")
|
||||||
|
@ApiOperation("acs反馈LMS任务状态")
|
||||||
|
@SaIgnore
|
||||||
|
@Deprecated
|
||||||
|
public ResponseEntity<Object> feedTaskStatus(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(acsToWmsService.feedTaskStatus(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,4 +42,11 @@ public interface AcsToWmsService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Object feedAgvAgain(JSONObject param);
|
Object feedAgvAgain(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* acs反馈LMS任务状态
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Object feedTaskStatus(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.cockpit.service.dao.DasDeviceFault;
|
import org.nl.wms.cockpit.service.dao.DasDeviceFault;
|
||||||
import org.nl.wms.cockpit.service.mapper.CockpitMapper;
|
import org.nl.wms.cockpit.service.mapper.CockpitMapper;
|
||||||
|
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||||
|
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||||
import org.nl.wms.database.vehicle.service.IMdBaseVehicleService;
|
import org.nl.wms.database.vehicle.service.IMdBaseVehicleService;
|
||||||
import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle;
|
import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle;
|
||||||
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
import org.nl.wms.ext.acs.service.AcsToWmsService;
|
||||||
@@ -95,6 +97,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private WmsToSortingService sortingService;
|
private WmsToSortingService sortingService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdBaseVehicleService iMdBaseVehicleService;
|
private IMdBaseVehicleService iMdBaseVehicleService;
|
||||||
|
@Autowired
|
||||||
|
private IMdBaseMaterialService iMdBaseMaterialService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化反射方法
|
* 初始化反射方法
|
||||||
@@ -315,27 +319,58 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object feedAgvAgain(JSONObject param) {
|
public Object feedAgvAgain(JSONObject param) {
|
||||||
if(ObjectUtil.isNotEmpty(param)){
|
if (ObjectUtil.isNotEmpty(param)) {
|
||||||
String task_id = param.getString("task_id");
|
String task_id = param.getString("task_id");
|
||||||
String device_code = param.getString("device_code");
|
String device_code = param.getString("device_code");
|
||||||
if(StrUtil.isEmpty(task_id) || StrUtil.isEmpty(device_code)){
|
if (StrUtil.isEmpty(task_id) || StrUtil.isEmpty(device_code)) {
|
||||||
throw new BadRequestException("task_id或device_code为空!");
|
throw new BadRequestException("task_id或device_code为空!");
|
||||||
}
|
}
|
||||||
SchBaseTask schBaseTask = taskService.getById(task_id);
|
SchBaseTask schBaseTask = taskService.getById(task_id);
|
||||||
if(ObjectUtil.isEmpty(schBaseTask)){
|
if (ObjectUtil.isEmpty(schBaseTask)) {
|
||||||
throw new BadRequestException("任务不存在!task_id:" + task_id);
|
throw new BadRequestException("任务不存在!task_id:" + task_id);
|
||||||
}
|
}
|
||||||
if(device_code.equals(schBaseTask.getPoint_code2())) throw new BadRequestException("设备号与任务设备不匹配!");
|
if (device_code.equals(schBaseTask.getPoint_code2())) throw new BadRequestException("设备号与任务设备不匹配!");
|
||||||
//查询点位是否存在
|
//查询点位是否存在
|
||||||
SchBasePoint schBasePoint = pointService.selectByPointCode(device_code);
|
SchBasePoint schBasePoint = pointService.selectByPointCode(device_code);
|
||||||
if(ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("点位不存在!device_code:" + device_code);
|
if (ObjectUtil.isEmpty(schBasePoint)) throw new BadRequestException("点位不存在!device_code:" + device_code);
|
||||||
SchBasePoint schBasePoint1 = pointService.selectByNextWaitPoint(device_code,schBaseTask.getVehicle_code());
|
SchBasePoint schBasePoint1 = pointService.selectByNextWaitPoint(device_code, schBaseTask.getVehicle_code());
|
||||||
if(ObjectUtil.isEmpty(schBasePoint1)) throw new BadRequestException("未查询到可用点位!等待点位:"+device_code);
|
if (ObjectUtil.isEmpty(schBasePoint1)) throw new BadRequestException("未查询到可用点位!等待点位:" + device_code);
|
||||||
return schBasePoint;
|
return schBasePoint;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object feedTaskStatus(JSONObject param) {
|
||||||
|
if(ObjectUtil.isNotEmpty(param)){
|
||||||
|
String task_code = param.getString("task_code");
|
||||||
|
String task_status = param.getString("task_status");
|
||||||
|
if(StrUtil.isEmpty(task_code) || StrUtil.isEmpty(task_status)){
|
||||||
|
throw new BadRequestException("task_code或task_status为空!");
|
||||||
|
}
|
||||||
|
SchBaseTask schBaseTask = taskService.getOne(Wrappers.lambdaQuery(SchBaseTask.class)
|
||||||
|
.eq(SchBaseTask::getTask_code, task_code).in(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode(), TaskStatus.ISSUED.getCode()));
|
||||||
|
if(ObjectUtil.isEmpty(schBaseTask)) throw new BadRequestException("任务不存在!task_code:" + task_code);
|
||||||
|
switch (task_status) {
|
||||||
|
case "1":
|
||||||
|
//执行中
|
||||||
|
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class)
|
||||||
|
.set(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode())
|
||||||
|
.eq(SchBaseTask::getTask_code, task_code));
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
//任务完成
|
||||||
|
AbstractTask connectorTask = taskFactory.getTask(schBaseTask.getConfig_code());
|
||||||
|
connectorTask.forceFinish(schBaseTask.getTask_code());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 放货完成
|
* 放货完成
|
||||||
*
|
*
|
||||||
@@ -372,8 +407,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));
|
||||||
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, task_code)
|
/*taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class).eq(SchBaseTask::getTask_code, task_code)
|
||||||
.set(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));
|
.set(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode()));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -426,35 +461,34 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private void requestPickup(SchBaseTask schBaseTask, String status, String is_connector) {
|
private void requestPickup(SchBaseTask schBaseTask, String status, String is_connector) {
|
||||||
if ("1".equals(is_connector)) {
|
if ("1".equals(is_connector)) {
|
||||||
//反馈connector申请取货
|
//反馈connector申请取货
|
||||||
/*SchBaseTaskconfig schBaseTaskconfig = taskConfigService.selectByConfigCode(schBaseTask.getConfig_code());*/
|
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
// if (GoodsEnum.PICK_UP.getValue().equals(schBaseTaskconfig.getTask_qf_type())) {
|
|
||||||
// json.put("vehicle_code", schBaseTask.getVehicle_code());
|
|
||||||
// json.put("status", status);
|
|
||||||
// json.put("device_code", schBaseTask.getPoint_code2());
|
|
||||||
// json.put("task_code", schBaseTask.getTask_code());
|
|
||||||
// } else if (GoodsEnum.DELIVER_GOODS.getValue().equals(schBaseTaskconfig.getTask_qf_type())) {
|
|
||||||
json.put("vehicle_code", schBaseTask.getVehicle_code());
|
json.put("vehicle_code", schBaseTask.getVehicle_code());
|
||||||
json.put("status", status);
|
json.put("status", status);
|
||||||
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;
|
||||||
while (flag) {
|
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());
|
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class);
|
||||||
List<ConnectorDto> connectorDtos = BeanUtil.copyToList(objects, ConnectorDto.class);
|
for (ConnectorDto connectorDto : connectorDtos) {
|
||||||
for (ConnectorDto connectorDto : connectorDtos) {
|
if (schBaseTask.getVehicle_code().equals(connectorDto.getVehicle_code())) {
|
||||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
//TODO:载具号不同
|
||||||
schBaseVehiclematerialgroup.setVehicle_code(connectorDto.getVehicle_code());
|
|
||||||
schBaseVehiclematerialgroup.setJob_name(connectorDto.getJobname());
|
|
||||||
schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID());
|
|
||||||
schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty());
|
|
||||||
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getProductionOrder());
|
|
||||||
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
|
||||||
}
|
}
|
||||||
// vehiclematerialgroupService.updateByVehicleCode(schBaseTask.getVehicle_code(), acsResponse.getData());
|
MdBaseMaterial mdBaseMaterial = iMdBaseMaterialService.getOne(Wrappers.lambdaQuery(MdBaseMaterial.class)
|
||||||
flag = false;
|
.eq(MdBaseMaterial::getMaterial_code, connectorDto.getProductID()));
|
||||||
|
if (ObjectUtil.isEmpty(mdBaseMaterial)) {
|
||||||
|
//TODO:物料不存在
|
||||||
|
}
|
||||||
|
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||||
|
schBaseVehiclematerialgroup.setVehicle_code(connectorDto.getVehicle_code());
|
||||||
|
schBaseVehiclematerialgroup.setJob_name(connectorDto.getJobname());
|
||||||
|
schBaseVehiclematerialgroup.setMaterial_id(connectorDto.getProductID());
|
||||||
|
schBaseVehiclematerialgroup.setMaterial_qty(connectorDto.getCurrentqty());
|
||||||
|
schBaseVehiclematerialgroup.setRegion_code(connectorDto.getNextOperation());
|
||||||
|
schBaseVehiclematerialgroup.setExtend(connectorDto.toString());
|
||||||
|
schBaseVehiclematerialgroup.setOrder_code(connectorDto.getProductionOrder());
|
||||||
|
iSchBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.common.logging.annotation.Log;
|
import org.nl.common.logging.annotation.Log;
|
||||||
import org.nl.wms.ext.connector.service.ConnectorToWmsService;
|
import org.nl.wms.ext.connector.service.ConnectorToWmsService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@@ -28,9 +30,9 @@ public class ConnectorToWmsController {
|
|||||||
@ApiOperation("connector下发agv任务")
|
@ApiOperation("connector下发agv任务")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
@PostMapping("/wms/task")
|
@PostMapping("/wms/task")
|
||||||
public Object createTaskByConnector(@RequestBody JSONArray jsonArray){
|
public ResponseEntity<Object> createTaskByConnector(@RequestBody JSONArray jsonArray){
|
||||||
Object taskByConnector = connectorService.createTaskByConnector(jsonArray);
|
Object taskByConnector = connectorService.createTaskByConnector(jsonArray);
|
||||||
return taskByConnector;
|
return new ResponseEntity(connectorService.createTaskByConnector(jsonArray), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
|||||||
private TaskFactory taskFactory;
|
private TaskFactory taskFactory;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object createTaskByConnector(JSONArray jsonArray) {
|
public Map createTaskByConnector(JSONArray jsonArray) {
|
||||||
log.info("connector下发agv任务请求参数:{}", jsonArray);
|
log.info("connector下发agv任务请求参数:{}", jsonArray);
|
||||||
Map map = new HashMap();
|
Map map = new HashMap();
|
||||||
com.alibaba.fastjson.JSONArray objects = new com.alibaba.fastjson.JSONArray();
|
com.alibaba.fastjson.JSONArray objects = new com.alibaba.fastjson.JSONArray();
|
||||||
@@ -47,7 +47,7 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
|||||||
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||||
map.put("message", "请求参数为空!");
|
map.put("message", "请求参数为空!");
|
||||||
objects.add(map);
|
objects.add(map);
|
||||||
return objects;
|
return map;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
for (Object jsonObject : jsonArray) {
|
for (Object jsonObject : jsonArray) {
|
||||||
@@ -96,19 +96,21 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
|
|||||||
param.put("remark", remark);
|
param.put("remark", remark);
|
||||||
param.put("ext_data", data);
|
param.put("ext_data", data);
|
||||||
connectorTask.apply(param);
|
connectorTask.apply(param);
|
||||||
/*schBasePoint.setIs_lock(true);
|
schBasePoint.setIs_lock(true);
|
||||||
schBasePointService.updateById(schBasePoint);*/
|
schBasePointService.updateById(schBasePoint);
|
||||||
map1.put("task_code", task_code);
|
map1.put("task_code", task_code);
|
||||||
map1.put("status", HttpStatus.HTTP_OK);
|
map1.put("status", HttpStatus.HTTP_OK);
|
||||||
map1.put("message", "操作成功!");
|
map1.put("message", "操作成功!");
|
||||||
objects.add(map1);
|
objects.add(map1);
|
||||||
}
|
}
|
||||||
|
map.put("status", HttpStatus.HTTP_OK);
|
||||||
|
map.put("message", "操作成功!");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
map.put("status", HttpStatus.HTTP_INTERNAL_ERROR);
|
||||||
map.put("message", e.getMessage());
|
map.put("message", e.getMessage());
|
||||||
objects.add(map);
|
objects.add(map);
|
||||||
return objects;
|
return map;
|
||||||
}
|
}
|
||||||
return objects;
|
return map;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,9 +44,11 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
|||||||
@ApiModelProperty(value = "来源载具编码")
|
@ApiModelProperty(value = "来源载具编码")
|
||||||
private String source_vehicle_code;
|
private String source_vehicle_code;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "点位编码")
|
@ApiModelProperty(value = "点位编码")
|
||||||
private String point_code;
|
private String point_code;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
@ApiModelProperty(value = "点位名称")
|
@ApiModelProperty(value = "点位名称")
|
||||||
private String point_name;
|
private String point_name;
|
||||||
|
|
||||||
@@ -72,7 +74,7 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
|||||||
private BigDecimal material_weight;
|
private BigDecimal material_weight;
|
||||||
|
|
||||||
@ApiModelProperty(value = "搬运工单编码")
|
@ApiModelProperty(value = "搬运工单编码")
|
||||||
private String workorder_code;
|
private String order_code;
|
||||||
|
|
||||||
@ApiModelProperty(value = "组盘次数")
|
@ApiModelProperty(value = "组盘次数")
|
||||||
private Integer group_number;
|
private Integer group_number;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
, po.region_name
|
, po.region_name
|
||||||
FROM sch_base_vehiclematerialgroup vg
|
FROM sch_base_vehiclematerialgroup vg
|
||||||
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
|
LEFT JOIN md_base_material ma ON vg.material_id = ma.material_id
|
||||||
LEFT JOIN sch_base_point po ON po.point_code = vg.point_code
|
LEFT JOIN sch_base_point po ON vg.region_code = po.region_code
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
<if test="query.vehicle_code != null">
|
<if test="query.vehicle_code != null">
|
||||||
AND vg.vehicle_code = #{query.vehicle_code}
|
AND vg.vehicle_code = #{query.vehicle_code}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package org.nl.wms.sch.group.service.impl;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -15,11 +17,14 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.database.material.service.IMdBaseMaterialService;
|
||||||
|
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
|
||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
|
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
|
||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -39,14 +44,38 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
|
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IMdBaseMaterialService iMdBaseMaterialService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Override
|
@Override
|
||||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
|
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
|
||||||
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
|
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||||
pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
|
IPage<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroupIPage = vehiclematerialgroupMapper.selectPage(pages, Wrappers.lambdaQuery(SchBaseVehiclematerialgroup.class)
|
||||||
return pages;
|
.eq(StrUtil.isNotBlank(whereJson.getVehicle_code()), SchBaseVehiclematerialgroup::getVehicle_code, whereJson.getVehicle_code())
|
||||||
|
.eq(StrUtil.isNotBlank(whereJson.getWorkshop_code()), SchBaseVehiclematerialgroup::getWorkshop_code, whereJson.getWorkshop_code())
|
||||||
|
.eq(StrUtil.isNotBlank(whereJson.getGroup_bind_material_status()), SchBaseVehiclematerialgroup::getGroup_bind_material_status, whereJson.getGroup_bind_material_status())
|
||||||
|
.eq(StrUtil.isNotBlank(whereJson.getRegion_code()), SchBaseVehiclematerialgroup::getRegion_code, whereJson.getRegion_code()));
|
||||||
|
schBaseVehiclematerialgroupIPage.getRecords().forEach(item -> {
|
||||||
|
if(StrUtil.isNotBlank(item.getMaterial_id()))
|
||||||
|
{
|
||||||
|
MdBaseMaterial mdBaseMaterial = iMdBaseMaterialService.getOne(Wrappers.lambdaQuery(MdBaseMaterial.class)
|
||||||
|
.eq(MdBaseMaterial::getMaterial_code, item.getMaterial_id()));
|
||||||
|
if(ObjectUtil.isNotEmpty(mdBaseMaterial)){
|
||||||
|
item.setMaterial_name(mdBaseMaterial.getMaterial_name());
|
||||||
|
item.setMaterial_spec(mdBaseMaterial.getMaterial_spec());
|
||||||
|
item.setMaterial_code(mdBaseMaterial.getMaterial_code());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(StrUtil.isNotBlank(item.getRegion_code()))
|
||||||
|
{
|
||||||
|
item.setRegion_name(pointService.list(Wrappers.lambdaQuery(SchBasePoint.class).eq(SchBasePoint::getRegion_code, item.getRegion_code())).get(0).getRegion_name());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
|
||||||
|
return schBaseVehiclematerialgroupIPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -132,13 +132,15 @@ public class CNTTask extends AbstractTask {
|
|||||||
// 起点清空
|
// 起点清空
|
||||||
if (ObjectUtil.isNotEmpty(schBasePoint)) {
|
if (ObjectUtil.isNotEmpty(schBasePoint)) {
|
||||||
PointUtils.updateByIngTaskCode(schBasePoint);
|
PointUtils.updateByIngTaskCode(schBasePoint);
|
||||||
pointService.updateById(schBasePoint);
|
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, startPoint)
|
||||||
|
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
|
||||||
}
|
}
|
||||||
String point_code2 = taskObj.getPoint_code2();
|
String point_code2 = taskObj.getPoint_code2();
|
||||||
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
|
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
|
||||||
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
|
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
|
||||||
PointUtils.updateByIngTaskCode(schBasePoint2);
|
PointUtils.updateByIngTaskCode(schBasePoint2);
|
||||||
pointService.updateById(schBasePoint2);
|
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code2)
|
||||||
|
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
|
||||||
}
|
}
|
||||||
// 任务完成
|
// 任务完成
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task.tasks.cnt;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.enums.GoodsEnum;
|
import org.nl.common.enums.GoodsEnum;
|
||||||
import org.nl.common.enums.region.RegionEnum;
|
import org.nl.common.enums.region.RegionEnum;
|
||||||
@@ -26,6 +27,7 @@ import org.nl.wms.util.PointUtils;
|
|||||||
import org.nl.wms.util.TaskUtils;
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -49,6 +51,7 @@ public class FTGTask extends AbstractTask {
|
|||||||
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
// 获取任务
|
// 获取任务
|
||||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||||
@@ -68,10 +71,10 @@ public class FTGTask extends AbstractTask {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
/*SchBaseVehiclematerialgroup schBaseVehiclematerialgroup = new SchBaseVehiclematerialgroup();
|
||||||
schBaseVehiclematerialgroup.setVehicle_code(task.getVehicle_code());
|
schBaseVehiclematerialgroup.setVehicle_code(task.getVehicle_code());
|
||||||
schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code());
|
schBaseVehiclematerialgroup.setPoint_code(schBasePoint.getPoint_code());
|
||||||
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);
|
schBaseVehiclematerialgroupService.create(schBaseVehiclematerialgroup);*/
|
||||||
|
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code1(schBasePoint.getPoint_code());
|
task.setPoint_code1(schBasePoint.getPoint_code());
|
||||||
@@ -124,13 +127,15 @@ public class FTGTask extends AbstractTask {
|
|||||||
// 起点清空
|
// 起点清空
|
||||||
if (ObjectUtil.isNotEmpty(schBasePoint)) {
|
if (ObjectUtil.isNotEmpty(schBasePoint)) {
|
||||||
PointUtils.updateByIngTaskCode(schBasePoint);
|
PointUtils.updateByIngTaskCode(schBasePoint);
|
||||||
pointService.updateById(schBasePoint);
|
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, startPoint)
|
||||||
|
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
|
||||||
}
|
}
|
||||||
String point_code2 = taskObj.getPoint_code2();
|
String point_code2 = taskObj.getPoint_code2();
|
||||||
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
|
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
|
||||||
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
|
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
|
||||||
PointUtils.updateByIngTaskCode(schBasePoint2);
|
PointUtils.updateByIngTaskCode(schBasePoint2);
|
||||||
pointService.updateById(schBasePoint2);
|
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code2)
|
||||||
|
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
|
||||||
}
|
}
|
||||||
// 任务完成
|
// 任务完成
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ public class TBXMLTask extends AbstractTask {
|
|||||||
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(orderObject)
|
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(orderObject)
|
||||||
? orderObject.getStanding_time()
|
? orderObject.getStanding_time()
|
||||||
: 0);
|
: 0);
|
||||||
groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(orderObject)
|
groupEntity.setOrder_code(ObjectUtil.isNotEmpty(orderObject)
|
||||||
? orderObject.getWorkorder_code()
|
? orderObject.getWorkorder_code()
|
||||||
: "");
|
: "");
|
||||||
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0
|
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in workShopList"
|
v-for="item in workShopList"
|
||||||
|
:key="item.workshop_name"
|
||||||
:label="item.workshop_name"
|
:label="item.workshop_name"
|
||||||
:value="item.workshop_code"
|
:value="item.workshop_code"
|
||||||
/>
|
/>
|
||||||
@@ -33,6 +34,7 @@
|
|||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in regionList"
|
v-for="item in regionList"
|
||||||
|
:key="item.region_name"
|
||||||
:label="item.region_name"
|
:label="item.region_name"
|
||||||
:value="item.region_code"
|
:value="item.region_code"
|
||||||
/>
|
/>
|
||||||
@@ -58,6 +60,7 @@
|
|||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dict.group_bind_material_status"
|
v-for="item in dict.group_bind_material_status"
|
||||||
|
:key="item.label"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
@@ -184,6 +187,7 @@
|
|||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dict.group_status"
|
v-for="item in dict.group_status"
|
||||||
|
:key="item.label"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
@@ -219,41 +223,41 @@
|
|||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
||||||
<!-- <el-table-column prop="child_vehicle_code" label="子载具编码" :min-width="flexWidth('child_vehicle_code',crud.data,'子载具编码')"/>-->
|
<!-- <el-table-column prop="child_vehicle_code" label="子载具编码" :min-width="flexWidth('child_vehicle_code',crud.data,'子载具编码')"/>-->
|
||||||
<el-table-column prop="source_vehicle_code" label="来源载具" :min-width="flexWidth('source_vehicle_code',crud.data,'来源载具')" />
|
<!-- <el-table-column prop="source_vehicle_code" label="来源载具" :min-width="flexWidth('source_vehicle_code',crud.data,'来源载具')" /> -->
|
||||||
<el-table-column prop="region_name" label="所属区域" :min-width="flexWidth('region_name',crud.data,'所属区域')" />
|
<el-table-column prop="region_name" label="所属区域" :min-width="flexWidth('region_name',crud.data,'所属区域')" />
|
||||||
<el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')" />
|
<!-- <el-table-column prop="point_code" label="点位编码" :min-width="flexWidth('point_code',crud.data,'点位编码')" /> -->
|
||||||
<el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')" />
|
<!-- <el-table-column prop="point_name" label="点位名称" :min-width="flexWidth('point_name',crud.data,'点位名称')" /> -->
|
||||||
<el-table-column prop="is_full" label="是否满托" :min-width="flexWidth('is_full',crud.data,'是否满托')">
|
<!-- <el-table-column prop="is_full" label="是否满托" :min-width="flexWidth('is_full',crud.data,'是否满托')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.is_full?'是':'否' }}
|
{{ scope.row.is_full?'是':'否' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" />
|
<!-- <el-table-column prop="pcsn" label="批次" :min-width="flexWidth('pcsn',crud.data,'批次')" /> -->
|
||||||
<el-table-column prop="workorder_code" label="工单编码" :min-width="flexWidth('workorder_code',crud.data,'工单编码')" />
|
<el-table-column prop="order_code" label="工单编码" :min-width="flexWidth('order_code',crud.data,'工单编码')" />
|
||||||
<el-table-column prop="instorage_time" label="入库时间" :min-width="flexWidth('instorage_time',crud.data,'入库时间')" />
|
<!-- <el-table-column prop="instorage_time" label="入库时间" :min-width="flexWidth('instorage_time',crud.data,'入库时间')" /> -->
|
||||||
<el-table-column prop="group_bind_material_status" label="绑定状态" :min-width="flexWidth('group_bind_material_status',crud.data,'入库时间')">
|
<!-- <el-table-column prop="group_bind_material_status" label="绑定状态" :min-width="flexWidth('group_bind_material_status',crud.data,'入库时间')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ dict.label.group_bind_material_status[scope.row.group_bind_material_status] }}
|
{{ dict.label.group_bind_material_status[scope.row.group_bind_material_status] }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
|
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" /> -->
|
||||||
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_name',crud.data,'物料数量')" />
|
||||||
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
||||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||||
<el-table-column prop="material_qty" label="物料数量" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
<!-- <el-table-column prop="material_qty" label="物料数量" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
|
||||||
<el-table-column prop="material_weight" label="物料重量" :min-width="flexWidth('material_weight',crud.data,'物料重量')" />
|
<el-table-column prop="material_weight" label="物料重量" :min-width="flexWidth('material_weight',crud.data,'物料重量')" />
|
||||||
<el-table-column prop="group_number" label="组盘次数" :min-width="flexWidth('group_number',crud.data,'组盘次数')" />
|
<el-table-column prop="group_number" label="组盘次数" :min-width="flexWidth('group_number',crud.data,'组盘次数')" />
|
||||||
<el-table-column prop="task_code" label="任务编码" :min-width="flexWidth('task_code',crud.data,'任务编码')" />
|
<el-table-column prop="task_code" label="任务编码" :min-width="flexWidth('task_code',crud.data,'任务编码')" /> -->
|
||||||
<!-- <el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')"/>-->
|
<!-- <el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')"/>-->
|
||||||
<el-table-column prop="group_status" label="组盘状态" :min-width="flexWidth('group_status',crud.data,'组盘状态')">
|
<!-- <el-table-column prop="group_status" label="组盘状态" :min-width="flexWidth('group_status',crud.data,'组盘状态')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ dict.label.group_status[scope.row.group_status] }}
|
{{ dict.label.group_status[scope.row.group_status] }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column> -->
|
||||||
<!-- <el-table-column prop="is_first_flow_task" label="是否首个流程任务" :min-width="flexWidth('is_first_flow_task',crud.data,'是否首个流程任务')"/>-->
|
<!-- <el-table-column prop="is_first_flow_task" label="是否首个流程任务" :min-width="flexWidth('is_first_flow_task',crud.data,'是否首个流程任务')"/>-->
|
||||||
<!-- <el-table-column prop="flow_code" label="流程编码" :min-width="flexWidth('flow_code',crud.data,'流程编码')"/>-->
|
<!-- <el-table-column prop="flow_code" label="流程编码" :min-width="flexWidth('flow_code',crud.data,'流程编码')"/>-->
|
||||||
<!-- <el-table-column prop="flow_num" label="流程顺序" :min-width="flexWidth('flow_num',crud.data,'流程顺序')"/>-->
|
<!-- <el-table-column prop="flow_num" label="流程顺序" :min-width="flexWidth('flow_num',crud.data,'流程顺序')"/>-->
|
||||||
<el-table-column prop="move_way" label="移动途径" :min-width="flexWidth('move_way',crud.data,'移动途径')" />
|
<!-- <el-table-column prop="move_way" label="移动途径" :min-width="flexWidth('move_way',crud.data,'移动途径')" /> -->
|
||||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||||
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
<el-table-column prop="create_name" label="创建人" :min-width="flexWidth('create_name',crud.data,'创建人')" />
|
||||||
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
|
<el-table-column prop="create_time" label="创建时间" :min-width="flexWidth('create_time',crud.data,'创建时间')" />
|
||||||
|
|||||||
Reference in New Issue
Block a user