rev: 混碾下料任务修改、物料修改、工单修改
This commit is contained in:
Binary file not shown.
@@ -451,6 +451,12 @@
|
|||||||
<artifactId>lucene-queryparser</artifactId>
|
<artifactId>lucene-queryparser</artifactId>
|
||||||
<version>${lucene.version}</version>
|
<version>${lucene.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--redisson-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.redisson</groupId>
|
||||||
|
<artifactId>redisson-spring-boot-starter</artifactId>
|
||||||
|
<version>3.16.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -26,9 +26,15 @@ public class MdBaseMaterial implements Serializable {
|
|||||||
@ApiModelProperty(value = "物料标识")
|
@ApiModelProperty(value = "物料标识")
|
||||||
private String material_id;
|
private String material_id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "物料编码")
|
@ApiModelProperty(value = "成品物料编码")
|
||||||
private String material_code;
|
private String material_code;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "半成品物料编码")
|
||||||
|
private String half_material_code;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "原材料物料编码")
|
||||||
|
private String raw_material_code;
|
||||||
|
|
||||||
@ApiModelProperty(value = "物料名称 ")
|
@ApiModelProperty(value = "物料名称 ")
|
||||||
private String material_name;
|
private String material_name;
|
||||||
|
|
||||||
@@ -41,6 +47,9 @@ public class MdBaseMaterial implements Serializable {
|
|||||||
@ApiModelProperty(value = "静置时间(分钟)")
|
@ApiModelProperty(value = "静置时间(分钟)")
|
||||||
private Integer standing_time;
|
private Integer standing_time;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "冷却时间(分钟)")
|
||||||
|
private Integer cooling_time;
|
||||||
|
|
||||||
@ApiModelProperty(value = "车间编码")
|
@ApiModelProperty(value = "车间编码")
|
||||||
private String workshop_code;
|
private String workshop_code;
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class SignalData {
|
public class SignalData {
|
||||||
|
|
||||||
private String code;
|
private String code; // to_command
|
||||||
|
|
||||||
private String value;
|
private String value; // 1
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import cn.hutool.http.HttpStatus;
|
import cn.hutool.http.HttpStatus;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.config.MapOf;
|
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.CommonUtils;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
import org.nl.wms.util.TaskUtils;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -87,6 +91,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private IMdBaseMaterialService materialService;
|
private IMdBaseMaterialService materialService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||||
|
@Autowired
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse acsApply(JSONObject param) {
|
public BaseResponse acsApply(JSONObject param) {
|
||||||
@@ -116,86 +122,171 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 任务:申请补满料盅托盘(叫料) */
|
/**
|
||||||
|
* 任务:申请补满料盅托盘(叫料)
|
||||||
|
* @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
|
||||||
|
* @param param: ApplyTaskRequest的json形式
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@SneakyThrows
|
||||||
public ApplyTaskResponse applyPutFullVehicle(JSONObject param) {
|
public ApplyTaskResponse applyPutFullVehicle(JSONObject param) {
|
||||||
// 找到当前的设备
|
// 找到当前的设备
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
|
||||||
throw new BadRequestException("点位错误!");
|
|
||||||
}
|
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
String configCode = basePoint.getRegion_code() + "QLTask";
|
RLock lock = redissonClient.getLock(deviceCode);
|
||||||
// 组织参数
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
param.put("config_code", configCode);
|
try {
|
||||||
taskService.apply(param);
|
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);
|
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) {
|
public ApplyTaskResponse applyPutEmptyVehicle(JSONObject param) {
|
||||||
// 找到当前的设备
|
// 找到当前的设备
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
|
||||||
throw new BadRequestException("点位错误!");
|
|
||||||
}
|
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
String configCode = basePoint.getRegion_code() + "QKTask";
|
RLock lock = redissonClient.getLock(deviceCode);
|
||||||
// 组织参数
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
param.put("config_code", configCode);
|
try {
|
||||||
taskService.apply(param);
|
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);
|
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) {
|
public ApplyTaskResponse applyTakeEmptyVehicle(JSONObject param) {
|
||||||
// 找到当前的设备
|
// 找到当前的设备
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
|
||||||
throw new BadRequestException("点位错误!");
|
|
||||||
}
|
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
String configCode = basePoint.getRegion_code() + "SKTask";
|
RLock lock = redissonClient.getLock(deviceCode);
|
||||||
// 组织参数
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
param.put("config_code", configCode);
|
try {
|
||||||
taskService.apply(param);
|
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);
|
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) {
|
public ApplyTaskResponse applyTakeFullVehicle(JSONObject param) {
|
||||||
// 找到当前的设备
|
// 找到当前的设备
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
|
||||||
throw new BadRequestException("点位错误!");
|
|
||||||
}
|
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
String configCode = basePoint.getRegion_code() + "MLTask";
|
RLock lock = redissonClient.getLock(deviceCode);
|
||||||
// 组织参数
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
param.put("config_code", configCode);
|
try {
|
||||||
taskService.apply(param);
|
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);
|
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) {
|
public ApplyTaskResponse applyForceTakeFullVehicle(JSONObject param) {
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
|
||||||
if (ObjectUtil.isEmpty(basePoint)) {
|
|
||||||
throw new BadRequestException("点位错误!");
|
|
||||||
}
|
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
String configCode = basePoint.getRegion_code() + "QZRKTask";
|
RLock lock = redissonClient.getLock(deviceCode);
|
||||||
// 组织参数
|
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
|
||||||
param.put("config_code", configCode);
|
try {
|
||||||
taskService.apply(param);
|
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);
|
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) {
|
public ApplyTaskResponse applyForceTakeFullVehicleInStorage(JSONObject param) {
|
||||||
// 找到当前的设备
|
// 找到当前的设备
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
@@ -290,8 +381,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
case GeneralDefinition.GZY: // 如果是入窑口就是记录数据
|
case GeneralDefinition.GZY: // 如果是入窑口就是记录数据
|
||||||
return this.recordKilnTime(baseRequest); // 直接返回
|
return this.recordKilnTime(baseRequest); // 直接返回
|
||||||
default:
|
default:
|
||||||
return (ApplyTaskResponse) ApplyTaskResponse.responseError(baseRequest.getRequestNo(),
|
return (ApplyTaskResponse) ApplyTaskResponse.responseError(baseRequest.getRequestNo(),"参数错误");
|
||||||
"参数错误");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -384,6 +474,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
|
public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
@@ -405,7 +496,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
// 获取原材料物料
|
// 获取原材料物料
|
||||||
PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
|
PdmBdRequestMaterialRecord requestMaterialRecord = new PdmBdRequestMaterialRecord();
|
||||||
requestMaterialRecord.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
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.setWorkorder_id(workOrder.getWorkorder_id());
|
||||||
requestMaterialRecord.setDevice_code(parentPointCode);
|
requestMaterialRecord.setDevice_code(parentPointCode);
|
||||||
requestMaterialRecord.setCreate_time(DateUtil.now());
|
requestMaterialRecord.setCreate_time(DateUtil.now());
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package org.nl.wms.ext.record.service;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
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.acs.service.dto.to.BaseResponse;
|
||||||
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
|
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
|
||||||
|
|
||||||
@@ -46,5 +46,5 @@ public interface ISysInteractRecordService extends IService<SysInteractRecord> {
|
|||||||
/**
|
/**
|
||||||
* 创建记录
|
* 创建记录
|
||||||
*/
|
*/
|
||||||
void saveRecord(JSONObject param, BaseResponse response, String direction);
|
void saveRecord(Object request, BaseResponse response, String direction);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveRecord(JSONObject param, BaseResponse response, String direction) {
|
public void saveRecord(Object param, BaseResponse response, String direction) {
|
||||||
SysInteractRecord entity = new SysInteractRecord();
|
SysInteractRecord entity = new SysInteractRecord();
|
||||||
entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
entity.setInteract_code(response.getRequestNo());
|
entity.setInteract_code(response.getRequestNo());
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ public class PdmBdWorkorder implements Serializable {
|
|||||||
private String material_id;
|
private String material_id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "原材料物料标识")
|
@ApiModelProperty(value = "原材料物料标识")
|
||||||
private String raw_material_id;
|
private String raw_material_code;
|
||||||
|
|
||||||
@ApiModelProperty(value = "载具类型")
|
@ApiModelProperty(value = "载具类型")
|
||||||
private String vehicle_type;
|
private String vehicle_type;
|
||||||
@@ -122,11 +122,7 @@ public class PdmBdWorkorder implements Serializable {
|
|||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String material_spec;
|
private String material_spec;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String raw_material_name;
|
private String half_material_code;
|
||||||
|
|
||||||
@TableField(exist = false)
|
|
||||||
private String raw_material_code;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,9 @@
|
|||||||
,ma.material_name
|
,ma.material_name
|
||||||
,ma.material_code
|
,ma.material_code
|
||||||
,ma.material_spec
|
,ma.material_spec
|
||||||
,ma2.material_name AS raw_material_name
|
,ma.half_material_code
|
||||||
,ma2.material_code AS raw_material_code
|
|
||||||
FROM pdm_bd_workorder wo
|
FROM pdm_bd_workorder wo
|
||||||
LEFT JOIN md_base_material ma ON ma.material_id = wo.material_id
|
LEFT JOIN md_base_material ma ON ma.material_id = wo.material_id
|
||||||
LEFT JOIN md_base_material ma2 ON ma2.material_id = wo.raw_material_id
|
|
||||||
<where>
|
<where>
|
||||||
<if test="query.more_order_status != null and query.more_order_status != ''">
|
<if test="query.more_order_status != null and query.more_order_status != ''">
|
||||||
workorder_status IN
|
workorder_status IN
|
||||||
|
|||||||
@@ -31,6 +31,9 @@ public class SchBaseVehiclematerialgroup implements Serializable {
|
|||||||
@ApiModelProperty(value = "物料标识")
|
@ApiModelProperty(value = "物料标识")
|
||||||
private String material_id;
|
private String material_id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "冗余-半成品/泥料")
|
||||||
|
private String redundance_material_code;
|
||||||
|
|
||||||
@ApiModelProperty(value = "载具类型")
|
@ApiModelProperty(value = "载具类型")
|
||||||
private String vehicle_type;
|
private String vehicle_type;
|
||||||
|
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ public class GeneralDefinition {
|
|||||||
/** 窑自动任务开启 */
|
/** 窑自动任务开启 */
|
||||||
public static final String AUTO_KILN_CALL = "auto_kiln_call";
|
public static final String AUTO_KILN_CALL = "auto_kiln_call";
|
||||||
// 是否
|
// 是否
|
||||||
/**是 */
|
/**是/正确/可用... */
|
||||||
public static final String YES = "1";
|
public static final String YES = "1";
|
||||||
/** 否 */
|
/** 否/错误/不可用... */
|
||||||
public static final String NO = "0";
|
public static final String NO = "0";
|
||||||
// 载具类型
|
// 载具类型
|
||||||
/** 料盅 */
|
/** 料盅 */
|
||||||
@@ -57,4 +57,9 @@ public class GeneralDefinition {
|
|||||||
public static final String LZKLX = "LZKLX";
|
public static final String LZKLX = "LZKLX";
|
||||||
/** 干燥窑区域 */
|
/** 干燥窑区域 */
|
||||||
public static final String GZY = "GZY";
|
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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
|
|
||||||
package org.nl.wms.sch.task_manage.task;
|
package org.nl.wms.sch.task_manage.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.config.SpringContextHolder;
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.system.service.param.dao.Param;
|
||||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
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.AcsTaskDto;
|
||||||
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -19,9 +24,21 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class AcsUtil {
|
public class AcsUtil {
|
||||||
public static JSONObject notifyAcs(String api, List<AcsTaskDto> list) {
|
/**
|
||||||
|
* 统一多数据入口
|
||||||
|
* @param api
|
||||||
|
* @param list
|
||||||
|
* @return
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
public static <T> JSONObject notifyAcs(String api, List<T> list) {
|
||||||
|
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
|
||||||
//判断是否连接ACS系统
|
//判断是否连接ACS系统
|
||||||
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").getValue();
|
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();
|
JSONObject result = new JSONObject();
|
||||||
if (StrUtil.equals(GeneralDefinition.NO, isConnect)) {
|
if (StrUtil.equals(GeneralDefinition.NO, isConnect)) {
|
||||||
result.put("status", HttpStatus.BAD_REQUEST.value());
|
result.put("status", HttpStatus.BAD_REQUEST.value());
|
||||||
@@ -30,8 +47,11 @@ public class AcsUtil {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
//ACS地址:127.0.0.1:8010
|
//ACS地址:127.0.0.1:8010
|
||||||
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ACS_URL").getValue();
|
Param acsUrlObj = sysParamService.findByCode("ACS_URL");
|
||||||
|
if (ObjectUtil.isEmpty(acsUrlObj)) {
|
||||||
|
throw new BadRequestException("参数表中:ACS_URL不存在");
|
||||||
|
}
|
||||||
|
String acsUrl = acsUrlObj.getValue();
|
||||||
String url = acsUrl + api;
|
String url = acsUrl + api;
|
||||||
log.info("下发acs任务的参数为:{}", list.toString());
|
log.info("下发acs任务的参数为:{}", list.toString());
|
||||||
try {
|
try {
|
||||||
@@ -50,4 +70,36 @@ public class AcsUtil {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
public static <T> JSONObject notifyAcs(String api, T object) {
|
||||||
|
//判断是否连接ACS系统
|
||||||
|
String isConnect = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("IS_CONNECT_ACS").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
|
||||||
|
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("ACS_URL").getValue();
|
||||||
|
|
||||||
|
String url = acsUrl + api;
|
||||||
|
log.info("下发acs任务的参数为:{}", object.toString());
|
||||||
|
try {
|
||||||
|
String resultMsg = HttpRequest.post(url)
|
||||||
|
.body(String.valueOf(object))
|
||||||
|
.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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(TASK_CONFIG_CODE);
|
||||||
|
// if (unFinishTasksByTaskConfig.size() > 0) {
|
||||||
|
// // 有任务在执行就不创建
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// // 获取任务配置
|
||||||
|
// SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||||
|
// .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<String> 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) {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//}
|
||||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
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.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
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.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
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.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.TaskType;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
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.sch.task_manage.task.tasks.dtk.mapper.DTKMapper;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@@ -40,6 +44,8 @@ public class CTQKTask extends AbstractTask {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ISysNoticeService noticeService;
|
||||||
|
@Autowired
|
||||||
private DTKMapper dtkMapper;
|
private DTKMapper dtkMapper;
|
||||||
@Override
|
@Override
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
@@ -49,15 +55,15 @@ public class CTQKTask extends AbstractTask {
|
|||||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||||
for (SchBaseTask task : tasks) {
|
for (SchBaseTask task : tasks) {
|
||||||
|
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||||
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList());
|
List<String> 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);
|
SchBasePoint point = findStartPoint(startRegionStr);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("暂无托盘!");
|
||||||
taskService.update(task);
|
taskService.updateById(task);
|
||||||
// 消息通知
|
// 消息通知
|
||||||
|
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
@@ -65,13 +71,15 @@ public class CTQKTask extends AbstractTask {
|
|||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setVehicle_qty(point.getVehicle_qty());
|
task.setVehicle_qty(point.getVehicle_qty());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.update(task);
|
taskService.updateById(task);
|
||||||
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
pointService.update(point);
|
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
|
* @return
|
||||||
*/
|
*/
|
||||||
private SchBasePoint findStartPoint(List<String> startRegionStr) {
|
private SchBasePoint findStartPoint(List<String> startRegionStr) {
|
||||||
|
// 钢托盘缓存区域的空盘是1 状态不同
|
||||||
List<SchBasePoint> points = dtkMapper.findPointForCTQK(startRegionStr);
|
List<SchBasePoint> points = dtkMapper.findPointForCTQK(startRegionStr);
|
||||||
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
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())) {
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
throw new BadRequestException("该任务已取消!");
|
throw new BadRequestException("该任务已取消!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
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) {
|
||||||
|
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 startPoint = taskObj.getPoint_code1(); // 获取起点
|
||||||
String endPoint = taskObj.getPoint_code2(); // 获取起点
|
String endPoint = taskObj.getPoint_code2(); // 获取起点
|
||||||
SchBasePoint startPointObj = pointService.getById(startPoint);
|
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||||
SchBasePoint endPointObj = pointService.getById(endPoint);
|
SchBasePoint endPointObj = pointService.getById(endPoint);
|
||||||
// 根据传来的类型去对任务进行操作
|
// 起点清空
|
||||||
if (status.equals(TaskStatus.EXECUTING)) { // 执行中
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
|
||||||
taskObj.setRemark("执行中");
|
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);
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
// 任务完成
|
||||||
// 起点清空
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
taskObj.setRemark("任务完成");
|
||||||
PointUtils.clearPoint(startPointObj);
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode());
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
endPointObj.setVehicle_type("2");
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
endPointObj.setVehicle_qty(taskObj.getVehicle_qty());
|
taskService.updateById(taskObj);
|
||||||
endPointObj.setUpdate_time(DateUtil.now());
|
|
||||||
pointService.updateById(endPointObj);
|
|
||||||
}
|
|
||||||
// 任务完成
|
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
|
||||||
taskObj.setRemark("任务完成");
|
|
||||||
}
|
|
||||||
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
|
||||||
// 起点解锁
|
|
||||||
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
|
||||||
startPointObj.setIng_task_code("");
|
|
||||||
pointService.update(startPointObj);
|
|
||||||
}
|
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
|
||||||
}
|
|
||||||
taskService.update(taskObj);
|
|
||||||
}
|
}
|
||||||
|
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
@Override
|
// 获取参数
|
||||||
public void forceFinish(String task_code) {
|
String startPoint = taskObj.getPoint_code1(); // 获取起点
|
||||||
this.updateStatus(task_code, TaskStatus.FINISHED);
|
SchBasePoint startPointObj = pointService.getById(startPoint);
|
||||||
}
|
// 起点解锁
|
||||||
|
if (ObjectUtil.isNotEmpty(startPointObj)) {
|
||||||
@Override
|
startPointObj.setIng_task_code("");
|
||||||
public void cancel(String task_code) {
|
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
|
||||||
this.updateStatus(task_code, TaskStatus.CANCELED);
|
pointService.updateById(startPointObj);
|
||||||
|
}
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setRemark("任务取消");
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class DTSKTask extends AbstractTask {
|
|||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private DTKMapper dtkMapper;
|
private DTKMapper dtkMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
@@ -81,7 +81,7 @@ public class DTSKTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,10 @@
|
|||||||
<select id="findPointForCTQK" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
<select id="findPointForCTQK" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
SELECT p.*
|
SELECT p.*
|
||||||
FROM `sch_base_point` p
|
FROM `sch_base_point` p
|
||||||
WHERE (p.point_type = '3' OR p.point_type IS NULL OR p.point_type = '')
|
WHERE (
|
||||||
|
(p.point_type = '3' AND p.region_code = #{regionCode[0]}) OR
|
||||||
|
(p.point_type = '1' AND p.region_code = #{regionCode[1]})
|
||||||
|
)
|
||||||
AND (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
AND (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
||||||
AND p.point_status = '2'
|
AND p.point_status = '2'
|
||||||
AND p.is_used = 1
|
AND p.is_used = 1
|
||||||
|
|||||||
@@ -82,6 +82,11 @@ public class FJMKTask extends AbstractTask {
|
|||||||
NoticeTypeEnum.WARN.getCode());
|
NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
task.setPoint_code2(packagePoint.getPoint_code()); // 包装线
|
||||||
|
// todo: 校验是否够码满一托
|
||||||
|
// 1 获取点位相应数量
|
||||||
|
// 2 获取库存数量
|
||||||
|
// 3 木托盘需要多少块
|
||||||
SchBasePoint LaminatePoint = findStartPoint(startRegionStr, jsonObject);
|
SchBasePoint LaminatePoint = findStartPoint(startRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(LaminatePoint)) {
|
if (ObjectUtil.isEmpty(LaminatePoint)) {
|
||||||
task.setRemark("覆膜区不可用!");
|
task.setRemark("覆膜区不可用!");
|
||||||
@@ -94,7 +99,6 @@ public class FJMKTask extends AbstractTask {
|
|||||||
// 生产木托盘编码
|
// 生产木托盘编码
|
||||||
String vehicleCode = CodeUtil.getNewCode("VEHICLE_CODE");
|
String vehicleCode = CodeUtil.getNewCode("VEHICLE_CODE");
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code2(packagePoint.getPoint_code());
|
|
||||||
task.setPoint_code3(LaminatePoint.getParent_point_code());
|
task.setPoint_code3(LaminatePoint.getParent_point_code());
|
||||||
task.setPoint_code4(task.getPoint_code1());
|
task.setPoint_code4(task.getPoint_code1());
|
||||||
task.setVehicle_code2(vehicleCode);
|
task.setVehicle_code2(vehicleCode);
|
||||||
@@ -112,7 +116,7 @@ public class FJMKTask extends AbstractTask {
|
|||||||
pointService.updateById(basePoint);
|
pointService.updateById(basePoint);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.nl.wms.sch.task_manage.GeneralDefinition;
|
|||||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
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.PointStatusEnum;
|
||||||
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.AcsUtil;
|
||||||
import org.nl.wms.sch.task_manage.task.TaskType;
|
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.core.TaskStatus;
|
||||||
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
import org.nl.wms.sch.task_manage.task.tasks.fj.mapper.FJMapper;
|
||||||
@@ -48,7 +49,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdWorkorderService workorderService;
|
private IPdmBdWorkorderService workorderService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -94,7 +95,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
pointService.updateById(basePoint);
|
pointService.updateById(basePoint);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,6 +120,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
SchBasePoint endPointObj = fjMapper.findPointForFJQK(startRegionStr, new JSONObject()
|
SchBasePoint endPointObj = fjMapper.findPointForFJQK(startRegionStr, new JSONObject()
|
||||||
.fluentPut("vehicleType", vehicleType).fluentPut("pointType", GeneralDefinition.DEVICE_POINT));
|
.fluentPut("vehicleType", vehicleType).fluentPut("pointType", GeneralDefinition.DEVICE_POINT));
|
||||||
// todo: 请求ACS释放一个木托盘
|
// todo: 请求ACS释放一个木托盘
|
||||||
|
// AcsUtil.notifyAcs("", )
|
||||||
// 这个点的父点位为起点
|
// 这个点的父点位为起点
|
||||||
return ObjectUtil.isNotEmpty(endPointObj) ? endPointObj : null;
|
return ObjectUtil.isNotEmpty(endPointObj) ? endPointObj : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class FJQLTask extends AbstractTask {
|
|||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FJMapper fjMapper;
|
private FJMapper fjMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||||
@Override
|
@Override
|
||||||
@@ -97,7 +97,7 @@ public class FJQLTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +117,7 @@ public class FJQLTask extends AbstractTask {
|
|||||||
: null;
|
: null;
|
||||||
Assert.notNull(workOrder, "工单不能为空!");
|
Assert.notNull(workOrder, "工单不能为空!");
|
||||||
// 从所选区域中,选择满料位、无锁、可用的点位
|
// 从所选区域中,选择满料位、无锁、可用的点位
|
||||||
List<SchBasePoint> points = fjMapper.findPointForFJQL(startRegionStr, workOrder.getRaw_material_id());
|
List<SchBasePoint> points = fjMapper.findPointForFJQL(startRegionStr, workOrder.getRaw_material_code());
|
||||||
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class FJRKTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdWorkorderService workorderService;
|
private IPdmBdWorkorderService workorderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -85,7 +85,7 @@ public class FJRKTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class FJSKTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private FJMapper fjMapper;
|
private FJMapper fjMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -86,7 +86,7 @@ public class FJSKTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class FJSLTask extends AbstractTask {
|
|||||||
private IPdmBdWorkorderService workorderService;
|
private IPdmBdWorkorderService workorderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Override
|
@Override
|
||||||
@@ -89,7 +89,7 @@ public class FJSLTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,13 +7,15 @@
|
|||||||
vg.group_id
|
vg.group_id
|
||||||
FROM
|
FROM
|
||||||
`sch_base_point` p
|
`sch_base_point` p
|
||||||
LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2'
|
LEFT JOIN sch_base_vehiclematerialgroup vg ON p.vehicle_code = vg.vehicle_code AND p.vehicle_type = vg.vehicle_type AND vg.group_bind_material_status = '2'
|
||||||
|
LEFT JOIN md_base_material ma ON ma.material_id = vg.material_id
|
||||||
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
||||||
AND p.is_used = 1
|
AND p.is_used = 1
|
||||||
AND p.point_status = '3'
|
AND p.point_status = '3'
|
||||||
AND vg.is_firing = true
|
AND vg.is_firing = true
|
||||||
AND vg.material_id = #{materialId}
|
AND vg.material_id = #{materialId}
|
||||||
AND p.region_code IN
|
AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) > ma.cooling_time
|
||||||
|
AND p.region_code IN
|
||||||
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
||||||
#{code}
|
#{code}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class HNMLTask extends AbstractTask {
|
|||||||
private IMdBaseMaterialService materialService;
|
private IMdBaseMaterialService materialService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private HNMapper hnMapper;
|
private HNMapper hnMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -110,14 +110,14 @@ public class HNMLTask extends AbstractTask {
|
|||||||
// 找终点
|
// 找终点
|
||||||
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
SchBasePoint point = findNextPoint(nextRegionStr, jsonObject);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
task.setRemark("未找到所需点位!");
|
task.setRemark("未存在生产该料的压机!");
|
||||||
taskService.updateById(task);
|
taskService.updateById(task);
|
||||||
// 消息通知
|
// 消息通知
|
||||||
noticeService.createNotice("未找到所需点位!", TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 叫料完成
|
// 叫料完成
|
||||||
requestMaterialRecordService.callMaterialFinish(point.getRecord_id());// todo: 加个组盘标识
|
// requestMaterialRecordService.callMaterialFinish(point.getRecord_id());
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code2(point.getPoint_code());
|
task.setPoint_code2(point.getPoint_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
@@ -136,13 +136,13 @@ public class HNMLTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据提前要料表的物料与混料入库请求的物料相同
|
* 根据压机工单的原料编码以及点位的更新时间
|
||||||
*
|
*
|
||||||
* @param nextRegionStr
|
* @param nextRegionStr
|
||||||
* @param requestParam
|
* @param requestParam
|
||||||
@@ -150,12 +150,12 @@ public class HNMLTask extends AbstractTask {
|
|||||||
*/
|
*/
|
||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject requestParam) {
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, JSONObject requestParam) {
|
||||||
// *: 混碾无工单
|
// *: 混碾无工单
|
||||||
String materialCode = requestParam.getString("material_code");
|
String materialCode = requestParam.getString("material_code"); // 混碾编码
|
||||||
Assert.notNull(materialCode, "物料编码不能为空!");
|
Assert.notNull(materialCode, "物料编码不能为空!");
|
||||||
MdBaseMaterial baseMaterialObj = materialService.findByCode(materialCode);
|
MdBaseMaterial baseMaterialObj = materialService.findByCode(materialCode);
|
||||||
Assert.notNull(materialCode, "物料: " + materialCode + "未找到!");
|
Assert.notNull(baseMaterialObj, "物料: " + materialCode + "未找到!");
|
||||||
// 根据工单物料标识寻找点位
|
// 根据工单物料标识寻找点位
|
||||||
List<SchBasePoint> points = hnMapper.findPointForHNML(nextRegionStr, baseMaterialObj.getMaterial_id());
|
List<SchBasePoint> points = hnMapper.findPointForHNMLAndWorkOrder(nextRegionStr, baseMaterialObj.getMaterial_id());
|
||||||
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
return ObjectUtil.isNotEmpty(points) ? points.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,6 +224,10 @@ public class HNMLTask extends AbstractTask {
|
|||||||
groupEntity.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
groupEntity.setPoint_code(endPointObj.getPoint_code()); // 当前位置
|
||||||
groupEntity.setPoint_name(endPointObj.getPoint_name());
|
groupEntity.setPoint_name(endPointObj.getPoint_name());
|
||||||
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
|
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
|
||||||
|
groupEntity.setMaterial_id(one.getMaterial_id());
|
||||||
|
// *根据压机的工单物料标识查找静置时间
|
||||||
|
MdBaseMaterial mdBaseMaterial = materialService.getById(one.getMaterial_id());
|
||||||
|
groupEntity.setStanding_time(mdBaseMaterial.getStanding_time());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 更新组盘数据
|
// 更新组盘数据
|
||||||
@@ -264,9 +268,10 @@ public class HNMLTask extends AbstractTask {
|
|||||||
// LMS组盘时生成混料批次:压制工单+混砂机号+碾次
|
// LMS组盘时生成混料批次:压制工单+混砂机号+碾次
|
||||||
String vehicleCode = param.getString("vehicle_code");
|
String vehicleCode = param.getString("vehicle_code");
|
||||||
String vehicleType = param.getString("vehicle_type");
|
String vehicleType = param.getString("vehicle_type");
|
||||||
String materialCode = param.getString("material_code");
|
// 泥料物料对应不出物料标识
|
||||||
|
String materialCode = param.getString("material_code"); // 泥料编码
|
||||||
String mixTimes = param.getString("bag_number"); // 碾次
|
String mixTimes = param.getString("bag_number"); // 碾次
|
||||||
|
// 载具类型默认料盅
|
||||||
if (vehicleType == null) {
|
if (vehicleType == null) {
|
||||||
vehicleType = GeneralDefinition.MATERIAL_CUP;
|
vehicleType = GeneralDefinition.MATERIAL_CUP;
|
||||||
}
|
}
|
||||||
@@ -278,25 +283,16 @@ public class HNMLTask extends AbstractTask {
|
|||||||
if (vehicleCode == null) {
|
if (vehicleCode == null) {
|
||||||
throw new BadRequestException("载具编码不能为空");
|
throw new BadRequestException("载具编码不能为空");
|
||||||
}
|
}
|
||||||
MdBaseMaterial material = materialService.findByCode(materialCode);
|
|
||||||
if (ObjectUtil.isEmpty(material)) {
|
|
||||||
throw new BadRequestException("物料[" + materialCode + "]不存在");
|
|
||||||
}
|
|
||||||
// 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入
|
// 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入
|
||||||
SchBaseVehiclematerialgroup groupObject = vehiclematerialgroupService.getGroupInfo(vehicleCode, vehicleType,
|
SchBaseVehiclematerialgroup groupObject = vehiclematerialgroupService.getGroupInfo(vehicleCode, vehicleType,
|
||||||
GroupBindMaterialStatusEnum.WAIT_BIND.getValue(), material.getMaterial_id());
|
GroupBindMaterialStatusEnum.WAIT_BIND.getValue());
|
||||||
if (groupObject != null) {
|
if (groupObject != null) {
|
||||||
return groupObject.getGroup_id();
|
return groupObject.getGroup_id();
|
||||||
}
|
}
|
||||||
// 要把数据存到组盘表
|
// 要把数据存到组盘表
|
||||||
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
||||||
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(material)
|
groupEntity.setRedundance_material_code(materialCode);
|
||||||
? material.getMaterial_id()
|
|
||||||
: "");
|
|
||||||
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(material) // 静置时间维护到物料
|
|
||||||
? material.getStanding_time()
|
|
||||||
: 0);
|
|
||||||
groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
|
groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
|
||||||
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
|
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
|
||||||
groupEntity.setCreate_time(DateUtil.now());
|
groupEntity.setCreate_time(DateUtil.now());
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface HNMapper extends BaseMapper<JSONObject> {
|
public interface HNMapper extends BaseMapper<JSONObject> {
|
||||||
List<SchBasePoint> findPointForHNML(List<String> regionCode, String materialId);
|
List<SchBasePoint> findPointForHNML(List<String> regionCode, String materialId);
|
||||||
|
List<SchBasePoint> findPointForHNMLAndWorkOrder(List<String> regionCode, String materialId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,4 +21,25 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
ORDER BY r.create_time
|
ORDER BY r.create_time
|
||||||
</select>
|
</select>
|
||||||
|
<select id="findPointForHNMLAndWorkOrder" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
|
SELECT
|
||||||
|
p.*
|
||||||
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
WHERE
|
||||||
|
p.point_type = '5'
|
||||||
|
AND p.point_status = '1'
|
||||||
|
AND (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
||||||
|
AND p.parent_point_code LIKE CONCAT('%',
|
||||||
|
(SELECT p2.point_code FROM sch_base_point p2
|
||||||
|
WHERE p2.point_code IN (
|
||||||
|
SELECT w.point_code FROM pdm_bd_workorder w WHERE w.material_id = #{materialId} AND w.workorder_status = '3'
|
||||||
|
)
|
||||||
|
AND p2.point_status = '1'
|
||||||
|
ORDER BY p2.update_time LIMIT 1), '%')
|
||||||
|
AND p.region_code IN
|
||||||
|
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
||||||
|
#{code}
|
||||||
|
</foreach>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class CYZCTask extends AbstractTask {
|
|||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -94,7 +94,7 @@ public class CYZCTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class GZYQLTask extends AbstractTask {
|
|||||||
private ISchBaseTaskService taskService;
|
private ISchBaseTaskService taskService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Override
|
@Override
|
||||||
@@ -82,7 +82,7 @@ public class GZYQLTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class YZQKTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
protected void create() {
|
protected void create() {
|
||||||
@@ -83,7 +83,7 @@ public class YZQKTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import java.util.stream.Collectors;
|
|||||||
@TaskType("LZKLXSKTask")
|
@TaskType("LZKLXSKTask")
|
||||||
public class YZSKTask extends AbstractTask {
|
public class YZSKTask extends AbstractTask {
|
||||||
private static String TASK_CONFIG_CODE = "LZKLXSKTask";
|
private static String TASK_CONFIG_CODE = "LZKLXSKTask";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -49,7 +48,7 @@ public class YZSKTask extends AbstractTask {
|
|||||||
private ISchBaseTaskconfigService taskConfigService;
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -89,7 +88,7 @@ public class YZSKTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.config.MapOf;
|
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
|
import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
|
||||||
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
|
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
|
||||||
@@ -60,7 +60,7 @@ public class YZSLTask extends AbstractTask {
|
|||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private YZMapper yzMapper;
|
private YZMapper yzMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -104,7 +104,7 @@ public class YZSLTask extends AbstractTask {
|
|||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
//下发
|
||||||
// this.renotifyAcs(task);
|
this.renotifyAcs(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,10 +143,23 @@ public class YZSLTask extends AbstractTask {
|
|||||||
regionCode = nextRegionStr.get(0);
|
regionCode = nextRegionStr.get(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// todo: 双层缓存货架的一上一下的区分
|
// 双层缓存货架的一上一下的区分
|
||||||
List<SchBasePoint> pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
|
// 计算缓存上和缓存下的空位数量决定是使用desc还是asc
|
||||||
MapOf.of("regionCode", regionCode, "pointType", GeneralDefinition.ENTRANCE)));
|
int countUp = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.UPPER_CONVEYOR_LINE,
|
||||||
return ObjectUtil.isNotEmpty(pointForYZSL) ? pointForYZSL.get(0) : null;
|
PointStatusEnum.EMPTY_POINT.getCode());
|
||||||
|
int countLower = yzMapper.countConveyorLine(nextRegionStr.get(0), GeneralDefinition.LOWER_CONVEYOR_LINE,
|
||||||
|
PointStatusEnum.EMPTY_POINT.getCode());
|
||||||
|
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().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<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||||
|
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -189,6 +202,10 @@ public class YZSLTask extends AbstractTask {
|
|||||||
vehicleType = GeneralDefinition.STEEL_TRAY;
|
vehicleType = GeneralDefinition.STEEL_TRAY;
|
||||||
}
|
}
|
||||||
String deviceCode = param.getString("device_code");
|
String deviceCode = param.getString("device_code");
|
||||||
|
String isFull = param.getString("is_full");
|
||||||
|
if (isFull == null) {
|
||||||
|
isFull = GeneralDefinition.YES;
|
||||||
|
}
|
||||||
// 砖块数量
|
// 砖块数量
|
||||||
Integer qty = param.getInteger("qty");
|
Integer qty = param.getInteger("qty");
|
||||||
SchBasePoint basePoint = pointService.getById(deviceCode);
|
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_bind_material_status(GroupBindMaterialStatusEnum.WAIT_BIND.getValue()); // 待绑定
|
||||||
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
|
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); // 暂时不维护。
|
||||||
groupEntity.setIs_delete(false);
|
groupEntity.setIs_delete(false);
|
||||||
|
groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES) ? true : false);
|
||||||
vehiclematerialgroupService.save(groupEntity);
|
vehiclematerialgroupService.save(groupEntity);
|
||||||
// 将所有当前位置的砖块设置组盘标识
|
// 将所有当前位置的砖块设置组盘标识
|
||||||
baseBrickInfoService.setGroupByCurrentAllBrick(deviceCode, groupEntity.getGroup_id());
|
baseBrickInfoService.setGroupByCurrentAllBrick(deviceCode, groupEntity.getGroup_id());
|
||||||
|
|||||||
@@ -12,5 +12,14 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface YZMapper {
|
public interface YZMapper {
|
||||||
List<SchBasePoint> findPointForYZQL(List<String> regionCode, String materialId);
|
List<SchBasePoint> findPointForYZQL(List<String> regionCode, String materialId);
|
||||||
|
@Deprecated
|
||||||
List<SchBasePoint> findPointForYZSL(JSONObject param);
|
List<SchBasePoint> findPointForYZSL(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计输送线数量
|
||||||
|
* @param regionCode
|
||||||
|
* @param pointType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int countConveyorLine(String regionCode, String pointType, String pointStatus);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,4 +31,14 @@
|
|||||||
AND p.is_used = TRUE
|
AND p.is_used = TRUE
|
||||||
AND ( t.task_code IS NULL OR t.task_code = '')
|
AND ( t.task_code IS NULL OR t.task_code = '')
|
||||||
</select>
|
</select>
|
||||||
|
<select id="countConveyorLine" resultType="java.lang.Integer">
|
||||||
|
SELECT
|
||||||
|
COUNT(*)
|
||||||
|
FROM
|
||||||
|
sch_base_point p2
|
||||||
|
WHERE
|
||||||
|
p2.region_code = #{regionCode}
|
||||||
|
AND p2.point_type = #{pointType}
|
||||||
|
AND p2.point_status = #{pointStatus}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -58,6 +58,17 @@ spring:
|
|||||||
host: ${REDIS_HOST:127.0.0.1}
|
host: ${REDIS_HOST:127.0.0.1}
|
||||||
port: ${REDIS_PORT:6379}
|
port: ${REDIS_PORT:6379}
|
||||||
password: ${REDIS_PWD:}
|
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:
|
login:
|
||||||
|
|||||||
@@ -57,8 +57,16 @@ spring:
|
|||||||
host: ${REDIS_HOST:127.0.0.1}
|
host: ${REDIS_HOST:127.0.0.1}
|
||||||
port: ${REDIS_PORT:6379}
|
port: ${REDIS_PORT:6379}
|
||||||
password: ${REDIS_PWD:}
|
password: ${REDIS_PWD:}
|
||||||
#连接超时时间
|
redisson:
|
||||||
timeout: 5000
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://127.0.0.1:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
# 登录相关配置
|
# 登录相关配置
|
||||||
login:
|
login:
|
||||||
# 登录缓存
|
# 登录缓存
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
<contextName>nlAdmin</contextName>
|
<contextName>nlAdmin</contextName>
|
||||||
<property name="log.charset" value="utf-8"/>
|
<property name="log.charset" value="utf-8"/>
|
||||||
<property name="log.pattern"
|
<property name="log.pattern"
|
||||||
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
|
value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/>
|
||||||
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
|
||||||
<property name="LOG_HOME" value="${logPath}"/>
|
<property name="LOG_HOME" value="${logPath}"/>
|
||||||
<!--引入默认的一些设置-->
|
<!--引入默认的一些设置-->
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package org.nl;
|
package org.nl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.nl.config.MapOf;
|
import org.nl.config.MapOf;
|
||||||
import org.nl.system.service.user.ISysUserService;
|
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.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.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
@@ -21,6 +26,8 @@ public class ApplicationTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ISysUserService userService;
|
private ISysUserService userService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private ISchBasePointService pointService;
|
||||||
|
@Autowired
|
||||||
private YZMapper yzMapper;
|
private YZMapper yzMapper;
|
||||||
@Test
|
@Test
|
||||||
void contextLoads() {
|
void contextLoads() {
|
||||||
@@ -28,8 +35,32 @@ public class ApplicationTest {
|
|||||||
}
|
}
|
||||||
@Test
|
@Test
|
||||||
void yzMapperTest() {
|
void yzMapperTest() {
|
||||||
List<SchBasePoint> pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
|
// List<SchBasePoint> pointForYZSL = yzMapper.findPointForYZSL(new JSONObject(
|
||||||
MapOf.of("regionCode", "HCSSX", "pointType", "1")));
|
// MapOf.of("regionCode", "HCSSX", "pointType", "1")));
|
||||||
System.out.println(pointForYZSL);
|
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<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().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<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||||
|
System.out.println(schBasePoints.get(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,10 +73,13 @@
|
|||||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||||
|
<el-table-column prop="half_material_code" label="半成品编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||||
|
<el-table-column prop="raw_material_code" label="泥料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||||
<el-table-column prop="material_name" label="物料名称 " :min-width="flexWidth('material_name',crud.data,'物料名称 ')" />
|
<el-table-column prop="material_name" label="物料名称 " :min-width="flexWidth('material_name',crud.data,'物料名称 ')" />
|
||||||
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料规格')" />
|
||||||
<el-table-column prop="class_id" label="物料分类标识" :min-width="flexWidth('class_id',crud.data,'物料分类标识')" />
|
<el-table-column prop="class_id" label="物料分类标识" :min-width="flexWidth('class_id',crud.data,'物料分类标识')" />
|
||||||
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
|
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
|
||||||
|
<el-table-column prop="cooling_time" label="冷却时间(分钟)" :min-width="flexWidth('cooling_time',crud.data,'静置时间(分钟)')" />
|
||||||
<el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')" />
|
<el-table-column prop="workshop_code" label="车间编码" :min-width="flexWidth('workshop_code',crud.data,'车间编码')" />
|
||||||
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
<el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" />
|
||||||
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
|
<el-table-column prop="is_used" label="是否启用" :min-width="flexWidth('is_used',crud.data,'是否启用')">
|
||||||
@@ -121,10 +124,13 @@ import pagination from '@crud/Pagination'
|
|||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
material_id: null,
|
material_id: null,
|
||||||
material_code: null,
|
material_code: null,
|
||||||
|
half_material_code: null,
|
||||||
|
raw_material_code: null,
|
||||||
material_name: null,
|
material_name: null,
|
||||||
material_spec: null,
|
material_spec: null,
|
||||||
class_id: null,
|
class_id: null,
|
||||||
standing_time: null,
|
standing_time: null,
|
||||||
|
cooling_time: null,
|
||||||
workshop_code: null,
|
workshop_code: null,
|
||||||
remark: null,
|
remark: null,
|
||||||
is_used: true,
|
is_used: true,
|
||||||
|
|||||||
@@ -108,8 +108,8 @@
|
|||||||
style="width: 240px;"
|
style="width: 240px;"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="原料名称" prop="material_name">
|
<el-form-item label="半成品编码" prop="material_name">
|
||||||
<el-input v-model="form.raw_material_name" style="width: 240px;" @focus="getMaterial(2)" />
|
<el-input v-model="form.half_material_code" style="width: 240px;" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="原料编码">
|
<el-form-item label="原料编码">
|
||||||
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled />
|
<el-input v-model="form.raw_material_code" style="width: 240px;" disabled />
|
||||||
@@ -361,8 +361,7 @@ const defaultForm = {
|
|||||||
plan_qty: null,
|
plan_qty: null,
|
||||||
real_qty: null,
|
real_qty: null,
|
||||||
material_id: null,
|
material_id: null,
|
||||||
raw_material_id: null,
|
half_material_code: null,
|
||||||
raw_material_name: null,
|
|
||||||
raw_material_code: null,
|
raw_material_code: null,
|
||||||
vehicle_type: null,
|
vehicle_type: null,
|
||||||
planproducestart_date: null,
|
planproducestart_date: null,
|
||||||
@@ -484,6 +483,8 @@ export default {
|
|||||||
this.form.material_id = row.material_id
|
this.form.material_id = row.material_id
|
||||||
this.form.material_spec = row.material_spec
|
this.form.material_spec = row.material_spec
|
||||||
this.form.material_code = row.material_code
|
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 {
|
} else {
|
||||||
this.form.raw_material_name = row.material_name
|
this.form.raw_material_name = row.material_name
|
||||||
this.form.raw_material_id = row.material_id
|
this.form.raw_material_id = row.material_id
|
||||||
|
|||||||
@@ -55,6 +55,8 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="material_code" label="物料编码" width="160" />
|
<el-table-column prop="material_code" label="物料编码" width="160" />
|
||||||
|
<el-table-column prop="half_material_code" label="半成品编码" width="160" />
|
||||||
|
<el-table-column prop="raw_material_code" label="泥料编码" width="160" />
|
||||||
<el-table-column prop="material_name" label="物料名称" width="180" show-overflow-tooltip />
|
<el-table-column prop="material_name" label="物料名称" width="180" show-overflow-tooltip />
|
||||||
<el-table-column prop="material_spec" label="物料规格" width="140" />
|
<el-table-column prop="material_spec" label="物料规格" width="140" />
|
||||||
<!-- <el-table-column prop="class_name" label="物料分类" width="140" />-->
|
<!-- <el-table-column prop="class_name" label="物料分类" width="140" />-->
|
||||||
|
|||||||
Reference in New Issue
Block a user