diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java
index 25cbc41..171c793 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java
@@ -25,7 +25,9 @@ public enum DriverTypeEnum {
AGV_NDC_TWO(8, "agv_ndc_two", "NDC2楼AGV", "agv"),
- XGAGV(9, "xg_agv", "xg_agv", "agv");
+ XGAGV(9, "xg_agv", "xg_agv", "agv"),
+
+ AUTODOOR(10, "standard_autodoor", "标准版-自动门", "autodoor");
//驱动索引
private int index;
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java
index 192cfa6..fa681a3 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/RequestMethodEnum.java
@@ -11,7 +11,8 @@ import com.alibaba.fastjson.JSONObject;
*/
public enum RequestMethodEnum {
apply_mjxl(1, "MJXLTask", "涂板线满架下料","1"),
- feedback_task_status(2, "feedback_task_status", "反馈任务状态","1");
+ feedback_task_status(2, "feedback_task_status", "反馈任务状态","1"),
+ apply_bpsl(3, "BPSLTask", "包片上料","1");
//驱动索引
diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java
index 1aca9c4..8a30c13 100644
--- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java
+++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/standard_inspect_site/StandardInspectSiteDeviceDriver.java
@@ -446,6 +446,9 @@ public class StandardInspectSiteDeviceDriver extends AbstractOpcDeviceDriver imp
if (devicecode.startsWith("TBX")) {
request.setRequest_medthod_code(RequestMethodEnum.apply_mjxl.getCode());
request.setRequest_medthod_name(RequestMethodEnum.apply_mjxl.getName());
+ }else if(devicecode.startsWith("BP")){
+ request.setRequest_medthod_code(RequestMethodEnum.apply_bpsl.getCode());
+ request.setRequest_medthod_name(RequestMethodEnum.apply_bpsl.getName());
}
String resp = acsToWmsService.applyTask(request);
JSONObject res_jo = JSONObject.parseObject(resp);
diff --git a/acs/nladmin-ui/src/views/acs/device/config.vue b/acs/nladmin-ui/src/views/acs/device/config.vue
index 4f95dc4..91a8fc8 100644
--- a/acs/nladmin-ui/src/views/acs/device/config.vue
+++ b/acs/nladmin-ui/src/views/acs/device/config.vue
@@ -73,6 +73,7 @@
import crud from '@/mixins/crud'
import { get, selectDriverCodeList } from '@/api/acs/device/driverConfig'
import { getDicts } from '@/views/system/dict/dict'
+import standard_autodoor from '@/views/acs/device/driver/standard_autodoor'
import standard_inspect_site from './driver/standard_inspect_site'
import standard_ordinary_site from './driver/standard_ordinary_site'
import standard_storage from '@/views/acs/device/driver/standard_storage'
@@ -88,9 +89,11 @@ import agv_ndc_one from '@/views/acs/device/driver/agv/agv_ndc_one'
import agv_ndc_two from '@/views/acs/device/driver/agv/agv_ndc_two'
import xg_agv from '@/views/acs/device/driver/agv/xg_agv'
+
export default {
name: 'DeviceConfig',
components: {
+ standard_autodoor,
standard_ordinary_site,
standard_inspect_site,
standard_storage,
diff --git a/acs/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue b/acs/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue
new file mode 100644
index 0000000..41e2f46
--- /dev/null
+++ b/acs/nladmin-ui/src/views/acs/device/driver/standard_autodoor.vue
@@ -0,0 +1,352 @@
+
+
+
+
+
+
+ 设备协议:
+
+
+
+
+ OpcServer:
+
+
+
+
+
+ PLC:
+
+
+
+
+
+
+
+
+
+
+ 输送系统:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PLC读取字段:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 测试读
+
+
+
+
+
+
+
+
+
+
+
+ PLC写入字段:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 测试写
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
+
+
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
index 147429b..8845fb6 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/BPSLTask.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -19,6 +20,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch.task_manage.AbstractTask;
+import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
@@ -58,7 +60,9 @@ public class BPSLTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
@@ -69,72 +73,64 @@ public class BPSLTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
+ // 找起点
+ SchBasePoint nextPoint = pointService.getOne(new LambdaQueryWrapper()
+ .eq(SchBasePoint::getPoint_code, task.getPoint_code2()));
String extGroupData = task.getExt_group_data();
JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
+ String materialType = jsonObject.getString("material_type");
+ SchBasePoint point = findNextPoint(jsonObject);
if (ObjectUtil.isEmpty(point)) {
task.setRemark("未找到所需点位!");
taskService.update(task);
// 消息通知
+ log.info("包片上料未找到当前符合条件的点位materialType:{},",materialType);
continue;
}
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
+ // 设置起点并修改创建成功状态
+ task.setPoint_code1(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
taskService.update(task);
+ //发起任务时先把点位占用,防止发起重复任务
point.setIng_task_code(task.getTask_code());
+ point.setVehicle_qty(point.getVehicle_qty() - 1);
+ point.setVehicle_type(materialType);
pointService.update(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
/**
- * 判断是否加急:是->入窑口,否->双层缓存线
+ * 判断目标点位
+ * 从10-1查找可以物料一致且有货的点位
*
- * @param nextRegionStr
* @param extGroupData
* @return
*/
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
+ private SchBasePoint findNextPoint(JSONObject extGroupData) {
+ String regionCode = "HCQ1";
+ String materialType = extGroupData.getString("material_type");
+ List schBasePointList = pointMapper.findPointByRegion(regionCode,"2");
+ for(int i=schBasePointList.size()-1;i>=0;i--){
+ SchBasePoint schBasePoint=schBasePointList.get(i);
+ if (schBasePoint.getVehicle_qty()!=0
+ &&ObjectUtil.isEmpty(schBasePoint.getIng_task_code())
+ &&(ObjectUtil.isEmpty(schBasePoint.getVehicle_type())||materialType.equals(schBasePoint.getVehicle_type()))){
+ log.info("包片上料任务找到当前符合条件的缓存区位置{}",schBasePoint.getPoint_code());
+ return schBasePoint;
+ }
}
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+ return null;
}
+ /**
+ * 1.取货完毕后起点减少最后一份组盘,,并且该组盘视为已结束
+ * 2.包片机LMS不记录点位信息,由人工对组盘进行操作
+ */
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
@@ -146,18 +142,6 @@ public class BPSLTask extends AbstractTask {
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException("该任务已取消!");
}
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
@@ -168,46 +152,40 @@ public class BPSLTask extends AbstractTask {
taskObj.setRemark("执行中");
}
if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
+ List vehicleCodeList = Arrays.stream(startPointObj.getVehicle_code().split(",")).collect(Collectors.toList());
+ String vehicleCode=vehicleCodeList.get(vehicleCodeList.size()-1);
+ SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper()
+ .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
+ .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
+ GroupBindMaterialStatusEnum.BOUND.getValue()));
+ if (ObjectUtil.isEmpty(one)) {
+ throw new BadRequestException(vehicleCode + " => " + startPointObj.getVehicle_type() + "的组盘信息未找到");
}
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
+ one.setTask_code(taskObj.getTask_code());
+ one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
+ one.setPoint_name(endPointObj.getPoint_name());
+ one.setMove_way(one.getMove_way()==null?"":(one.getMove_way() + " -> ") + endPointObj.getPoint_code());
+ one.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
+ one.setUpdate_id(GeneralDefinition.ACS_ID);
+ one.setUpdate_name(GeneralDefinition.ACS_NAME);
+ one.setUpdate_time(DateUtil.now());
+ vehiclematerialgroupService.updateById(one);
+ // 起点清空
+ if (vehicleCodeList.size()==1) {
+ startPointObj.setVehicle_code("");
+ }else{
+ StringBuilder vehicle_code=new StringBuilder();
+ for(int i=0;i<=vehicleCodeList.size()-2;i++){
+ vehicle_code.append(vehicleCodeList.get(i)).append(',');
+ }
+ startPointObj.setVehicle_code(vehicle_code.toString());
+ }
+ startPointObj.setIng_task_code("");
+ startPointObj.setUpdate_time(DateUtil.now());
+ pointService.updateById(startPointObj);
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
+ taskObj.setGroup_id(one.getGroup_id());
taskObj.setRemark("任务完成");
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
@@ -216,6 +194,12 @@ public class BPSLTask extends AbstractTask {
endPointObj.setIng_task_code("");
pointService.update(endPointObj);
}
+ // 起点解锁
+ if (ObjectUtil.isNotEmpty(startPointObj)) {
+ startPointObj.setIng_task_code("");
+ startPointObj.setVehicle_qty(startPointObj.getVehicle_qty()+1);
+ pointService.update(endPointObj);
+ }
taskObj.setRemark("任务取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java
index a7811f0..2a72516 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/KGHJRKTask.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -58,168 +59,24 @@ public class KGHJRKTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
- // 获取任务
- List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
- // 配置信息
- SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
- .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
- for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
- if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
- // 消息通知
- continue;
- }
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
- task.setTask_status(TaskStatus.CREATED.getCode());
- task.setRemark("");
- taskService.update(task);
- point.setIng_task_code(task.getTask_code());
- pointService.update(point);
-
- //下发
-// this.renotifyAcs(task);
- }
}
- /**
- * 判断是否加急:是->入窑口,否->双层缓存线
- *
- * @param nextRegionStr
- * @param extGroupData
- * @return
- */
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
- }
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+
+ private SchBasePoint findNextPoint(SchBasePoint startPoint) {
+ return null;
}
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
- // 校验任务
- SchBaseTask taskObj = taskService.getById(task_code);
- if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
- throw new BadRequestException("该任务已完成!");
- }
- if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
- throw new BadRequestException("该任务已取消!");
- }
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
- String startPoint = taskObj.getPoint_code1(); // 获取起点
- String endPoint = taskObj.getPoint_code2(); // 获取终点
- SchBasePoint startPointObj = pointService.getById(startPoint);
- SchBasePoint endPointObj = pointService.getById(endPoint);
- // 根据传来的类型去对任务进行操作
- if (status.equals(TaskStatus.EXECUTING)) { // 执行中
- taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
- taskObj.setRemark("执行中");
- }
- if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
- }
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
- // 任务完成
- taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
- taskObj.setRemark("任务完成");
- }
- if (status.equals(TaskStatus.CANCELED)) { // 取消
- // 终点解锁
- if (ObjectUtil.isNotEmpty(endPointObj)) {
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- }
- taskObj.setRemark("任务取消");
- taskObj.setTask_status(TaskStatus.CANCELED.getCode());
- }
- taskService.update(taskObj);
}
@Override
@@ -231,4 +88,4 @@ public class KGHJRKTask extends AbstractTask {
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
-}
+}
\ No newline at end of file
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
index c1190a8..d9a42d0 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/MJXLTask.java
@@ -78,7 +78,7 @@ public class MJXLTask extends AbstractTask {
task.setRemark("未找到所需点位!");
taskService.update(task);
// 消息通知
- log.info("未找到当前符合条件的点位materialType:{},",materialType);
+ log.info("满架下料未找到当前符合条件的点位materialType:{},",materialType);
continue;
}
// 设置终点并修改创建成功状态
@@ -206,6 +206,7 @@ public class MJXLTask extends AbstractTask {
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
groupEntity.setIs_delete(false);
+ groupEntity.setMove_way(startPoint);
vehiclematerialgroupService.save(groupEntity);
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
index 75752a2..8b4315f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/TBXBKJTask.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -58,168 +59,24 @@ public class TBXBKJTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
- // 获取任务
- List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
- // 配置信息
- SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
- .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
- for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
- if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
- // 消息通知
- continue;
- }
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
- task.setTask_status(TaskStatus.CREATED.getCode());
- task.setRemark("");
- taskService.update(task);
- point.setIng_task_code(task.getTask_code());
- pointService.update(point);
-
- //下发
-// this.renotifyAcs(task);
- }
}
- /**
- * 判断是否加急:是->入窑口,否->双层缓存线
- *
- * @param nextRegionStr
- * @param extGroupData
- * @return
- */
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
- }
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+
+ private SchBasePoint findNextPoint(SchBasePoint startPoint) {
+ return null;
}
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
- // 校验任务
- SchBaseTask taskObj = taskService.getById(task_code);
- if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
- throw new BadRequestException("该任务已完成!");
- }
- if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
- throw new BadRequestException("该任务已取消!");
- }
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
- String startPoint = taskObj.getPoint_code1(); // 获取起点
- String endPoint = taskObj.getPoint_code2(); // 获取终点
- SchBasePoint startPointObj = pointService.getById(startPoint);
- SchBasePoint endPointObj = pointService.getById(endPoint);
- // 根据传来的类型去对任务进行操作
- if (status.equals(TaskStatus.EXECUTING)) { // 执行中
- taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
- taskObj.setRemark("执行中");
- }
- if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
- }
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
- // 任务完成
- taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
- taskObj.setRemark("任务完成");
- }
- if (status.equals(TaskStatus.CANCELED)) { // 取消
- // 终点解锁
- if (ObjectUtil.isNotEmpty(endPointObj)) {
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- }
- taskObj.setRemark("任务取消");
- taskObj.setTask_status(TaskStatus.CANCELED.getCode());
- }
- taskService.update(taskObj);
}
@Override
@@ -231,4 +88,4 @@ public class TBXBKJTask extends AbstractTask {
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
-}
+}
\ No newline at end of file
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java
index 3316762..9f950f2 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/XSCKTask.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -58,168 +59,24 @@ public class XSCKTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
- // 获取任务
- List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
- // 配置信息
- SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
- .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
- for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
- if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
- // 消息通知
- continue;
- }
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
- task.setTask_status(TaskStatus.CREATED.getCode());
- task.setRemark("");
- taskService.update(task);
- point.setIng_task_code(task.getTask_code());
- pointService.update(point);
-
- //下发
-// this.renotifyAcs(task);
- }
}
- /**
- * 判断是否加急:是->入窑口,否->双层缓存线
- *
- * @param nextRegionStr
- * @param extGroupData
- * @return
- */
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
- }
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+
+ private SchBasePoint findNextPoint(SchBasePoint startPoint) {
+ return null;
}
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
- // 校验任务
- SchBaseTask taskObj = taskService.getById(task_code);
- if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
- throw new BadRequestException("该任务已完成!");
- }
- if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
- throw new BadRequestException("该任务已取消!");
- }
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
- String startPoint = taskObj.getPoint_code1(); // 获取起点
- String endPoint = taskObj.getPoint_code2(); // 获取终点
- SchBasePoint startPointObj = pointService.getById(startPoint);
- SchBasePoint endPointObj = pointService.getById(endPoint);
- // 根据传来的类型去对任务进行操作
- if (status.equals(TaskStatus.EXECUTING)) { // 执行中
- taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
- taskObj.setRemark("执行中");
- }
- if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
- }
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
- // 任务完成
- taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
- taskObj.setRemark("任务完成");
- }
- if (status.equals(TaskStatus.CANCELED)) { // 取消
- // 终点解锁
- if (ObjectUtil.isNotEmpty(endPointObj)) {
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- }
- taskObj.setRemark("任务取消");
- taskObj.setTask_status(TaskStatus.CANCELED.getCode());
- }
- taskService.update(taskObj);
}
@Override
@@ -231,4 +88,4 @@ public class XSCKTask extends AbstractTask {
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
-}
+}
\ No newline at end of file
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java
index e90d441..0ae7ac9 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ZJBZKDDTask.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -58,168 +59,24 @@ public class ZJBZKDDTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
- // 获取任务
- List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
- // 配置信息
- SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
- .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
- for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
- if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
- // 消息通知
- continue;
- }
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
- task.setTask_status(TaskStatus.CREATED.getCode());
- task.setRemark("");
- taskService.update(task);
- point.setIng_task_code(task.getTask_code());
- pointService.update(point);
-
- //下发
-// this.renotifyAcs(task);
- }
}
- /**
- * 判断是否加急:是->入窑口,否->双层缓存线
- *
- * @param nextRegionStr
- * @param extGroupData
- * @return
- */
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
- }
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+
+ private SchBasePoint findNextPoint(SchBasePoint startPoint) {
+ return null;
}
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
- // 校验任务
- SchBaseTask taskObj = taskService.getById(task_code);
- if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
- throw new BadRequestException("该任务已完成!");
- }
- if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
- throw new BadRequestException("该任务已取消!");
- }
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
- String startPoint = taskObj.getPoint_code1(); // 获取起点
- String endPoint = taskObj.getPoint_code2(); // 获取终点
- SchBasePoint startPointObj = pointService.getById(startPoint);
- SchBasePoint endPointObj = pointService.getById(endPoint);
- // 根据传来的类型去对任务进行操作
- if (status.equals(TaskStatus.EXECUTING)) { // 执行中
- taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
- taskObj.setRemark("执行中");
- }
- if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
- }
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
- // 任务完成
- taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
- taskObj.setRemark("任务完成");
- }
- if (status.equals(TaskStatus.CANCELED)) { // 取消
- // 终点解锁
- if (ObjectUtil.isNotEmpty(endPointObj)) {
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- }
- taskObj.setRemark("任务取消");
- taskObj.setTask_status(TaskStatus.CANCELED.getCode());
- }
- taskService.update(taskObj);
}
@Override
@@ -231,4 +88,4 @@ public class ZJBZKDDTask extends AbstractTask {
public void cancel(String task_code) {
this.updateStatus(task_code, TaskStatus.CANCELED);
}
-}
+}
\ No newline at end of file
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java
index c2d526a..8060f56 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSFMTask.java
@@ -242,7 +242,7 @@ public class GHSFMTask extends AbstractTask {
one.setTask_code(taskObj.getTask_code());
one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
one.setPoint_name(endPointObj.getPoint_name());
- one.setMove_way(one.getMove_way() + " -> " + endPointObj.getPoint_code());
+ one.setMove_way(one.getMove_way()==null?"":(one.getMove_way() + " -> ") + endPointObj.getPoint_code());
one.setUpdate_id(GeneralDefinition.ACS_ID);
one.setUpdate_name(GeneralDefinition.ACS_NAME);
one.setUpdate_time(DateUtil.now());
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
index de04a1b..3506ab8 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/ghs/GHSQHTask.java
@@ -1,6 +1,7 @@
package org.nl.wms.sch.task_manage.task.tasks.ghs;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
@@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
+import org.nl.wms.ext.service.WmsToAcsService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@@ -19,6 +21,7 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
import org.nl.wms.sch.task.service.dao.SchBaseTask;
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch.task_manage.AbstractTask;
+import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
@@ -58,83 +61,141 @@ public class GHSQHTask extends AbstractTask {
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
- private PointMapper yzMapper;
+ private PointMapper pointMapper;
+ @Autowired
+ private WmsToAcsService wmsToAcsService;
+ /**
+ * 1.扫描每个允许取货的固化室从1-10的顺序开始进行取货
+ */
@Override
// @Transactional(rollbackFor = Exception.class)
protected void create() throws BadRequestException {
- // 获取任务
- List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
- // 配置信息
- SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
- .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
- for (SchBaseTask task : tasks) {
- List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")).collect(Collectors.toList());
- // 找终点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
- SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
- if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
- // 消息通知
- continue;
- }
- // 设置终点并修改创建成功状态
- task.setPoint_code2(point.getPoint_code());
- task.setTask_status(TaskStatus.CREATED.getCode());
- task.setRemark("");
- taskService.update(task);
- point.setIng_task_code(task.getTask_code());
- pointService.update(point);
-
- //下发
-// this.renotifyAcs(task);
+ List schBasePointList = pointMapper.findPointByRegion("GHS","3");
+ if (schBasePointList.size()==0) {
+ // 消息通知
+ log.info("未找到当前符合允许取货的固化室点位,暂不生成任务");
+ return;
}
+ SchBasePoint schBasePoint=null;
+ //按顺序查找第一个符合条件的固化室位置,发起任务
+ for(SchBasePoint schBasePoint1:schBasePointList){
+ if (schBasePoint1.getVehicle_qty()==3&&ObjectUtil.isEmpty(schBasePoint1.getIng_task_code())) {
+ schBasePoint=schBasePoint1;
+ break;
+ }
+ }
+ if (ObjectUtil.isEmpty(schBasePoint)) {
+ // 消息通知
+ log.info("未找到当前符合允许取货的固化室点位,暂不生成任务");
+ return;
+ }
+ SchBasePoint nextPoint=this.findNextPoint(schBasePoint);
+ if (ObjectUtil.isEmpty(nextPoint)) {
+ // 消息通知
+ log.info("未找到当前符合允许放货的缓存点,暂不生成任务Vehicle_type:{}",schBasePoint.getVehicle_type());
+ return;
+ }
+ this.createTask(schBasePoint,nextPoint.getPoint_code());
+
}
/**
- * 判断是否加急:是->入窑口,否->双层缓存线
+ * 创建任务并下发
*
- * @param nextRegionStr
- * @param extGroupData
+ * @param schBasePoint
+ * @param endPoint
* @return
*/
- private SchBasePoint findNextPoint(List nextRegionStr, JSONObject extGroupData) {
- // 需要获取nextRegionStr
- if (nextRegionStr.size() < 2) {
- throw new BadRequestException("压制送料任务的配置文件有错!");
+ private void createTask(SchBasePoint schBasePoint,String endPoint) {
+ // 申请任务
+ SchBaseTask task = new SchBaseTask(); // 任务实体
+ String apply_point_code =schBasePoint.getPoint_code(); // 请求点
+ String config_code = "GHSQHTask";
+ // 1、校验数据
+ SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
+ .eq(SchBaseTaskconfig::getConfig_code, config_code));
+ Assert.notNull(taskConfig, "找不到配置文件,请确认[" + config_code + "]配置是否存在!");
+ // 最大任务数
+ Integer tcmn = taskConfig.getTask_create_max_num();
+ // 获取执行中的任务
+ List unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(
+ taskConfig.getConfig_code(), apply_point_code, taskConfig.getTask_direction());
+
+ Assert.isFalse(unFinishTasksByTaskConfig.size() >= tcmn,
+ "该点位申请的任务未完成数已超过上限,无法申请任务");
+ // 获取对接位点位对象
+ SchBasePoint pointObj = pointService.getOne(new LambdaQueryWrapper()
+ .eq(SchBasePoint::getPoint_code, apply_point_code));
+ // 校验是否需要自动agv
+ if (!pointObj.getIs_auto()) {
+ // 如果不需要自动,则不创建任务
+ return;
}
- String regionCode = nextRegionStr.get(0);
- // 当前设备的工单
- String workorderCode = extGroupData.getString("workorder_code");
- PdmBdWorkorder one = ObjectUtil.isNotEmpty(workorderCode)
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
- : null;
- if (one == null) {
- throw new BadRequestException("压制机的工单不能为空!");
- }
- // 判断是否加急,加急则去窑口,不加急就是去双层缓存输送线
- if (one.getIs_urgent()) {
- regionCode = nextRegionStr.get(1); // 去窑区
- }
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
- // ??
-// LambdaQueryWrapper lam = new LambdaQueryWrapper<>();
-// lam.eq(SchBasePoint::getRegion_code, regionCode)
-// .eq(SchBasePoint::getPoint_type, ENTRANCE)
-// .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
-// .or()
-// .eq(SchBasePoint::getIng_task_code, ""))
-// .eq(SchBasePoint::getIs_used, true);
-// List schBasePoints = pointService.list(lam);
-// return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
+ // 2、创建申请任务
+ task.setConfig_code(config_code);
+ task.setCreate_mode(GeneralDefinition.ACS_CREATION);
+ task.setVehicle_code(schBasePoint.getVehicle_code());
+ task.setVehicle_qty(schBasePoint.getVehicle_qty());
+ task.setTask_status(TaskStatus.APPLY.getCode());
+ task.setWorkshop_code(taskConfig.getWorkshop_code()); // 车间编码
+ task.setPoint_code2(endPoint);
+ task.setTask_status(TaskStatus.CREATED.getCode());
+ task.setRemark("");
+ // 设置起/终点
+ this.setTaskPoint(taskConfig, task, apply_point_code);
+ taskService.create(task);
+
+ //下发
+ this.renotifyAcs(task);
}
+ /**
+ * 1.根据当前固化室所处区域,判断到哪个区的缓存位
+ * 2.从1010列到0101列倒叙判断当前列物料类型是否与起点一致且存在空位
+ * 3.将当前点位设置为目标点
+ * 4.如果没有符合条件的点位,跳过执行暂时等待
+ */
+ private SchBasePoint findNextPoint(SchBasePoint startPoint) {
+ String regionCode = null;
+ String materialType = startPoint.getVehicle_type();
+ if ("GHS1".equals(startPoint.getRegion_code())) {
+ //HCQ1找A区
+ regionCode = "HCQ1";
+
+ } else if ("GHS2".equals(startPoint.getRegion_code())) {
+ //GHS2找B区
+ regionCode = "HCQ2";
+ }
+ List schBasePointList = pointMapper.findPointByRegion(regionCode,"2");
+ for(int i=schBasePointList.size()-1;i>=0;i--){
+ SchBasePoint schBasePoint=schBasePointList.get(i);
+ SchBasePoint temp=null;
+ if (schBasePoint.getVehicle_qty()==0
+ &&ObjectUtil.isEmpty(schBasePoint.getIng_task_code())
+ &&(ObjectUtil.isEmpty(schBasePoint.getVehicle_type())||materialType.equals(schBasePoint.getVehicle_type()))){
+ //发现有空位时暂存当前位置,检查当前列前面是否存在已放货位置,找最前面无货的位置
+ //如果当列其他位置均已放满,则继续找下一列
+ List tempList = pointMapper.findPointByParentPoint(schBasePoint.getParent_point_code());
+ for(SchBasePoint tempPoint:tempList){
+ if(tempPoint.getVehicle_qty()!=0||ObjectUtil.isNotEmpty(schBasePoint.getIng_task_code())){
+ if(temp!=null){
+ return temp;
+ }
+ temp=tempPoint;
+ }
+ }
+ log.info("固化室取货任务找到当前符合条件的缓存区位置{}",schBasePoint.getPoint_code());
+ return temp;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 1.如果起点点位为10结尾视为最后该固化室最后一个任务,取完后通知acs取货完毕
+ */
@Override
// @Transactional(rollbackFor = Exception.class)
protected void updateStatus(String task_code, TaskStatus status) {
@@ -146,18 +207,6 @@ public class GHSQHTask extends AbstractTask {
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException("该任务已取消!");
}
- // 获取参数
- JSONObject extGroupData = ObjectUtil.isNotEmpty(taskObj.getExt_group_data())
- ? JSONObject.parseObject(taskObj.getExt_group_data())
- : null;
- // 载具编码:没有就创建一个
- String vehicle_code = ObjectUtil.isNotEmpty(taskObj.getVehicle_code())
- ? taskObj.getVehicle_code()
- : IdUtil.getSnowflake(1, 1).nextIdStr();
- PdmBdWorkorder workorderCode = ObjectUtil.isNotEmpty(extGroupData.getString("workorder_code"))
- ? workorderService.getOne(new LambdaQueryWrapper()
- .eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
- : null;
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
@@ -168,47 +217,54 @@ public class GHSQHTask extends AbstractTask {
taskObj.setRemark("执行中");
}
if (status.equals(TaskStatus.FINISHED)) { // 完成
+ StringBuilder group_id= new StringBuilder();
+ // 终点解锁
+ endPointObj.setIng_task_code("");
+ endPointObj.setVehicle_code(startPointObj.getVehicle_code());
+ endPointObj.setVehicle_type(startPointObj.getVehicle_type());
+ endPointObj.setVehicle_code(startPointObj.getVehicle_code());
+ endPointObj.setVehicle_qty(startPointObj.getVehicle_qty());
+ endPointObj.setUpdate_time(DateUtil.now());
+ pointService.update(endPointObj);
+ List vehicleCodeList = Arrays.stream(startPointObj.getVehicle_code().split(",")).collect(Collectors.toList());
+ for(String vehicleCode:vehicleCodeList) {
+ SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getOne(new LambdaQueryWrapper()
+ .eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
+ .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
+ GroupBindMaterialStatusEnum.BOUND.getValue()));
+ if (ObjectUtil.isEmpty(one)) {
+ throw new BadRequestException(vehicleCode + " => " + startPointObj.getVehicle_type() + "的组盘信息未找到");
+ }
+ one.setTask_code(taskObj.getTask_code());
+ one.setPoint_code(endPointObj.getPoint_code()); // 当前位置
+ one.setPoint_name(endPointObj.getPoint_name());
+ one.setMove_way(one.getMove_way()==null?"":(one.getMove_way() + " -> ") + endPointObj.getPoint_code());
+ one.setUpdate_id(GeneralDefinition.ACS_ID);
+ one.setUpdate_name(GeneralDefinition.ACS_NAME);
+ one.setUpdate_time(DateUtil.now());
+ vehiclematerialgroupService.updateById(one);
+ group_id.append(one.getGroup_id()).append(',');
+ }
// 起点清空
if (ObjectUtil.isNotEmpty(startPointObj)) {
PointUtils.clearPoint(startPointObj);
}
- // 终点解锁
- endPointObj.setIng_task_code("");
- pointService.update(endPointObj);
- // 要把数据存到组盘表 -> 改造公共方法,返回id
- SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
- groupEntity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
- groupEntity.setCreate_id("2");
- groupEntity.setCreate_name("ACS");
- groupEntity.setCreate_time(DateUtil.now());
- groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getMaterial_id()
- : "");
- groupEntity.setStanding_time(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getStanding_time()
- : 0);
- groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(extGroupData)
- ? extGroupData.getBigDecimal("material_qty")
- : BigDecimal.valueOf(0));
- groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(workorderCode)
- ? workorderCode.getWorkorder_code()
- : "");
- groupEntity.setVehicle_code(vehicle_code);
- groupEntity.setVehicle_type(taskObj.getVehicle_type());
- groupEntity.setPoint_code(startPoint);
- groupEntity.setPoint_name(startPointObj.getPoint_name());
- groupEntity.setPcsn( DateUtil.format(DateUtil.date(), "yyyyMMdd"));
- groupEntity.setInstorage_time(DateUtil.now());
- groupEntity.setTask_code(taskObj.getTask_code());
- groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); // 绑定
- groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
- groupEntity.setIs_delete(false);
- vehiclematerialgroupService.save(groupEntity);
-
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setGroup_id(groupEntity.getGroup_id());
+ taskObj.setGroup_id(group_id.toString());
taskObj.setRemark("任务完成");
+
+ //如果起点点位为10结尾视为最后该固化室最后一个任务,取完后通知acs取货完毕
+ if(taskObj.getPoint_code1().endsWith("10")) {
+ String middle = taskObj.getPoint_code1().substring(taskObj.getPoint_code1().length() - 4, taskObj.getPoint_code1().length() - 2);
+ //通知acs已经放满,固化室可以进行固化
+ String device_code = "ZDM" + middle;
+ log.info("当前固化室已经全部取完,通知固化室的自动门{}取货完毕", device_code);
+ JSONObject map = new JSONObject();
+ map.put("device_code", device_code);
+ map.put("type", "2");
+ wmsToAcsService.notifyAcs(map);
+ }
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
// 终点解锁
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java
index 5322087..9735d4c 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.java
@@ -11,8 +11,9 @@ import java.util.List;
* @Date: 2023/10/9
*/
public interface PointMapper {
- List findPointByRegion(String regionCode,String point_state);
- List findPointByPoint(String pointCode);
+ List findPointByRegion(String regionCode,String point_status);
+
+ List findPointByParentPoint(String pointCode);
void updatePointStatus(String device_code,String state);
List findPointForYZSL(JSONObject param);
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml
index 56f464d..c1e408e 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/mapper/PointMapper.xml
@@ -7,16 +7,16 @@
FROM
`sch_base_point` p
WHERE p.region_code like CONCAT('%', #{regionCode}, '%')
- and p.point_state = #{point_state}
+ and p.point_status = #{point_status}
ORDER BY region_code
-