no message

main
HUOJIN\92525 2024-08-05 15:12:28 +08:00
parent 9596dbecb2
commit 530d4b48d8
10 changed files with 173 additions and 178 deletions

View File

@ -71,8 +71,8 @@ public class SysAppUpdateController {
return new ResponseEntity<>(sysAppUpdateService.queryAll(criteria,pageable),HttpStatus.OK); return new ResponseEntity<>(sysAppUpdateService.queryAll(criteria,pageable),HttpStatus.OK);
} }
@Log("获取最新版本")
@ApiOperation("获取最新版本tdshfdisuhfosihfosi093t") @ApiOperation("获取最新版本")
@AnonymousGetMapping(value = "/new") @AnonymousGetMapping(value = "/new")
public ResponseEntity<Object> querySysNewAppUpdate(SysAppUpdateQueryCriteria criteria, Pageable pageable){ public ResponseEntity<Object> querySysNewAppUpdate(SysAppUpdateQueryCriteria criteria, Pageable pageable){
@ -94,6 +94,7 @@ public class SysAppUpdateController {
@PostMapping @PostMapping
@ApiOperation("上传文件") @ApiOperation("上传文件")
@Log("上传文件")
@PreAuthorize("@el.check('sysAppUpdate:add')") @PreAuthorize("@el.check('sysAppUpdate:add')")
public ResponseEntity<Object> createSysAppUpdate(@RequestParam String appName,@RequestParam int versionCode,@RequestParam String versionName,@RequestParam String modifyContent, @RequestParam("file") MultipartFile file){ public ResponseEntity<Object> createSysAppUpdate(@RequestParam String appName,@RequestParam int versionCode,@RequestParam String versionName,@RequestParam String modifyContent, @RequestParam("file") MultipartFile file){
@ -107,11 +108,7 @@ public class SysAppUpdateController {
@PreAuthorize("@el.check('sysAppUpdate:edit')") @PreAuthorize("@el.check('sysAppUpdate:edit')")
public ResponseEntity<Object> updateSysAppUpdate(@Validated @RequestBody SysAppUpdate resources){ public ResponseEntity<Object> updateSysAppUpdate(@Validated @RequestBody SysAppUpdate resources){
sysAppUpdateService.update(resources); sysAppUpdateService.update(resources);
for (Channel client : ServerListenerHandler.clients) { return new ResponseEntity<>(HttpStatus.OK);
String devce_ip =((InetSocketAddress)client.remoteAddress()).getAddress().getHostAddress();
NettyUtils.light_on(devce_ip,NettyUtils.light_1,null);
}
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }
@DeleteMapping @DeleteMapping

View File

@ -599,7 +599,16 @@ public class StockServiceImpl implements StockService {
} }
private void moveFxOffLine(TransTask transTask) { private void moveFxOffLine(TransTask transTask) {
Point srcPoint = validateSrcPoint(transTask.getPointCode());//起点
List<Point> pointList = pointRepository.findByCode(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.FXSXQ, null, null);
if (pointList.isEmpty()) {
throw new RuntimeException("返修上线区没有空闲点位!");
}
Point endPoint = pointList.get(0);
AgvTask agvTask = new AgvTask(BizStatus.Fx_Off_Line, null, srcPoint.getCode(), endPoint.getCode(), BizStatus.OPEN, "ROLLER_MOVE");
agvTask.setSlotCode(srcPoint.getName());
agvTaskRepository.save(agvTask);
agvTaskService.sendAgvTaskGTImpl(agvTask);
} }
@Override @Override

View File

@ -42,12 +42,12 @@ public class AgvTask extends BaseEntity implements Serializable {
@ApiModelProperty(value = "任务ID") @ApiModelProperty(value = "任务ID")
private Long id; private Long id;
@Column(name = "`stock_code`",nullable = true) @Column(name = "`stock_code`")
@NotBlank @NotBlank
@ApiModelProperty(value = "容器号") @ApiModelProperty(value = "容器号")
private String stockCode; private String stockCode;
@Column(name = "`stock_type_code`",nullable = true) @Column(name = "`stock_type_code`")
@NotBlank @NotBlank
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private String stockTypeCode; private String stockTypeCode;
@ -57,12 +57,12 @@ public class AgvTask extends BaseEntity implements Serializable {
@ApiModelProperty(value = "起点位置") @ApiModelProperty(value = "起点位置")
private String startSlotCode; private String startSlotCode;
@Column(name = "`end_slot_code`",nullable = true) @Column(name = "`end_slot_code`")
@ApiModelProperty(value = "终点位置") @ApiModelProperty(value = "终点位置")
private String endSlotCode; private String endSlotCode;
@Column(name = "`slot_code`",nullable = true) @Column(name = "`slot_code`")
@ApiModelProperty(value = "") @ApiModelProperty(value = "设备编号")
private String slotCode; private String slotCode;
@Column(name = "`status`",nullable = false) @Column(name = "`status`",nullable = false)

View File

@ -119,11 +119,11 @@ public interface AgvTaskService {
/** /**
* *
* *
* @param agvTasks1- * @param agvTasks
* @param agvTasks1- * @param
* @return * @return
*/ */
String sendAgvTaskGTImpl(List<AgvTask> agvTasks1, List<AgvTask> agvTasks2); void sendAgvTaskGTImpl(AgvTask agvTasks);
/** /**
* *

View File

@ -97,6 +97,7 @@ public class PickDto implements Serializable {
*/ */
private Boolean isCall; private Boolean isCall;
/** /**
* ID * ID
*/ */

View File

@ -188,28 +188,8 @@ public class AgvTaskServiceImpl implements AgvTaskService {
objMap.put("missionData", missionDataArray); objMap.put("missionData", missionDataArray);
jsonObject.putAll(objMap); jsonObject.putAll(objMap);
String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission(), jsonObject.toString());
if (StringUtils.isEmpty(resultJson)) {
throw new RuntimeException("AGV返回信息:下发任务接口调用失败!");
}
JSONObject resulObject = JSON.parseObject(resultJson);
if (resulObject == null) {
throw new RuntimeException("AGV返回信息:下发任务接口返回为空!");
}
String code = resulObject.getString("code"); sendAgvTask(agvTasks, jsonObject.toString());
String message = resulObject.getString("message");
if (!"0".equals(code)) {
throw new RuntimeException("AGV返回信息:" + message);
} else {
agvTasks.setJobForce(agvTasks.getId().toString());//任务组
agvTasks.setJobForceAsc((1));
agvTasks.setStatus(BizStatus.ATCALL);
agvTasks.setJobMessage(resultJson);
agvTasks.setReqMessage(jsonObject.toString());
agvTasks.setStartTime(new Timestamp(new Date().getTime()));
update(agvTasks);
}
} }
@Override @Override
@ -238,28 +218,8 @@ public class AgvTaskServiceImpl implements AgvTaskService {
objMap.put("missionData", missionDataArray); objMap.put("missionData", missionDataArray);
jsonObject.putAll(objMap); jsonObject.putAll(objMap);
String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission(), jsonObject.toString());
if (StringUtils.isEmpty(resultJson)) {
throw new RuntimeException("AGV返回信息:下发任务接口调用失败!");
}
JSONObject resulObject = JSON.parseObject(resultJson);
if (resulObject == null) {
throw new RuntimeException("AGV返回信息:下发任务接口返回为空!");
}
String code = resulObject.getString("code"); sendAgvTask(agvTasks, jsonObject.toString());
String message = resulObject.getString("message");
if (!"0".equals(code)) {
throw new RuntimeException("AGV返回信息:" + message);
} else {
agvTasks.setJobForce(agvTasks.getId().toString());//任务组
agvTasks.setJobForceAsc((1));
agvTasks.setStatus(BizStatus.ATCALL);
agvTasks.setJobMessage(resultJson);
agvTasks.setReqMessage(jsonObject.toString());
agvTasks.setStartTime(new Timestamp(new Date().getTime()));
update(agvTasks);
}
} }
@Override @Override
@ -316,21 +276,21 @@ public class AgvTaskServiceImpl implements AgvTaskService {
agvTask.setJobMessage(resultJson); agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString()); agvTask.setReqMessage(jsonObject.toString());
agvTask.setStartTime(new Timestamp(new Date().getTime())); agvTask.setStartTime(new Timestamp(new Date().getTime()));
update(agvTask); agvTaskRepository.save(agvTask);
} }
} else { } else {
for (int i = 0; i < agvTasks.size(); i++) { for (int i = 0; i < agvTasks.size(); i++) {
AgvTask agvTask = agvTasks.get(i); AgvTask agvTask = agvTasks.get(i);
agvTask.setJobMessage(resultJson); agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString()); agvTask.setReqMessage(jsonObject.toString());
update(agvTask); agvTaskRepository.save(agvTask);
} }
} }
return resultJson; return resultJson;
} }
@Override @Override
public synchronized String sendAgvTaskGTImpl(List<AgvTask> agvTasks1, List<AgvTask> agvTasks2) { public synchronized void sendAgvTaskGTImpl(AgvTask agvTask) {
JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
String agvCode = TimeNumberUtils.getGTTaskCode(); String agvCode = TimeNumberUtils.getGTTaskCode();
Map<String, Object> objMap = new LinkedHashMap<>(); Map<String, Object> objMap = new LinkedHashMap<>();
@ -339,80 +299,83 @@ public class AgvTaskServiceImpl implements AgvTaskService {
objMap.put("missionCode", agvCode);//任务编号 objMap.put("missionCode", agvCode);//任务编号
objMap.put("missionType", "ROLLER_MOVE");//任务类型 :滚筒 objMap.put("missionType", "ROLLER_MOVE");//任务类型 :滚筒
objMap.put("viewBoardType", "");//上视识别类型: objMap.put("viewBoardType", "");//上视识别类型:
objMap.put("robotType", "ROLLER");
objMap.put("priority", "1");
objMap.put("lockRobotAfterFinish", false);
JSONArray missionDataArray = new JSONArray(); JSONArray missionDataArray = new JSONArray();
for (int i = 0; i < agvTasks1.size(); i++) {
AgvTask agvTask = agvTasks1.get(i);
JSONObject missionDataObj = new JSONObject(new LinkedHashMap<>());
Map<String, Object> missionDataMap = new LinkedHashMap<>();
missionDataMap.put("sequence", (i + 1));//序号
missionDataMap.put("binCode", agvTask.getStockCode());//料箱号
missionDataMap.put("startDeviceCode", agvTask.getStartSlotCode());//料箱所在的起始槽位
missionDataMap.put("endDeviceCode", agvTask.getEndSlotCode());//料箱所在的目标槽位
missionDataMap.put("rollerLevel", 2);//层
missionDataMap.put("rollerColumn", (i + 1));//列
missionDataObj.putAll(missionDataMap);
missionDataArray.add(missionDataObj);
}
int sum = agvTasks1.size();
if (agvTasks2.size() > 0) {
for (int i = 0; i < agvTasks2.size(); i++) {
AgvTask agvTask = agvTasks2.get(i);
JSONObject missionDataObj = new JSONObject(new LinkedHashMap<>());
Map<String, Object> missionDataMap = new LinkedHashMap<>();
missionDataMap.put("sequence", (sum + (i + 1)));//序号
missionDataMap.put("binCode", agvTask.getStockCode());//料箱号
missionDataMap.put("startDeviceCode", agvTask.getStartSlotCode());//料箱所在的起始槽位
missionDataMap.put("endDeviceCode", agvTask.getEndSlotCode());//料箱所在的目标槽位
missionDataMap.put("rollerLevel", 1);//层
missionDataMap.put("rollerColumn", (i + 1));//列
missionDataObj.putAll(missionDataMap);
missionDataArray.add(missionDataObj);
}
}
JSONObject missionDataObj = new JSONObject(new LinkedHashMap<>());
Map<String, Object> missionDataMap = new LinkedHashMap<>();
missionDataMap.put("sequence", 1);//序号
missionDataMap.put("position", agvTask.getStartSlotCode());//起点
missionDataMap.put("type", "NODE_POINT");//
missionDataMap.put("actionType", "ROLLER_RECEIVE");//
missionDataMap.put("binCode", agvTask.getStockCode());//容器
missionDataMap.put("rollerLevel", 1);//
missionDataMap.put("deviceCode", agvTask.getSlotCode());//设备编号
missionDataMap.put("actionConfirm", true);//
missionDataMap.put("passStrategy", "AUTO");//
missionDataObj.putAll(missionDataMap);
missionDataArray.add(missionDataObj);
JSONObject missionDataObj2 = new JSONObject(new LinkedHashMap<>());
Map<String, Object> missionDataMap2 = new LinkedHashMap<>();
missionDataMap2.put("sequence", 2);//序号
missionDataMap2.put("position", agvTask.getEndSlotCode());//起点
missionDataMap2.put("type", "NODE_POINT");//
missionDataMap2.put("actionType", "");//
missionDataMap2.put("binCode", agvTask.getStockCode());//容器
missionDataMap2.put("rollerLevel", 1);//
missionDataMap2.put("deviceCode", "");//
missionDataMap2.put("actionConfirm", false);//
missionDataMap2.put("passStrategy", "MANUAL");//
missionDataObj2.putAll(missionDataMap2);
missionDataArray.add(missionDataObj2);
JSONObject missionDataObj3 = new JSONObject(new LinkedHashMap<>());
Map<String, Object> missionDataMap3 = new LinkedHashMap<>();
missionDataMap3.put("sequence", 3);//序号
missionDataMap3.put("position", agvTask.getStartSlotCode());//起点
missionDataMap3.put("type", "NODE_POINT");//
missionDataMap3.put("actionType", "ROLLER_RECEIVE");//
missionDataMap3.put("binCode", agvTask.getStockCode());//容器
missionDataMap3.put("rollerLevel", 1);//
missionDataMap3.put("deviceCode", agvTask.getSlotCode());//
missionDataMap3.put("actionConfirm", true);//
missionDataMap3.put("passStrategy", "AUTO");//
missionDataObj3.putAll(missionDataMap3);
missionDataArray.add(missionDataObj3);
objMap.put("missionData", missionDataArray); objMap.put("missionData", missionDataArray);
jsonObject.putAll(objMap); jsonObject.putAll(objMap);
System.out.println(jsonObject.toString());
String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission(), jsonObject.toString());//返回ResponseJson*/ sendAgvTask(agvTask, jsonObject.toString());//发送任务
JSONObject resulObject = JSON.parseObject(resultJson); }
String code = resulObject.getString("code") == null ? "" : resulObject.getString("code");
if (code.equals("0")) { private void sendAgvTask(AgvTask agvTask, String json) {
for (int i = 0; i < agvTasks1.size(); i++) { String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission(), json);
AgvTask agvTask = agvTasks1.get(i); if (StringUtils.isEmpty(resultJson)) {
agvTask.setJobForce(agvCode);//任务组 throw new RuntimeException("AGV返回信息:下发任务接口调用失败!");
agvTask.setJobForceAsc((i + 1));
agvTask.setStatus(BizStatus.ATCALL);
agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString());
agvTask.setStartTime(new Timestamp(new Date().getTime()));
update(agvTask);
}
for (int i = 0; i < agvTasks2.size(); i++) {
AgvTask agvTask = agvTasks2.get(i);
agvTask.setJobForce(agvCode);//任务组
agvTask.setJobForceAsc((i + 1));
agvTask.setStatus(BizStatus.ATCALL);
agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString());
agvTask.setStartTime(new Timestamp(new Date().getTime()));
update(agvTask);
}
} else {
for (int i = 0; i < agvTasks1.size(); i++) {
AgvTask agvTask = agvTasks1.get(i);
agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString());
update(agvTask);
}
for (int i = 0; i < agvTasks2.size(); i++) {
AgvTask agvTask = agvTasks2.get(i);
agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(jsonObject.toString());
update(agvTask);
}
} }
return resultJson; JSONObject resulObject = JSON.parseObject(resultJson);
if (resulObject == null) {
throw new RuntimeException("AGV返回信息:下发任务接口返回为空!");
}
String code = resulObject.getString("code");
String message = resulObject.getString("message");
if (!"0".equals(code)) {
throw new RuntimeException("AGV返回信息:" + message);
} else {
agvTask.setJobForce(agvTask.getId().toString());//任务组
agvTask.setJobForceAsc((1));
agvTask.setStatus(BizStatus.ATCALL);
agvTask.setJobMessage(resultJson);
agvTask.setReqMessage(json);
agvTask.setStartTime(new Timestamp(new Date().getTime()));
agvTaskRepository.save(agvTask);
}
} }
@Override @Override

