Browse Source

新需求调整

master
psh 9 months ago
parent
commit
567b952e17
  1. 4
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/cw_site/CwSiteDeviceDriver.java
  2. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java
  3. 47
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java
  4. 26
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java

4
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/cw_site/CwSiteDeviceDriver.java

@ -168,7 +168,9 @@ public class CwSiteDeviceDriver extends AbstractOpcDeviceDriver implements Devic
request.setType("2");
acsToWmsService.notify(request);
resultSucess=true;
}else if (move ==1 && this.getDeviceCode().startsWith("ZJBDJW") &&!resultSucess) {
}else if (move ==1 &&
(this.getDeviceCode().startsWith("ZJBDJW")||
this.getDeviceCode().startsWith("FJBKJDJW"))&&!resultSucess) {
//点位数量变更后通知lms
FeedBackTaskStatusRequest request = new FeedBackTaskStatusRequest();
request.setState("3");

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java

@ -12,6 +12,7 @@ import org.nl.system.service.quartz.dao.SysQuartzJob;
import org.nl.system.service.quartz.dao.SysQuartzLog;
import org.nl.system.service.quartz.dao.mapper.SysQuartzLogMapper;
import org.nl.system.service.quartz.impl.SysQuartzJobServiceImpl;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.annotation.Async;
@ -28,6 +29,7 @@ import java.util.concurrent.ThreadPoolExecutor;
@Async
@SuppressWarnings({"unchecked", "all"})
@Slf4j
@DisallowConcurrentExecution
public class ExecutionJob extends QuartzJobBean {
/**

47
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java

@ -108,27 +108,31 @@ public class KGHJRKTask extends AbstractTask {
* 判断目标点位
* 1.A区的去A区缓存点,B区的去B区
* 2.倒叙查找找到满足当前位置数量不足3的即可
* 3.负极板优先放到HCQ7放满了再放到HCQ1
*/
private SchBasePoint findNextPoint(SchBasePoint startPoint, String vehicleType) {
String regionCode = null;
String regionCode2 = null;
if ("A1".equals(startPoint.getWorkshop_code())) {
//A1空架到HCQ1
regionCode = "HCQ1";
regionCode = "HCQ7";
regionCode2 ="HCQ1";
if ("1".equals(vehicleType)) {
regionCode = "ZJBKGHJDJW";
}
} else if ("A2".equals(startPoint.getWorkshop_code())) {
//A1空架到KGHJ2
regionCode = "KGHJ2";
//A1空架到HCQ5
regionCode = "HCQ5";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode, "1");
//负极板优先放到HCQ7,放满了再放到HCQ1
//从前往后判断,直到发现点位有货,取前一个
SchBasePoint schBasePoint = null;
if (!"ZJBKGHJDJW".equals(regionCode)) {
for (int i = schBasePointList.size() - 1; i >= 0; i--) {
SchBasePoint temp = schBasePointList.get(i);
if (temp.getVehicle_qty() == 1 &&
if (temp.getVehicle_qty() > 1 &&
ObjectUtil.isEmpty(temp.getIng_task_code())) {
if (schBasePoint != null) {
log.info("空固化架放货找到当前点位有货:{},取上一个空位:{}", temp.getPoint_code(), schBasePoint.getPoint_code());
@ -139,6 +143,26 @@ public class KGHJRKTask extends AbstractTask {
}
schBasePoint = temp;
}
if(ObjectUtil.isEmpty(schBasePoint)){
schBasePointList = pointMapper.findPointByRegion(regionCode2, "1");
for (int i = schBasePointList.size() - 1; i >= 0; i--) {
SchBasePoint temp = schBasePointList.get(i);
//三拖一起放,如果不是01结尾直接跳过
if(!temp.getPoint_code().endsWith("01")){
continue;
}
if (temp.getVehicle_qty() == 1 &&
ObjectUtil.isEmpty(temp.getIng_task_code())) {
if (schBasePoint != null) {
log.info("空固化架放货找到当前点位有货:{},取上一个空位:{}", temp.getPoint_code(), schBasePoint.getPoint_code());
} else {
log.info("当前区域:" + regionCode + "所有点位均已放满,暂时跳过");
}
break;
}
schBasePoint = temp;
}
}
} else {
for (int i = schBasePointList.size() - 1; i >= 0; i--) {
SchBasePoint temp = schBasePointList.get(i);
@ -181,11 +205,18 @@ public class KGHJRKTask extends AbstractTask {
if (status.equals(TaskStatus.FINISHED)) { // 完成
// 终点解锁,库存增加
endPointObj.setIng_task_code("");
//正极板对接位通过plc信号同步,任务完成不增加
// if(!"ZJBKGHJDJW".equals(startPointObj.getRegion_code())) {
endPointObj.setVehicle_qty(startPointObj.getVehicle_qty() + 1);
// }
endPointObj.setVehicle_qty(1);
pointService.update(endPointObj);
if("HCQ7".equals(endPointObj.getRegion_code())){
endPointObj = pointService.getById(endPoint.substring(0,endPoint.length()-1)+"2");
endPointObj.setIng_task_code("");
endPointObj.setVehicle_qty(1);
pointService.update(endPointObj);
endPointObj = pointService.getById(endPoint.substring(0,endPoint.length()-1)+"3");
endPointObj.setIng_task_code("");
endPointObj.setVehicle_qty(1);
pointService.update(endPointObj);
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());

26
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java

@ -113,15 +113,39 @@ public class TBXBKJTask extends AbstractTask {
*/
private SchBasePoint findNextPoint(SchBasePoint startPoint,SchBaseTask task) {
String regionCode = null;
String regionCode2 = null;
if ("TBX1".equals(startPoint.getRegion_code())) {
//TBX1找A区
regionCode = "HCQ1";
regionCode = "HCQ7";
regionCode2 ="HCQ1";
} else if ("TBX2".equals(startPoint.getRegion_code())) {
//TBX2找B区
regionCode = "HCQ5";
}
SchBasePoint temp = null;
if(ObjectUtil.isNotEmpty(regionCode2)){
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode2, "1");
for (int i = schBasePointList.size() - 1; i >= 0; i--) {
SchBasePoint schBasePoint = schBasePointList.get(i);
//如果当前任务已锁定则直接返回
if(task.getTask_code().equals(schBasePoint.getIng_task_code())){
return schBasePoint;
}
if (schBasePoint.getVehicle_qty() > 0 &&
(ObjectUtil.isEmpty(schBasePoint.getIng_task_code()))) {
if (temp == null ||
schBasePoint.getPoint_code().startsWith(temp.getPoint_code().substring(0, temp.getPoint_code().length() - 2))
&&schBasePoint.getPoint_code().compareTo(temp.getPoint_code())>0){
temp=schBasePoint;
log.info("涂板线补空架找到当前符合条件的点位{}", schBasePoint.getPoint_code());
}
}
}
if(temp!=null){
return temp;
}
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode, "1");
for (SchBasePoint schBasePoint : schBasePointList) {
//如果当前任务已锁定则直接返回

Loading…
Cancel
Save