diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls
index 160c0df..d3e88f6 100644
Binary files a/lms/nladmin-system/doc/wms.xls and b/lms/nladmin-system/doc/wms.xls differ
diff --git a/lms/nladmin-system/nlsso-server/pom.xml b/lms/nladmin-system/nlsso-server/pom.xml
index e10f83d..b2c1157 100644
--- a/lms/nladmin-system/nlsso-server/pom.xml
+++ b/lms/nladmin-system/nlsso-server/pom.xml
@@ -451,6 +451,12 @@
lucene-queryparser
${lucene.version}
+
+
+ org.redisson
+ redisson-spring-boot-starter
+ 3.16.4
+
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java
index 31e53dc..7d147fa 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/service/dao/MdBaseMaterial.java
@@ -26,9 +26,15 @@ public class MdBaseMaterial implements Serializable {
@ApiModelProperty(value = "物料标识")
private String material_id;
- @ApiModelProperty(value = "物料编码")
+ @ApiModelProperty(value = "成品物料编码")
private String material_code;
+ @ApiModelProperty(value = "半成品物料编码")
+ private String half_material_code;
+
+ @ApiModelProperty(value = "原材料物料编码")
+ private String raw_material_code;
+
@ApiModelProperty(value = "物料名称 ")
private String material_name;
@@ -41,6 +47,9 @@ public class MdBaseMaterial implements Serializable {
@ApiModelProperty(value = "静置时间(分钟)")
private Integer standing_time;
+ @ApiModelProperty(value = "冷却时间(分钟)")
+ private Integer cooling_time;
+
@ApiModelProperty(value = "车间编码")
private String workshop_code;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java
index 9148f27..0b3b05c 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/SignalData.java
@@ -10,9 +10,9 @@ import lombok.Data;
@Data
public class SignalData {
- private String code;
+ private String code; // to_command
- private String value;
+ private String value; // 1
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
index 19cc3ba..beeb436 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
@@ -47,6 +48,8 @@ import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.CommonUtils;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -54,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
* @Author: lyd
@@ -87,6 +91,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
private IMdBaseMaterialService materialService;
@Autowired
private IPdmBdProductionProcessTrackingService processTrackingService;
+ @Autowired
+ private RedissonClient redissonClient;
@Override
public BaseResponse acsApply(JSONObject param) {
@@ -116,86 +122,171 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return result;
}
- /** 任务:申请补满料盅托盘(叫料) */
+ /**
+ * 任务:申请补满料盅托盘(叫料)
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
+ @SneakyThrows
public ApplyTaskResponse applyPutFullVehicle(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
- SchBasePoint basePoint = pointService.getById(deviceCode);
- if (ObjectUtil.isEmpty(basePoint)) {
- throw new BadRequestException("点位错误!");
- }
String requestNo = param.getString("requestNo");
- String configCode = basePoint.getRegion_code() + "QLTask";
- // 组织参数
- param.put("config_code", configCode);
- taskService.apply(param);
+ RLock lock = redissonClient.getLock(deviceCode);
+ boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
+ try {
+ if (tryLock) {
+ SchBasePoint basePoint = pointService.getById(deviceCode);
+ if (ObjectUtil.isEmpty(basePoint)) {
+ throw new BadRequestException("点位错误!");
+ }
+ String configCode = basePoint.getRegion_code() + "QLTask";
+ // 组织参数
+ param.put("config_code", configCode);
+ taskService.apply(param);
+ }
+ } finally {
+ if (tryLock) {
+ lock.unlock();
+ }
+ }
return ApplyTaskResponse.responseOk(requestNo);
}
- /** 任务:申请补空料盅托盘(叫空盘) */
+ /**
+ * 任务:申请补空料盅托盘(叫空盘)
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
+ @SneakyThrows
public ApplyTaskResponse applyPutEmptyVehicle(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
- SchBasePoint basePoint = pointService.getById(deviceCode);
- if (ObjectUtil.isEmpty(basePoint)) {
- throw new BadRequestException("点位错误!");
- }
String requestNo = param.getString("requestNo");
- String configCode = basePoint.getRegion_code() + "QKTask";
- // 组织参数
- param.put("config_code", configCode);
- taskService.apply(param);
+ RLock lock = redissonClient.getLock(deviceCode);
+ boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
+ try {
+ if (tryLock) {
+ SchBasePoint basePoint = pointService.getById(deviceCode);
+ if (ObjectUtil.isEmpty(basePoint)) {
+ throw new BadRequestException("点位错误!");
+ }
+ String configCode = basePoint.getRegion_code() + "QKTask";
+ // 组织参数
+ param.put("config_code", configCode);
+ taskService.apply(param);
+ }
+ } finally {
+ if (tryLock) {
+ lock.unlock();
+ }
+ }
return ApplyTaskResponse.responseOk(requestNo);
}
- /** 任务:申请取走空料盅托盘(送空盘) */
+ /**
+ * 任务:申请取走空料盅托盘(送空盘)
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
+ @SneakyThrows
public ApplyTaskResponse applyTakeEmptyVehicle(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
- SchBasePoint basePoint = pointService.getById(deviceCode);
- if (ObjectUtil.isEmpty(basePoint)) {
- throw new BadRequestException("点位错误!");
- }
String requestNo = param.getString("requestNo");
- String configCode = basePoint.getRegion_code() + "SKTask";
- // 组织参数
- param.put("config_code", configCode);
- taskService.apply(param);
+ RLock lock = redissonClient.getLock(deviceCode);
+ boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
+ try {
+ if (tryLock) {
+ SchBasePoint basePoint = pointService.getById(deviceCode);
+ if (ObjectUtil.isEmpty(basePoint)) {
+ throw new BadRequestException("点位错误!");
+ }
+ String configCode = basePoint.getRegion_code() + "SKTask";
+ // 组织参数
+ param.put("config_code", configCode);
+ taskService.apply(param);
+ }
+ } finally {
+ if (tryLock) {
+ lock.unlock();
+ }
+ }
return ApplyTaskResponse.responseOk(requestNo);
}
- /** 任务:申请取走满料盅托盘(入库) */
+ /**
+ * 任务:申请取走满料盅托盘(入库)
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
+ @SneakyThrows
public ApplyTaskResponse applyTakeFullVehicle(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
- SchBasePoint basePoint = pointService.getById(deviceCode);
- if (ObjectUtil.isEmpty(basePoint)) {
- throw new BadRequestException("点位错误!");
- }
String requestNo = param.getString("requestNo");
- String configCode = basePoint.getRegion_code() + "MLTask";
- // 组织参数
- param.put("config_code", configCode);
- taskService.apply(param);
+ RLock lock = redissonClient.getLock(deviceCode);
+ boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
+ try {
+ if (tryLock) {
+ SchBasePoint basePoint = pointService.getById(deviceCode);
+ if (ObjectUtil.isEmpty(basePoint)) {
+ throw new BadRequestException("点位错误!");
+ }
+ String configCode = basePoint.getRegion_code() + "MLTask";
+ // 组织参数
+ param.put("config_code", configCode);
+ taskService.apply(param);
+ }
+ } finally {
+ if (tryLock) {
+ lock.unlock();
+ }
+ }
return ApplyTaskResponse.responseOk(requestNo);
}
- /** 申请强制取走满料盅托盘(强制入库) */
+ /**
+ * 任务:申请强制取走满料盅托盘(强制入库)
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
+ @SneakyThrows
public ApplyTaskResponse applyForceTakeFullVehicle(JSONObject param) {
String deviceCode = param.getString("device_code");
- SchBasePoint basePoint = pointService.getById(deviceCode);
- if (ObjectUtil.isEmpty(basePoint)) {
- throw new BadRequestException("点位错误!");
- }
String requestNo = param.getString("requestNo");
- String configCode = basePoint.getRegion_code() + "QZRKTask";
- // 组织参数
- param.put("config_code", configCode);
- taskService.apply(param);
+ RLock lock = redissonClient.getLock(deviceCode);
+ boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
+ try {
+ if (tryLock) {
+ SchBasePoint basePoint = pointService.getById(deviceCode);
+ if (ObjectUtil.isEmpty(basePoint)) {
+ throw new BadRequestException("点位错误!");
+ }
+ String configCode = basePoint.getRegion_code() + "QZRKTask";
+ // 组织参数
+ param.put("config_code", configCode);
+ taskService.apply(param);
+ }
+ } finally {
+ if (tryLock) {
+ lock.unlock();
+ }
+ }
return ApplyTaskResponse.responseOk(requestNo);
}
- /** 申请强制满托入缓存 todo: 暂时 */
+ /**
+ * 任务:申请强制满托入缓存 todo: 暂时
+ * @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
+ * @param param: ApplyTaskRequest的json形式
+ * @return
+ */
public ApplyTaskResponse applyForceTakeFullVehicleInStorage(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
@@ -290,8 +381,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
case GeneralDefinition.GZY: // 如果是入窑口就是记录数据
return this.recordKilnTime(baseRequest); // 直接返回
default:
- return (ApplyTaskResponse) ApplyTaskResponse.responseError(baseRequest.getRequestNo(),
- "参数错误");
+ return (ApplyTaskResponse) ApplyTaskResponse.responseError(baseRequest.getRequestNo(),"参数错误");
}
}
@@ -384,6 +474,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* @param param
* @return
*/
+ @Deprecated
@Transactional(rollbackFor = Exception.class)
public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
String requestNo = param.getString("requestNo");
@@ -405,7 +496,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 获取原材料物料
PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
requestMaterialRecord.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr());
- requestMaterialRecord.setMaterial_id(workOrder.getRaw_material_id());
+// requestMaterialRecord.setMaterial_id(workOrder.getRaw_material_id());
requestMaterialRecord.setWorkorder_id(workOrder.getWorkorder_id());
requestMaterialRecord.setDevice_code(parentPointCode);
requestMaterialRecord.setCreate_time(DateUtil.now());
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
index c795baa..bfdfc1d 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
@@ -2,8 +2,8 @@ package org.nl.wms.ext.record.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
+import org.nl.common.domain.query.PageQuery;
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
@@ -46,5 +46,5 @@ public interface ISysInteractRecordService extends IService {
/**
* 创建记录
*/
- void saveRecord(JSONObject param, BaseResponse response, String direction);
+ void saveRecord(Object request, BaseResponse response, String direction);
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
index dab2e91..8882582 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
@@ -63,7 +63,7 @@ public class SysInteractRecordServiceImpl extends ServiceImpl
workorder_status IN
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java
index 81c4634..2439b79 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java
@@ -31,6 +31,9 @@ public class SchBaseVehiclematerialgroup implements Serializable {
@ApiModelProperty(value = "物料标识")
private String material_id;
+ @ApiModelProperty(value = "冗余-半成品/泥料")
+ private String redundance_material_code;
+
@ApiModelProperty(value = "载具类型")
private String vehicle_type;
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
index 11eb7bb..21fa657 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/GeneralDefinition.java
@@ -10,9 +10,9 @@ public class GeneralDefinition {
/** 窑自动任务开启 */
public static final String AUTO_KILN_CALL = "auto_kiln_call";
// 是否
- /**是 */
+ /**是/正确/可用... */
public static final String YES = "1";
- /** 否 */
+ /** 否/错误/不可用... */
public static final String NO = "0";
// 载具类型
/** 料盅 */
@@ -57,4 +57,9 @@ public class GeneralDefinition {
public static final String LZKLX = "LZKLX";
/** 干燥窑区域 */
public static final String GZY = "GZY";
+ // 特殊: 1-缓存输送线入口,2-缓存输送线出口,3-上输送线,4-下输送线
+ /** 上输送线 */
+ public static final String UPPER_CONVEYOR_LINE = "3";
+ /** 下输送线 */
+ public static final String LOWER_CONVEYOR_LINE = "4";
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java
index c3999e7..fd5c9a6 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/AcsUtil.java
@@ -1,13 +1,18 @@
package org.nl.wms.sch.task_manage.task;
+import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
+import org.nl.common.exception.BadRequestException;
import org.nl.config.SpringContextHolder;
+import org.nl.system.service.param.dao.Param;
import org.nl.system.service.param.impl.SysParamServiceImpl;
+import org.nl.wms.ext.record.service.ISysInteractRecordService;
+import org.nl.wms.ext.record.service.impl.SysInteractRecordServiceImpl;
import org.nl.wms.sch.task_manage.AcsTaskDto;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.springframework.http.HttpStatus;
@@ -19,7 +24,53 @@ import java.util.List;
*/
@Slf4j
public class AcsUtil {
- public static JSONObject notifyAcs(String api, List list) {
+ /**
+ * 统一多数据入口
+ * @param api
+ * @param list
+ * @return
+ * @param
+ */
+ public static JSONObject notifyAcs(String api, List list) {
+ SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
+ //判断是否连接ACS系统
+ Param isConnectAcs = sysParamService.findByCode("IS_CONNECT_ACS");
+ if (ObjectUtil.isEmpty(isConnectAcs)) {
+ throw new BadRequestException("参数表中:IS_CONNECT_ACS不存在");
+ }
+ String isConnect = isConnectAcs.getValue();
+ JSONObject result = new JSONObject();
+ if (StrUtil.equals(GeneralDefinition.NO, isConnect)) {
+ result.put("status", HttpStatus.BAD_REQUEST.value());
+ result.put("message", "未连接ACS!");
+ result.put("data", new JSONObject());
+ return result;
+ }
+ //ACS地址:127.0.0.1:8010
+ Param acsUrlObj = sysParamService.findByCode("ACS_URL");
+ if (ObjectUtil.isEmpty(acsUrlObj)) {
+ throw new BadRequestException("参数表中:ACS_URL不存在");
+ }
+ String acsUrl = acsUrlObj.getValue();
+ String url = acsUrl + api;
+ log.info("下发acs任务的参数为:{}", list.toString());
+ try {
+ String resultMsg = HttpRequest.post(url)
+ .body(String.valueOf(list))
+ .execute().body();
+ result = JSONObject.parseObject(resultMsg);
+ } catch (Exception e) {
+ String msg = e.getMessage();
+ //ConnectException: Connection refused: connect
+ //网络不通
+ log.error("连接失败:{}", msg);
+ result.put("status", HttpStatus.BAD_REQUEST);
+ result.put("message", "网络不通,操作失败!");
+ result.put("data", new JSONObject());
+ }
+ return result;
+ }
+ public static JSONObject notifyAcs(String api, T object) {
//判断是否连接ACS系统
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
JSONObject result = new JSONObject();
@@ -33,10 +84,10 @@ public class AcsUtil {
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ACS_URL").getValue();
String url = acsUrl + api;
- log.info("下发acs任务的参数为:{}", list.toString());
+ log.info("下发acs任务的参数为:{}", object.toString());
try {
String resultMsg = HttpRequest.post(url)
- .body(String.valueOf(list))
+ .body(String.valueOf(object))
.execute().body();
result = JSONObject.parseObject(resultMsg);
} catch (Exception e) {
@@ -48,6 +99,7 @@ public class AcsUtil {
result.put("message", "网络不通,操作失败!");
result.put("data", new JSONObject());
}
+ // 记录交互表
return result;
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/HLYZTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/HLYZTask.java
new file mode 100644
index 0000000..827c727
--- /dev/null
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/auto/HLYZTask.java
@@ -0,0 +1,108 @@
+//package org.nl.wms.sch.task_manage.task.tasks.auto;
+//
+//import cn.hutool.core.util.ObjectUtil;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import org.nl.common.exception.BadRequestException;
+//import org.nl.system.service.param.ISysParamService;
+//import org.nl.system.service.param.dao.Param;
+//import org.nl.wms.sch.point.service.ISchBasePointService;
+//import org.nl.wms.sch.point.service.dao.SchBasePoint;
+//import org.nl.wms.sch.task.service.ISchBaseTaskService;
+//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.task.TaskType;
+//import org.nl.wms.sch.task_manage.task.core.TaskStatus;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Arrays;
+//import java.util.List;
+//import java.util.stream.Collectors;
+//
+///**
+// * @Author: lyd
+// * @Description: 混料压制物料输送任务
+// * @Date: 2023/7/27
+// */
+//@Component
+//@TaskType("HLYZTask")
+//public class HLYZTask extends AbstractTask {
+// private static String TASK_CONFIG_CODE = "HLYZTask";
+// @Autowired
+// private ISchBasePointService pointService;
+// @Autowired
+// private ISchBaseTaskService taskService;
+// @Autowired
+// private ISchBaseTaskconfigService taskConfigService;
+// @Autowired
+// private ISysParamService paramService;
+// @Override
+// protected void create() throws BadRequestException {
+//
+// }
+//
+// @Override
+// protected void autoCreate() {
+// // 自动创建任务
+//// Param autoKilnCall = paramService.findByCode(GeneralDefinition.AUTO_KILN_CALL);
+//// if (autoKilnCall.getValue().equals(GeneralDefinition.NO)) {
+//// return;
+//// }
+// // 判断当前点位有没有任务执行
+// List unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(TASK_CONFIG_CODE);
+// if (unFinishTasksByTaskConfig.size() > 0) {
+// // 有任务在执行就不创建
+// return;
+// }
+// // 获取任务配置
+// SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
+// .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
+// // 创建任务
+// SchBaseTask task = new SchBaseTask(); // 任务实体
+// // 2、创建申请任务
+// task.setConfig_code(TASK_CONFIG_CODE);
+// task.setCreate_mode(GeneralDefinition.AUTO_CREATION);
+// task.setTask_status(TaskStatus.APPLY.getCode());
+// task.setWorkshop_code(taskConfig.getWorkshop_code()); // 车间编码
+// // 设置起/终点
+// this.setTaskPoint(taskConfig, task, "***");
+// // 找起点
+// List nextRegionStr = Arrays
+// .stream(taskConfig.getNext_region_str().split(","))
+// .collect(Collectors.toList());
+// SchBasePoint point = findNextPoint(nextRegionStr);
+// if (ObjectUtil.isEmpty(point)) {
+// task.setRemark("未找到所需点位!");
+// taskService.create(task);
+// // 消息通知
+// return;
+// }
+// // 设置终点并修改创建成功状态
+// task.setPoint_code2(point.getPoint_code());
+// task.setRemark("");
+// task.setTask_status(TaskStatus.CREATED.getCode());
+// taskService.create(task);
+// point.setIng_task_code(task.getTask_code());
+// pointService.update(point);
+// //下发
+//// this.renotifyAcs(task);
+// }
+//
+// @Override
+// protected void updateStatus(String task_code, TaskStatus status) {
+//
+// }
+//
+// @Override
+// public void forceFinish(String task_code) {
+//
+// }
+//
+// @Override
+// public void cancel(String task_code) {
+//
+// }
+//}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java
index d929a0c..458834e 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/CTQKTask.java
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.nl.common.exception.BadRequestException;
+import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task.service.ISchBaseTaskService;
@@ -12,11 +13,14 @@ 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.enums.NoticeTypeEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
+import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch.task_manage.task.TaskType;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.sch.task_manage.task.tasks.dtk.mapper.DTKMapper;
import org.nl.wms.util.PointUtils;
+import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -40,6 +44,8 @@ public class CTQKTask extends AbstractTask {
@Autowired
private ISchBaseTaskconfigService taskConfigService;
@Autowired
+ private ISysNoticeService noticeService;
+ @Autowired
private DTKMapper dtkMapper;
@Override
protected void create() throws BadRequestException {
@@ -49,15 +55,15 @@ public class CTQKTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
+ TaskUtils.setUpdateByAcs(task); // 修改修改者
List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
// 找起点
- String extGroupData = task.getExt_group_data();
- JSONObject jsonObject = JSONObject.parseObject(extGroupData);
SchBasePoint point = findStartPoint(startRegionStr);
if (ObjectUtil.isEmpty(point)) {
- task.setRemark("未找到所需点位!");
- taskService.update(task);
+ task.setRemark("暂无托盘!");
+ taskService.updateById(task);
// 消息通知
+ noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
continue;
}
// 设置终点并修改创建成功状态
@@ -65,13 +71,15 @@ public class CTQKTask extends AbstractTask {
task.setRemark("");
task.setVehicle_qty(point.getVehicle_qty());
task.setTask_status(TaskStatus.CREATED.getCode());
- taskService.update(task);
+ taskService.updateById(task);
point.setIng_task_code(task.getTask_code());
pointService.update(point);
+ PointUtils.setUpdateByAcs(point);
+ pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
@@ -81,6 +89,7 @@ public class CTQKTask extends AbstractTask {
* @return
*/
private SchBasePoint findStartPoint(List startRegionStr) {
+ // 钢托盘缓存区域的空盘是1 状态不同
List points = dtkMapper.findPointForCTQK(startRegionStr);
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
}
@@ -95,48 +104,78 @@ public class CTQKTask extends AbstractTask {
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
throw new BadRequestException("该任务已取消!");
}
- // 获取参数
- 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("执行中");
+ TaskUtils.setUpdateByAcs(taskObj);
+ taskService.updateById(taskObj);
}
if (status.equals(TaskStatus.FINISHED)) { // 完成
- // 起点清空
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- PointUtils.clearPoint(startPointObj);
- endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
- endPointObj.setVehicle_type("2");
- endPointObj.setVehicle_qty(taskObj.getVehicle_qty());
- endPointObj.setUpdate_time(DateUtil.now());
- pointService.updateById(endPointObj);
- }
- // 任务完成
- taskObj.setTask_status(TaskStatus.FINISHED.getCode());
- taskObj.setRemark("任务完成");
+ this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
if (status.equals(TaskStatus.CANCELED)) { // 取消
- // 起点解锁
- if (ObjectUtil.isNotEmpty(startPointObj)) {
- startPointObj.setIng_task_code("");
- pointService.update(startPointObj);
- }
- taskObj.setTask_status(TaskStatus.CANCELED.getCode());
+ this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
}
- taskService.update(taskObj);
}
@Override
public void forceFinish(String task_code) {
- this.updateStatus(task_code, TaskStatus.FINISHED);
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
}
@Override
public void cancel(String task_code) {
- this.updateStatus(task_code, TaskStatus.CANCELED);
+ SchBaseTask taskObj = taskService.getByCode(task_code);
+ if (ObjectUtil.isEmpty(taskObj)) {
+ throw new BadRequestException("该任务不存在");
+ }
+ this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
+ }
+ public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
+ // 获取参数
+ String startPoint = taskObj.getPoint_code1(); // 获取起点
+ String endPoint = taskObj.getPoint_code2(); // 获取起点
+ SchBasePoint startPointObj = pointService.getById(startPoint);
+ SchBasePoint endPointObj = pointService.getById(endPoint);
+ // 起点清空
+ if (ObjectUtil.isNotEmpty(startPointObj)) {
+ PointUtils.setUpdateByType(startPointObj, taskFinishedType);
+ PointUtils.clearPoint(startPointObj);
+ endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
+ endPointObj.setVehicle_type("2");
+ endPointObj.setVehicle_qty(taskObj.getVehicle_qty());
+ endPointObj.setUpdate_time(DateUtil.now());
+ PointUtils.setUpdateByType(endPointObj, taskFinishedType);
+ pointService.updateById(endPointObj);
+ }
+ // 任务完成
+ taskObj.setTask_status(TaskStatus.FINISHED.getCode());
+ taskObj.setRemark("任务完成");
+ taskObj.setTask_status(TaskStatus.FINISHED.getCode());
+ taskObj.setFinished_type(taskFinishedType.getCode());
+ TaskUtils.setUpdateByType(taskObj, taskFinishedType);
+ taskService.updateById(taskObj);
+ }
+ public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
+ // 获取参数
+ String startPoint = taskObj.getPoint_code1(); // 获取起点
+ SchBasePoint startPointObj = pointService.getById(startPoint);
+ // 起点解锁
+ if (ObjectUtil.isNotEmpty(startPointObj)) {
+ startPointObj.setIng_task_code("");
+ PointUtils.setUpdateByType(startPointObj, taskFinishedType);
+ pointService.updateById(startPointObj);
+ }
+ taskObj.setTask_status(TaskStatus.CANCELED.getCode());
+ taskObj.setRemark("任务取消");
+ taskObj.setFinished_type(taskFinishedType.getCode());
+ TaskUtils.setUpdateByType(taskObj, taskFinishedType);
+ taskService.updateById(taskObj);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java
index 2272bc8..bc28dfa 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/DTSKTask.java
@@ -46,7 +46,7 @@ public class DTSKTask extends AbstractTask {
private ISysNoticeService noticeService;
@Autowired
private DTKMapper dtkMapper;
-
+
@Override
protected void create() throws BadRequestException {
@@ -81,7 +81,7 @@ public class DTSKTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml
index 81e7c40..1b2f9fb 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/dtk/mapper/DTKMapper.xml
@@ -25,7 +25,10 @@
+
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java
index d6341ce..bc8b1ec 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/CYZCTask.java
@@ -51,7 +51,7 @@ public class CYZCTask extends AbstractTask {
private ISchBaseTaskService taskService;
@Autowired
private ISchBaseTaskconfigService taskConfigService;
-
+
@Autowired
private ISysNoticeService noticeService;
@Autowired
@@ -94,7 +94,7 @@ public class CYZCTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java
index 118cdfd..23957df 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java
@@ -44,7 +44,7 @@ public class GZYQLTask extends AbstractTask {
private ISchBaseTaskService taskService;
@Autowired
private ISchBaseTaskconfigService taskConfigService;
-
+
@Autowired
private ISysNoticeService noticeService;
@Override
@@ -82,7 +82,7 @@ public class GZYQLTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java
index 9691a82..d85a7d7 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQKTask.java
@@ -47,7 +47,7 @@ public class YZQKTask extends AbstractTask {
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private ISysNoticeService noticeService;
-
+
@Override
@Transactional(rollbackFor = Exception.class)
protected void create() {
@@ -83,7 +83,7 @@ public class YZQKTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java
index 6e096d6..a789a25 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSKTask.java
@@ -40,7 +40,6 @@ import java.util.stream.Collectors;
@TaskType("LZKLXSKTask")
public class YZSKTask extends AbstractTask {
private static String TASK_CONFIG_CODE = "LZKLXSKTask";
-
@Autowired
private ISchBasePointService pointService;
@Autowired
@@ -49,7 +48,7 @@ public class YZSKTask extends AbstractTask {
private ISchBaseTaskconfigService taskConfigService;
@Autowired
private ISysNoticeService noticeService;
-
+
@Override
@Transactional(rollbackFor = Exception.class)
@@ -89,7 +88,7 @@ public class YZSKTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java
index 61b587e..b310d5e 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java
@@ -5,9 +5,9 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
-import org.nl.config.MapOf;
import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
@@ -60,7 +60,7 @@ public class YZSLTask extends AbstractTask {
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired
private YZMapper yzMapper;
-
+
@Autowired
private ISysNoticeService noticeService;
@Autowired
@@ -104,7 +104,7 @@ public class YZSLTask extends AbstractTask {
pointService.updateById(point);
//下发
-// this.renotifyAcs(task);
+ this.renotifyAcs(task);
}
}
@@ -143,10 +143,23 @@ public class YZSLTask extends AbstractTask {
regionCode = nextRegionStr.get(0);
}
}
- // todo: 双层缓存货架的一上一下的区分
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", regionCode, "pointType", GeneralDefinition.ENTRANCE)));
- return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
+ // 双层缓存货架的一上一下的区分
+ // 计算缓存上和缓存下的空位数量决定是使用desc还是asc
+ int countUp = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.UPPER_CONVEYOR_LINE,
+ PointStatusEnum.EMPTY_POINT.getCode());
+ int countLower = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.LOWER_CONVEYOR_LINE,
+ PointStatusEnum.EMPTY_POINT.getCode());
+ LambdaQueryWrapper lam = new QueryWrapper().lambda();
+ lam.eq(SchBasePoint::getRegion_code, regionCode)
+ .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
+ .eq(SchBasePoint::getPoint_type, GeneralDefinition.ENTRANCE) // 对接位
+ .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
+ .or()
+ .eq(SchBasePoint::getIng_task_code, ""))
+ .eq(SchBasePoint::getIs_used, true)
+ .orderBy(true, countUp > countLower, SchBasePoint::getPoint_code);
+ List schBasePoints = pointService.list(lam);
+ return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
}
@Override
@@ -189,6 +202,10 @@ public class YZSLTask extends AbstractTask {
vehicleType = GeneralDefinition.STEEL_TRAY;
}
String deviceCode = param.getString("device_code");
+ String isFull = param.getString("is_full");
+ if (isFull == null) {
+ isFull = GeneralDefinition.YES;
+ }
// 砖块数量
Integer qty = param.getInteger("qty");
SchBasePoint basePoint = pointService.getById(deviceCode);
@@ -230,6 +247,7 @@ public class YZSLTask extends AbstractTask {
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.WAIT_BIND.getValue()); // 待绑定
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
groupEntity.setIs_delete(false);
+ groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES) ? true : false);
vehiclematerialgroupService.save(groupEntity);
// 将所有当前位置的砖块设置组盘标识
baseBrickInfoService.setGroupByCurrentAllBrick(deviceCode, groupEntity.getGroup_id());
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java
index bceaf90..34110ba 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.java
@@ -12,5 +12,14 @@ import java.util.List;
*/
public interface YZMapper {
List findPointForYZQL(List regionCode, String materialId);
+ @Deprecated
List findPointForYZSL(JSONObject param);
+
+ /**
+ * 统计输送线数量
+ * @param regionCode
+ * @param pointType
+ * @return
+ */
+ int countConveyorLine(String regionCode, String pointType, String pointStatus);
}
diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml
index ad0f369..864c64f 100644
--- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml
+++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml
@@ -31,4 +31,14 @@
AND p.is_used = TRUE
AND ( t.task_code IS NULL OR t.task_code = '')
+
diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml
index 5027348..b233cd0 100644
--- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml
+++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml
@@ -58,6 +58,17 @@ spring:
host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
+ redisson:
+ config: |
+ threads: 4
+ nettyThreads: 4
+ singleServerConfig:
+ connectionMinimumIdleSize: 8
+ connectionPoolSize: 8
+ address: redis://127.0.0.1:6379
+ idleConnectionTimeout: 10000
+ timeout: 3000
+
# 登录相关配置
login:
diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
index f0fc978..5c671f7 100644
--- a/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
+++ b/lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
@@ -57,8 +57,16 @@ spring:
host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
- #连接超时时间
- timeout: 5000
+ redisson:
+ config: |
+ threads: 4
+ nettyThreads: 4
+ singleServerConfig:
+ connectionMinimumIdleSize: 8
+ connectionPoolSize: 8
+ address: redis://127.0.0.1:6379
+ idleConnectionTimeout: 10000
+ timeout: 3000
# 登录相关配置
login:
# 登录缓存
diff --git a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
index db627cc..9419bb2 100644
--- a/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
+++ b/lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
@@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999
nlAdmin
+ value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/>
diff --git a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
index 105fec7..b33c106 100644
--- a/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
+++ b/lms/nladmin-system/nlsso-server/src/test/java/org/nl/ApplicationTest.java
@@ -1,10 +1,15 @@
package org.nl;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.junit.jupiter.api.Test;
import org.nl.config.MapOf;
import org.nl.system.service.user.ISysUserService;
+import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
+import org.nl.wms.sch.task_manage.GeneralDefinition;
+import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@@ -21,6 +26,8 @@ public class ApplicationTest {
@Autowired
private ISysUserService userService;
@Autowired
+ private ISchBasePointService pointService;
+ @Autowired
private YZMapper yzMapper;
@Test
void contextLoads() {
@@ -28,8 +35,32 @@ public class ApplicationTest {
}
@Test
void yzMapperTest() {
- List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
- MapOf.of("regionCode", "HCSSX", "pointType", "1")));
- System.out.println(pointForYZSL);
+// List pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
+// MapOf.of("regionCode", "HCSSX", "pointType", "1")));
+ int countUp = yzMapper.countConveyorLine("HCSSX", GeneralDefinition.UPPER_CONVEYOR_LINE,
+ PointStatusEnum.EMPTY_POINT.getCode());
+ System.out.println(countUp);
+ }
+ @Test
+ void yzMapper2Test() {
+// String apply = "ORDER BY point_code";
+ int countUp = yzMapper.countConveyorLine("HCSSX", GeneralDefinition.UPPER_CONVEYOR_LINE,
+ PointStatusEnum.EMPTY_POINT.getCode());
+ int countLower = yzMapper.countConveyorLine("HCSSX", GeneralDefinition.LOWER_CONVEYOR_LINE,
+ PointStatusEnum.EMPTY_POINT.getCode());
+// if (countUp < countLower) {
+// apply = "ORDER BY point_code DESC";
+// }
+ LambdaQueryWrapper lam = new QueryWrapper().lambda();
+ lam.eq(SchBasePoint::getRegion_code, "HCSSX")
+ .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode())
+ .eq(SchBasePoint::getPoint_type, GeneralDefinition.ENTRANCE) // 对接位
+ .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
+ .or()
+ .eq(SchBasePoint::getIng_task_code, ""))
+ .eq(SchBasePoint::getIs_used, true)
+ .orderBy(true, countUp > countLower, SchBasePoint::getPoint_code);
+ List schBasePoints = pointService.list(lam);
+ System.out.println(schBasePoints.get(0));
}
}
diff --git a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
index 0f93777..687bfec 100644
--- a/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
+++ b/lms/nladmin-ui/src/views/wms/basedata/material/index.vue
@@ -73,10 +73,13 @@
+
+
+
@@ -121,10 +124,13 @@ import pagination from '@crud/Pagination'
const defaultForm = {
material_id: null,
material_code: null,
+ half_material_code: null,
+ raw_material_code: null,
material_name: null,
material_spec: null,
class_id: null,
standing_time: null,
+ cooling_time: null,
workshop_code: null,
remark: null,
is_used: true,
diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
index 02b4ae0..f282fc2 100644
--- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
+++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
@@ -108,8 +108,8 @@
style="width: 240px;"
/>
-
-
+
+
@@ -361,8 +361,7 @@ const defaultForm = {
plan_qty: null,
real_qty: null,
material_id: null,
- raw_material_id: null,
- raw_material_name: null,
+ half_material_code: null,
raw_material_code: null,
vehicle_type: null,
planproducestart_date: null,
@@ -484,6 +483,8 @@ export default {
this.form.material_id = row.material_id
this.form.material_spec = row.material_spec
this.form.material_code = row.material_code
+ this.form.half_material_code = row.half_material_code
+ this.form.raw_material_code = row.raw_material_code
} else {
this.form.raw_material_name = row.material_name
this.form.raw_material_id = row.material_id
diff --git a/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue b/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue
index 09e0ab2..0723229 100644
--- a/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue
+++ b/lms/nladmin-ui/src/views/wms/sch/group/MaterialDialog.vue
@@ -55,6 +55,8 @@
+
+