View File

@ -314,7 +314,13 @@ public class PickDetailServiceImpl implements PickDetailService {
//目标库位 //目标库位
Point endPoint = null; Point endPoint = null;
if (pick.getPoint() == null) { if (pick.getPoint() == null) {
List<Point> pointList = pointRepository.findByCode(null, BaseStatus.FREE, BaseStatus.BOX, AreaNameDic.XJFBQ, null, null); String areaCode = null;
if (BaseStatus.GD_TYPE_CT.equals(pick.getOrderType())) {
areaCode = AreaNameDic.XJFBQ;
} else if (BaseStatus.GD_TYPE_DP.equals(pick.getOrderType())) {
areaCode = AreaNameDic.DJFBQ;
}
List<Point> pointList = pointRepository.findByCode(null, BaseStatus.FREE, BaseStatus.BOX, areaCode, null, null);
if (pointList.isEmpty()) { if (pointList.isEmpty()) {
logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", "分配失败,翻包区没有空闲点位!", "出库单分配", 200, "info"); logService.saveLogInfo(pick.getCode(), pick.getCode(), "/pick/allocatePick", "分配失败,翻包区没有空闲点位!", "出库单分配", 200, "info");
throw new IllegalArgumentException(pick.getCode() + "分配失败,翻包区没有空闲点位!"); throw new IllegalArgumentException(pick.getCode() + "分配失败,翻包区没有空闲点位!");

View File

@ -199,7 +199,7 @@ public class PickServiceImpl implements PickService {
/** 遍历成品集合 */ /** 遍历成品集合 */
yclbl.getBlzc().forEach(zcData -> { yclbl.getBlzc().forEach(zcData -> {
Pick pick = createPick(orderNo, taskCode, lineNo.getAndIncrement(), zcData.getCompleteCode(), zcData.getStation()); Pick pick = createPick(orderNo, taskCode, lineNo.getAndIncrement(), zcData.getCompleteCode(), zcData.getStation(), BaseStatus.GD_TYPE_CT);
createPicks.add(pick); createPicks.add(pick);
zcData.getBlzcmx().forEach(itemDate -> { zcData.getBlzcmx().forEach(itemDate -> {
Item item = itemMap.get(itemDate.getItemCode()); Item item = itemMap.get(itemDate.getItemCode());
@ -210,7 +210,7 @@ public class PickServiceImpl implements PickService {
/** 遍历单品品集合 */ /** 遍历单品品集合 */
yclbl.getBlzcmx().forEach(itemDate -> { yclbl.getBlzcmx().forEach(itemDate -> {
Pick pick = createPick(orderNo, taskCode, lineNo.getAndIncrement(), itemDate.getItemCode(), itemDate.getStation()); Pick pick = createPick(orderNo, taskCode, lineNo.getAndIncrement(), itemDate.getItemCode(), itemDate.getStation(), BaseStatus.GD_TYPE_DP);
createPicks.add(pick); createPicks.add(pick);
Item item = itemMap.get(itemDate.getItemCode()); Item item = itemMap.get(itemDate.getItemCode());
PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_DP, itemDate.getItemQty(), null); PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_DP, itemDate.getItemQty(), null);
@ -324,7 +324,7 @@ public class PickServiceImpl implements PickService {
return pickDetail; return pickDetail;
} }
public Pick createPick(String gdCode, String taskCode, int lineNo, String cpCodeOrpCode, String station) { public Pick createPick(String gdCode, String taskCode, int lineNo, String cpCodeOrpCode, String station,String orderType) {
Pick pick = new Pick(); Pick pick = new Pick();
pick.setTaskCode(taskCode); pick.setTaskCode(taskCode);
pick.setLineNo(lineNo); pick.setLineNo(lineNo);
@ -335,6 +335,7 @@ public class PickServiceImpl implements PickService {
pick.setStatus(BizStatus.OPEN); pick.setStatus(BizStatus.OPEN);
pick.setIsCall(false); pick.setIsCall(false);
pick.setDept(deptService.getDefaultDept()); pick.setDept(deptService.getDefaultDept());
pick.setOrderType(orderType);
return pick; return pick;
} }

View File

@ -10,51 +10,67 @@ public interface AreaNameDic {
/** /**
* *
*/ */
public static String DXJRKQ = "DXJRKQ"; String DXJRKQ = "DXJRKQ";
/** /**
* *
*/ */
public static String DJQ = "DJQ"; String DJQ = "DJQ";
/** /**
* *
*/ */
public static String XJQ = "XJQ"; String XJQ = "XJQ";
/** /**
* *
*/ */
public static String XJFBQ = "XJFBQ"; String XJFBQ = "XJFBQ";
/** /**
* *
*/ */
public static String XJFBCQ = "XJFBCQ"; String XJFBCQ = "XJFBCQ";
/**
*
*/
String DJFBQ = "DJFBQ";
/**
*
*/
String DJFBCQ = "DJFBCQ";
/** /**
* *
*/ */
public static String CPRKQ = "CPRKQ"; String CPRKQ = "CPRKQ";
/** /**
* *
*/ */
public static String CPRKHCQ = "CPRKHCQ"; String CPRKHCQ = "CPRKHCQ";
/** /**
* 线 * 线
*/ */
public static String CPXXQ = "CPXXQ"; String CPXXQ = "CPXXQ";
/** /**
* * 线
*/ */
public static String FXQ = "FXQ"; String FXSXQ = "FXSXQ";
/**
* 线
*/
String FXXXQ = "FXXXQ";
/** /**
* *
*/ */
public static String JLQ = "JLQ"; String JLQ = "JLQ";
} }

View File

@ -91,27 +91,6 @@ public interface BizStatus {
*/ */
String FINISH = "FINISH"; String FINISH = "FINISH";
/**
* -
*/
String FB_RETURN = "FB_RETURN";
/**
* -线
*/
String Cp_Off_Up = "Cp_Off_Up";
/**
* -线
*/
String Cp_Off_Line = "Cp_Off_Line";
/**
* -线
*/
String Fx_Off_Line = "Fx_Off_Line";
/** /**
* - * -
@ -123,16 +102,47 @@ public interface BizStatus {
*/ */
String PICK = "PICK"; String PICK = "PICK";
/**
* -
*/
String CALL_PICK = "CALL_PICK";
/** /**
* - * -
*/ */
String INV = "INV"; String INV = "INV";
/**
* /
*/
String EMPTY_OUT = "EMPTY_OUT";
/**
*
*/
String EMPTY_IN = "EMPTY_IN";
/**
* -
*/
String FB_RETURN = "FB_RETURN";
/**
* -线
*/
String Cp_Off_Line = "Cp_Off_Line";
/**
* -线
*/
String Cp_Off_Up = "Cp_Off_Up";
/**
* -线
*/
String Fx_Off_Line = "Fx_Off_Line";
/**
* -
*/
String CALL_PICK = "CALL_PICK";
/** /**
* - * -
*/ */
@ -241,14 +251,6 @@ public interface BizStatus {
* *
*/ */
String ZC = "ZC"; String ZC = "ZC";
/**
*
*/
String EMPTY_IN = "EMPTY_IN";
/**
* /
*/
String EMPTY_OUT = "EMPTY_OUT";
} }