opt: 代码整理,出窑口校验,入窑口校验,布料信息,对接记录筛选功能
This commit is contained in:
@@ -12,9 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -51,7 +49,8 @@ public class AutoCallMaterials {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
// 记录数据
|
// 记录数据
|
||||||
requestMaterialRecordService.recordData(workorder);
|
PdmBdRequestMaterialRecord requestMaterialRecord = requestMaterialRecordService.recordData(workorder);
|
||||||
|
log.info("记录自动要料信息:{}", requestMaterialRecord);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("插入LMS数据库失败,{}", e.getMessage());
|
log.error("插入LMS数据库失败,{}", e.getMessage());
|
||||||
log.error("插入LMS数据库失败数据:{}", workorder);
|
log.error("插入LMS数据库失败数据:{}", workorder);
|
||||||
@@ -61,6 +60,7 @@ public class AutoCallMaterials {
|
|||||||
try {
|
try {
|
||||||
// 下发混碾
|
// 下发混碾
|
||||||
wmsToMmsService.addRequestMaterial(workorder);
|
wmsToMmsService.addRequestMaterial(workorder);
|
||||||
|
log.info("自动下发混碾: {}", workorder);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("下发混碾失败,{}", e.getMessage());
|
log.error("下发混碾失败,{}", e.getMessage());
|
||||||
log.error("下发混碾失败数据:{}", workorder);
|
log.error("下发混碾失败数据:{}", workorder);
|
||||||
|
|||||||
@@ -38,112 +38,90 @@ public class AutoIssueWorkOrder {
|
|||||||
private WmsToAcsService wmsToAcsService;
|
private WmsToAcsService wmsToAcsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysNoticeService noticeService;
|
private ISysNoticeService noticeService;
|
||||||
@Autowired
|
|
||||||
private RedissonClient redissonClient;
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void run() {
|
public void run() {
|
||||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
// 获取每台设备的第一条工单
|
||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
List<PdmBdWorkorder> workorderList = workorderService.getNotIssueOrder();
|
||||||
try {
|
// 查找该设备未生产的工单去下发
|
||||||
if (tryLock) {
|
workorderList.forEach(s -> {
|
||||||
// 获取每台设备的第一条工单
|
// 判断是否有工单
|
||||||
List<PdmBdWorkorder> workorderList = workorderService.getNotIssueOrder();
|
List<PdmBdWorkorder> lists = workorderService.getTheDayProducedWorkOrderByDevice(s.getPoint_code());
|
||||||
// 查找该设备未生产的工单去下发
|
if (lists.size() > 0) {
|
||||||
workorderList.forEach(s -> {
|
return;
|
||||||
// 判断是否有工单
|
|
||||||
List<PdmBdWorkorder> lists = workorderService.getTheDayProducedWorkOrderByDevice(s.getPoint_code());
|
|
||||||
if (lists.size() > 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 已生产就退出
|
|
||||||
if (s.getWorkorder_status().equals(WorkOrderStatusEnum.PRODUCING.getCode())
|
|
||||||
|| s.getWorkorder_code().equals(WorkOrderStatusEnum.ISSUED.getCode())) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
AcsWorkOrderVo acsWorkOrderVo = workorderService.toAcsWorkOrderById(s.getWorkorder_id());
|
|
||||||
// 获取一个下发
|
|
||||||
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
|
|
||||||
list.add(acsWorkOrderVo);
|
|
||||||
AcsResponse resultForAcs;
|
|
||||||
try {
|
|
||||||
resultForAcs = wmsToAcsService.order(list);
|
|
||||||
log.info("自动下发工单:{}", list);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("工单下发异常:" + e.getMessage());
|
|
||||||
// 通知
|
|
||||||
noticeService.createNotice("工单下发失败: " + e.getMessage(), "工单下发失败: "
|
|
||||||
+ acsWorkOrderVo.getWorkorder_code(), NoticeTypeEnum.EXCEPTION.getCode());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (resultForAcs.getCode() != HttpStatus.HTTP_OK) {
|
|
||||||
// 不成功
|
|
||||||
noticeService.createNotice(resultForAcs.getMessage(), "工单下发失败: " + acsWorkOrderVo.getWorkorder_code(),
|
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 修改工单数据
|
|
||||||
PdmBdWorkorder pdmBdWorkorder = workorderService.getByCode(acsWorkOrderVo.getWorkorder_code());
|
|
||||||
pdmBdWorkorder.setWorkorder_status(WorkOrderStatusEnum.ISSUED.getCode());
|
|
||||||
TaskUtils.setWorkOrderUpdateByAcs(pdmBdWorkorder);
|
|
||||||
workorderService.updateById(pdmBdWorkorder);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} finally {
|
// 已生产就退出
|
||||||
if (tryLock) {
|
if (s.getWorkorder_status().equals(WorkOrderStatusEnum.PRODUCING.getCode())
|
||||||
lock.unlock();
|
|| s.getWorkorder_code().equals(WorkOrderStatusEnum.ISSUED.getCode())) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
AcsWorkOrderVo acsWorkOrderVo = workorderService.toAcsWorkOrderById(s.getWorkorder_id());
|
||||||
|
// 获取一个下发
|
||||||
|
List<AcsWorkOrderVo> list = new ArrayList<>();
|
||||||
|
list.add(acsWorkOrderVo);
|
||||||
|
AcsResponse resultForAcs;
|
||||||
|
try {
|
||||||
|
resultForAcs = wmsToAcsService.order(list);
|
||||||
|
log.info("自动下发工单:{}", list);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("工单下发异常:" + e.getMessage());
|
||||||
|
// 通知
|
||||||
|
noticeService.createNotice("工单下发失败: " + e.getMessage(), "工单下发失败: "
|
||||||
|
+ acsWorkOrderVo.getWorkorder_code(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (resultForAcs.getCode() != HttpStatus.HTTP_OK) {
|
||||||
|
// 不成功
|
||||||
|
noticeService.createNotice(resultForAcs.getMessage(), "工单下发失败: " + acsWorkOrderVo.getWorkorder_code(),
|
||||||
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 修改工单数据
|
||||||
|
PdmBdWorkorder pdmBdWorkorder = workorderService.getByCode(acsWorkOrderVo.getWorkorder_code());
|
||||||
|
pdmBdWorkorder.setWorkorder_status(WorkOrderStatusEnum.ISSUED.getCode());
|
||||||
|
TaskUtils.setWorkOrderUpdateByAcs(pdmBdWorkorder);
|
||||||
|
workorderService.updateById(pdmBdWorkorder);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void run_backup() {
|
public void run_backup() {
|
||||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
// todo: 获取每台设备的第一条工单
|
||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
// 获取所有设备号
|
||||||
try {
|
List<String> deviceCodes = workorderService.getTheDayUnProducedDevice();
|
||||||
if (tryLock) {
|
// 查找该设备未生产的工单去下发
|
||||||
// todo: 获取每台设备的第一条工单
|
deviceCodes.forEach(s -> {
|
||||||
// 获取所有设备号
|
// 判断是否有工单
|
||||||
List<String> deviceCodes = workorderService.getTheDayUnProducedDevice();
|
List<PdmBdWorkorder> lists = workorderService.getTheDayProducedWorkOrderByDevice(s);
|
||||||
// 查找该设备未生产的工单去下发
|
if (lists.size() > 0) return;
|
||||||
deviceCodes.forEach(s -> {
|
List<AcsWorkOrderVo> acsWorkOrderVoList = workorderService.getAcsWorkOrderVos(s);
|
||||||
// 判断是否有工单
|
if (acsWorkOrderVoList.size() == 0) return;
|
||||||
List<PdmBdWorkorder> lists = workorderService.getTheDayProducedWorkOrderByDevice(s);
|
AcsWorkOrderVo acsWorkOrderVo = acsWorkOrderVoList.get(0);
|
||||||
if (lists.size() > 0) return;
|
// 获取一个下发
|
||||||
List<AcsWorkOrderVo> acsWorkOrderVoList = workorderService.getAcsWorkOrderVos(s);
|
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
|
||||||
if (acsWorkOrderVoList.size() == 0) return;
|
list.add(acsWorkOrderVo);
|
||||||
AcsWorkOrderVo acsWorkOrderVo = acsWorkOrderVoList.get(0);
|
AcsResponse resultForAcs;
|
||||||
// 获取一个下发
|
try {
|
||||||
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
|
resultForAcs = wmsToAcsService.order(list);
|
||||||
list.add(acsWorkOrderVo);
|
} catch (Exception e) {
|
||||||
AcsResponse resultForAcs;
|
log.error("工单下发异常:" + e.getMessage());
|
||||||
try {
|
// 通知
|
||||||
resultForAcs = wmsToAcsService.order(list);
|
noticeService.createNotice("工单下发失败: " + e.getMessage(), "工单下发失败: "
|
||||||
} catch (Exception e) {
|
+ acsWorkOrderVo.getWorkorder_code(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
log.error("工单下发异常:" + e.getMessage());
|
return;
|
||||||
// 通知
|
|
||||||
noticeService.createNotice("工单下发失败: " + e.getMessage(), "工单下发失败: "
|
|
||||||
+ acsWorkOrderVo.getWorkorder_code(), NoticeTypeEnum.EXCEPTION.getCode());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (resultForAcs.getCode() != HttpStatus.HTTP_OK) {
|
|
||||||
// 不成功
|
|
||||||
noticeService.createNotice(resultForAcs.getMessage(), "工单下发失败: " + acsWorkOrderVo.getWorkorder_code(),
|
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 修改工单数据
|
|
||||||
PdmBdWorkorder pdmBdWorkorder = workorderService.getByCode(acsWorkOrderVo.getWorkorder_code());
|
|
||||||
pdmBdWorkorder.setWorkorder_status(WorkOrderStatusEnum.ISSUED.getCode());
|
|
||||||
TaskUtils.setWorkOrderUpdateByAcs(pdmBdWorkorder);
|
|
||||||
workorderService.updateById(pdmBdWorkorder);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} finally {
|
if (resultForAcs.getCode() != HttpStatus.HTTP_OK) {
|
||||||
if (tryLock) {
|
// 不成功
|
||||||
lock.unlock();
|
noticeService.createNotice(resultForAcs.getMessage(), "工单下发失败: " + acsWorkOrderVo.getWorkorder_code(),
|
||||||
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
// 修改工单数据
|
||||||
|
PdmBdWorkorder pdmBdWorkorder = workorderService.getByCode(acsWorkOrderVo.getWorkorder_code());
|
||||||
|
pdmBdWorkorder.setWorkorder_status(WorkOrderStatusEnum.ISSUED.getCode());
|
||||||
|
TaskUtils.setWorkOrderUpdateByAcs(pdmBdWorkorder);
|
||||||
|
workorderService.updateById(pdmBdWorkorder);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,5 +57,5 @@ public interface AcsToWmsService {
|
|||||||
/** 实时修改点位状态 */
|
/** 实时修改点位状态 */
|
||||||
BaseResponse realTimeSetPoint(JSONObject param);
|
BaseResponse realTimeSetPoint(JSONObject param);
|
||||||
/** 布料记录 - 上传MES */
|
/** 布料记录 - 上传MES */
|
||||||
// BaseResponse applyOneGrab(JSONObject param);
|
BaseResponse applyOneCloth(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ public class ApplyTaskResponse extends BaseResponse {
|
|||||||
private String label_message;
|
private String label_message;
|
||||||
// 特殊业务-无具体含义:目前是是否满足码满规定托盘数
|
// 特殊业务-无具体含义:目前是是否满足码满规定托盘数
|
||||||
private int is_satisfy;
|
private int is_satisfy;
|
||||||
|
private String mudBatch;
|
||||||
|
|
||||||
public static ApplyTaskResponse responseOk(String requestNo) {
|
public static ApplyTaskResponse responseOk(String requestNo) {
|
||||||
ApplyTaskResponse response = new ApplyTaskResponse();
|
ApplyTaskResponse response = new ApplyTaskResponse();
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package org.nl.wms.ext.acs.service.dto.to.wms;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.nl.wms.ext.acs.service.dto.to.BaseRequest;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ClothRequest extends BaseRequest {
|
||||||
|
/**
|
||||||
|
* 泥料批次
|
||||||
|
*/
|
||||||
|
private String slip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设定重量
|
||||||
|
*/
|
||||||
|
private String set_weight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 称量重量
|
||||||
|
*/
|
||||||
|
private String weight;
|
||||||
|
}
|
||||||
@@ -25,6 +25,7 @@ import org.nl.wms.ext.acs.service.dto.to.wms.*;
|
|||||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||||
import org.nl.wms.ext.mes.service.dto.CusterDo;
|
import org.nl.wms.ext.mes.service.dto.CusterDo;
|
||||||
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
import org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto;
|
||||||
|
import org.nl.wms.ext.mes.service.dto.SpreaderDto;
|
||||||
import org.nl.wms.ext.mms.service.WmsToMmsService;
|
import org.nl.wms.ext.mms.service.WmsToMmsService;
|
||||||
import org.nl.wms.ext.record.service.ISysInteractRecordService;
|
import org.nl.wms.ext.record.service.ISysInteractRecordService;
|
||||||
import org.nl.wms.pdm.consumption.service.IPdmBdMudConsumptionService;
|
import org.nl.wms.pdm.consumption.service.IPdmBdMudConsumptionService;
|
||||||
@@ -314,7 +315,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
return ApplyTaskResponse.responseOk(requestNo, "任务创建成功", handling);
|
return ApplyTaskResponse.responseOk(requestNo, "任务创建成功", handling);
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: 特殊处理
|
// mark: 特殊处理
|
||||||
protected int specialHandling(String regionCode, JSONObject param) {
|
protected int specialHandling(String regionCode, JSONObject param) {
|
||||||
int torus = 0; // 无业务:0,分拣剩余0托:1
|
int torus = 0; // 无业务:0,分拣剩余0托:1
|
||||||
if (regionCode.equals("FJ")) { // 判断是否够码满
|
if (regionCode.equals("FJ")) { // 判断是否够码满
|
||||||
@@ -362,7 +363,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务:申请强制满托入缓存 todo: 暂时=分拣剩料回库
|
* 任务:申请强制满托入缓存 mark: 暂时=分拣剩料回库
|
||||||
*
|
*
|
||||||
* @param param: ApplyTaskRequest的json形式
|
* @param param: ApplyTaskRequest的json形式
|
||||||
* @return
|
* @return
|
||||||
@@ -570,7 +571,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
workorderService.updateById(bdWorkorder);
|
workorderService.updateById(bdWorkorder);
|
||||||
log.info("工单完成: {}", bdWorkorder);
|
log.info("工单完成: {}", bdWorkorder);
|
||||||
try {
|
try {
|
||||||
// todo: 统计当前设备的不合格位置的数量作为不合格数,并上报给mes
|
// mark: 统计当前设备的不合格位置的数量作为不合格数,并上报给mes
|
||||||
wmsToMesService.reportPressUnusedMaterial(bdWorkorder);
|
wmsToMesService.reportPressUnusedMaterial(bdWorkorder);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("调用mes异常:{}", e.getMessage());
|
log.info("调用mes异常:{}", e.getMessage());
|
||||||
@@ -613,7 +614,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 扫码成功申请 - 判断是否静置完成
|
* 扫码成功申请 - 判断是否静置完成
|
||||||
* todo: 需要返回泥料重量
|
* mark: 需要返回泥料重量
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public ApplyTaskResponse isStandingFinish(ApplyTaskRequest baseRequest) {
|
public ApplyTaskResponse isStandingFinish(ApplyTaskRequest baseRequest) {
|
||||||
@@ -683,6 +684,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
taskResponse.setIs_standing_finish(GeneralDefinition.YES);
|
taskResponse.setIs_standing_finish(GeneralDefinition.YES);
|
||||||
taskResponse.setMessage("静置完成");
|
taskResponse.setMessage("静置完成");
|
||||||
taskResponse.setWeight(one.getMaterial_weight().toString());
|
taskResponse.setWeight(one.getMaterial_weight().toString());
|
||||||
|
taskResponse.setMudBatch(one.getPcsn());
|
||||||
// 泥料数据删除
|
// 泥料数据删除
|
||||||
List<PdmBdRequestMaterialRecord> list = requestMaterialRecordService.list(new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
|
List<PdmBdRequestMaterialRecord> list = requestMaterialRecordService.list(new LambdaQueryWrapper<PdmBdRequestMaterialRecord>()
|
||||||
.eq(PdmBdRequestMaterialRecord::getDevice_code, productionTask.getPoint_code())
|
.eq(PdmBdRequestMaterialRecord::getDevice_code, productionTask.getPoint_code())
|
||||||
@@ -716,16 +718,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
throw new BadRequestException("载具编码不能为空");
|
throw new BadRequestException("载具编码不能为空");
|
||||||
}
|
}
|
||||||
baseRequest.setVehicle_code(TaskUtils.defaultVehicleCode(baseRequest.getVehicle_code()));
|
baseRequest.setVehicle_code(TaskUtils.defaultVehicleCode(baseRequest.getVehicle_code()));
|
||||||
if (ObjectUtil.isEmpty(baseRequest.getVehicle_type())) {
|
baseRequest.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||||
baseRequest.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
|
||||||
}
|
|
||||||
SchBasePoint basePoint = pointService.getById(baseRequest.getDevice_code());
|
SchBasePoint basePoint = pointService.getById(baseRequest.getDevice_code());
|
||||||
// 入窑记录时间
|
// 入窑记录时间
|
||||||
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
|
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
|
||||||
baseRequest.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue());
|
baseRequest.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
if (ObjectUtil.isNotEmpty(groupInfo.getInto_kiln_time())) {
|
if (ObjectUtil.isEmpty(groupInfo)) {
|
||||||
// 如果已经记录就跳过
|
throw new BadRequestException("入窑失败:载具["+baseRequest.getVehicle_code()+"]组盘信息不存在!");
|
||||||
return ApplyTaskResponse.responseOk(baseRequest.getRequestNo());
|
|
||||||
}
|
}
|
||||||
groupInfo.setInto_kiln_time(DateUtil.now());
|
groupInfo.setInto_kiln_time(DateUtil.now());
|
||||||
if (ObjectUtil.isNotEmpty(basePoint)) {
|
if (ObjectUtil.isNotEmpty(basePoint)) {
|
||||||
@@ -772,7 +771,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
if (ObjectUtil.isEmpty(deviceProductionTask)) {
|
if (ObjectUtil.isEmpty(deviceProductionTask)) {
|
||||||
throw new BadRequestException("压机" + deviceCode + "暂无生产的工单");
|
throw new BadRequestException("压机" + deviceCode + "暂无生产的工单");
|
||||||
}
|
}
|
||||||
// todo: 2、通知混碾机生产泥料 - 直接存入混碾系统的数据库中
|
// mark: 2、通知混碾机生产泥料 - 直接存入混碾系统的数据库中
|
||||||
try {
|
try {
|
||||||
wmsToMmsService.addRequestMaterial(deviceProductionTask);
|
wmsToMmsService.addRequestMaterial(deviceProductionTask);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -951,4 +950,31 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
}
|
}
|
||||||
return BaseResponse.responseOk(actionRequest.getRequestNo());
|
return BaseResponse.responseOk(actionRequest.getRequestNo());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse applyOneCloth(JSONObject param) {
|
||||||
|
// mark: 上传mes数据
|
||||||
|
ClothRequest actionRequest = param.toJavaObject(ClothRequest.class);
|
||||||
|
// 获取工单
|
||||||
|
PdmBdWorkorder productionTask = workorderService.getDeviceDockingProductionTask(actionRequest.getDevice_code());
|
||||||
|
MdBaseMaterial mdBaseMaterial = materialService.getById(productionTask.getMaterial_id());
|
||||||
|
SpreaderDto spreaderDto = new SpreaderDto();
|
||||||
|
spreaderDto.setMSGID(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
|
spreaderDto.setTIM(DateUtil.now());
|
||||||
|
BigDecimal bigDecimalValue = new BigDecimal(ObjectUtil.isEmpty(actionRequest.getWeight())
|
||||||
|
? "0" : actionRequest.getWeight());
|
||||||
|
spreaderDto.setACT_WEIGHT(bigDecimalValue);
|
||||||
|
BigDecimal bigDecimal = new BigDecimal(ObjectUtil.isEmpty(actionRequest.getSet_weight())
|
||||||
|
? "0" : actionRequest.getSet_weight());
|
||||||
|
spreaderDto.setTHEO_WEIGHT(bigDecimal);
|
||||||
|
spreaderDto.setMATERIAL_ID(mdBaseMaterial.getMaterial_id());
|
||||||
|
spreaderDto.setMATERIAL_NAME(mdBaseMaterial.getMaterial_name());
|
||||||
|
spreaderDto.setMATERIAL_SPEC(mdBaseMaterial.getMaterial_spec());
|
||||||
|
spreaderDto.setMATERIAL_MODEL(mdBaseMaterial.getMaterial_model());
|
||||||
|
spreaderDto.setFPROBATCH(actionRequest.getSlip());
|
||||||
|
spreaderDto.setCREATE_TM(DateUtil.now());
|
||||||
|
spreaderDto.setOP_FLAG(GeneralDefinition.NO);
|
||||||
|
wmsToMesService.reportSpreaderInfoToMes(spreaderDto);
|
||||||
|
return BaseResponse.responseOk(actionRequest.getRequestNo());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,10 @@ package org.nl.wms.ext.mes.autotask;
|
|||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||||
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.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description: 自动同步物料
|
* @Description: 自动同步物料
|
||||||
@@ -22,20 +18,8 @@ import java.util.concurrent.TimeUnit;
|
|||||||
public class AutoSynMaterialInfo {
|
public class AutoSynMaterialInfo {
|
||||||
@Autowired
|
@Autowired
|
||||||
private WmsToMesService wmsToMesService;
|
private WmsToMesService wmsToMesService;
|
||||||
@Autowired
|
|
||||||
private RedissonClient redissonClient;
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void run() {
|
public void run() {
|
||||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
wmsToMesService.synchronizeMaterialInfo();
|
||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
|
||||||
try {
|
|
||||||
if (tryLock) {
|
|
||||||
wmsToMesService.synchronizeMaterialInfo();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (tryLock) {
|
|
||||||
lock.unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,21 +23,8 @@ public class AutoSynWorkOrderInfo {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private WmsToMesService wmsToMesService;
|
private WmsToMesService wmsToMesService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private RedissonClient redissonClient;
|
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void run() {
|
public void run() {
|
||||||
RLock lock = redissonClient.getLock(this.getClass().getName());
|
wmsToMesService.synchronizeWorkOrderInfo();
|
||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
|
||||||
try {
|
|
||||||
if (tryLock) {
|
|
||||||
wmsToMesService.synchronizeWorkOrderInfo();
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
if (tryLock) {
|
|
||||||
lock.unlock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,4 +134,10 @@ public interface WmsToMesService {
|
|||||||
int getTotal(String materialId);
|
int getTotal(String materialId);
|
||||||
|
|
||||||
CusterDo getCusterByName(String custerName);
|
CusterDo getCusterByName(String custerName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上报布料机数据
|
||||||
|
* @param spreaderDto
|
||||||
|
*/
|
||||||
|
void reportSpreaderInfoToMes(SpreaderDto spreaderDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,6 @@ public interface MesRequestMapper {
|
|||||||
CusterDo getCusterByNo(String custerNo);
|
CusterDo getCusterByNo(String custerNo);
|
||||||
@DS("oracle")
|
@DS("oracle")
|
||||||
List<MesOrderInfo> selectPageMesOrder(String materialId, int currentPage, int currentSize);
|
List<MesOrderInfo> selectPageMesOrder(String materialId, int currentPage, int currentSize);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取当前物料的订单总数
|
* 获取当前物料的订单总数
|
||||||
* @param materialId
|
* @param materialId
|
||||||
@@ -76,4 +75,6 @@ public interface MesRequestMapper {
|
|||||||
int getOrderTotalByMaterial(String materialId);
|
int getOrderTotalByMaterial(String materialId);
|
||||||
@DS("oracle")
|
@DS("oracle")
|
||||||
CusterDo getCusterByName(String custerName);
|
CusterDo getCusterByName(String custerName);
|
||||||
|
@DS("oracle")
|
||||||
|
void reportSpreaderInfoToMes(SpreaderDto spreaderDto);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,6 +90,12 @@
|
|||||||
, #{GROUP_BIND_MATERIAL_STATUS}, #{MOVE_WAY}, #{REMARK}, #{UPDATE_TIME}, #{OUT_KILN_TIME}, #{INTO_KILN_TIME}
|
, #{GROUP_BIND_MATERIAL_STATUS}, #{MOVE_WAY}, #{REMARK}, #{UPDATE_TIME}, #{OUT_KILN_TIME}, #{INTO_KILN_TIME}
|
||||||
, #{CREATE_TM}, #{OP_FLAG})
|
, #{CREATE_TM}, #{OP_FLAG})
|
||||||
</insert>
|
</insert>
|
||||||
|
<insert id="reportSpreaderInfoToMes" parameterType="org.nl.wms.ext.mes.service.dto.SpreaderDto">
|
||||||
|
INSERT INTO "LMSTELCOM"."RECEIVE_MUDLAYOUT_RECORD"(MSGID, TIM, ACT_WEIGHT, THEO_WEIGHT, MATERIAL_ID, MATERIAL_NAME
|
||||||
|
, MATERIAL_SPEC, MATERIAL_MODEL, FPROBATCH, CREATE_TM, OP_FLAG)
|
||||||
|
VALUES (#{MSGID}, #{TIM}, #{ACT_WEIGHT}, #{THEO_WEIGHT}, #{MATERIAL_ID}, #{MATERIAL_NAME}, #{MATERIAL_SPEC}
|
||||||
|
, #{MATERIAL_MODEL}, #{FPROBATCH}, #{CREATE_TM}, #{OP_FLAG})
|
||||||
|
</insert>
|
||||||
<update id="updateWorkOrderRead" parameterType="java.util.List">
|
<update id="updateWorkOrderRead" parameterType="java.util.List">
|
||||||
UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS"
|
UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS"
|
||||||
SET OP_FLAG = '1'
|
SET OP_FLAG = '1'
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package org.nl.wms.ext.mes.service.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description: 布料机信息DO
|
||||||
|
* @Date: 2023/11/16
|
||||||
|
* 唯一ID
|
||||||
|
* 时间
|
||||||
|
* 称量重量
|
||||||
|
* 设定重量
|
||||||
|
* 当前生产产品编码
|
||||||
|
* 当前生产产品名称
|
||||||
|
* 当前生产砖型
|
||||||
|
* 当前生产型号
|
||||||
|
* 配料批次号
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SpreaderDto {
|
||||||
|
private String MSGID;
|
||||||
|
private String TIM;
|
||||||
|
private BigDecimal ACT_WEIGHT;
|
||||||
|
private BigDecimal THEO_WEIGHT;
|
||||||
|
private String MATERIAL_ID;
|
||||||
|
private String MATERIAL_NAME;
|
||||||
|
private String MATERIAL_SPEC;
|
||||||
|
private String MATERIAL_MODEL;
|
||||||
|
private String FPROBATCH;
|
||||||
|
private String CREATE_TM;
|
||||||
|
private String OP_FLAG;
|
||||||
|
private String OP_TM;
|
||||||
|
}
|
||||||
@@ -64,7 +64,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("上报mes消耗泥料记录的数据:{}", mudObject);
|
log.error("上报mes消耗泥料记录的数据:{}", mudObject);
|
||||||
log.error("上报mes消耗泥料记录失败:{}", e.getMessage());
|
log.error("上报mes消耗泥料记录失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("上报mes消耗泥料数据失败", "消耗泥料数据" + mudObject.getPWORKSCHE_ID(),
|
noticeService.createNotice("上报mes消耗泥料数据失败", "消耗泥料数据" + mudObject.getPWORKSCHE_ID(),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -198,7 +197,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
log.error("半成品入库-获取MES给的工单数据:{}", mesWorkOrderDto);
|
log.error("半成品入库-获取MES给的工单数据:{}", mesWorkOrderDto);
|
||||||
log.error("半成品入库返给MES的数据:{}", semiProductionInfoInDto);
|
log.error("半成品入库返给MES的数据:{}", semiProductionInfoInDto);
|
||||||
log.error("半成品入库插入mes数据库失败:{}", e.getMessage());
|
log.error("半成品入库插入mes数据库失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("半成品入库插入mes数据库失败", "半成品入库"
|
noticeService.createNotice("半成品入库插入mes数据库失败", "半成品入库"
|
||||||
+ semiProductionInfoInDto.getMSGID(), NoticeTypeEnum.EXCEPTION.getCode());
|
+ semiProductionInfoInDto.getMSGID(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -242,7 +240,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
log.error("半成品出库-获取MES给的工单数据:{}", mesWorkOrderDto);
|
log.error("半成品出库-获取MES给的工单数据:{}", mesWorkOrderDto);
|
||||||
log.error("半成品出库返给MES的数据:{}", semiProductionInfoOutDto);
|
log.error("半成品出库返给MES的数据:{}", semiProductionInfoOutDto);
|
||||||
log.error("半成品出库插入mes数据库失败:{}", e.getMessage());
|
log.error("半成品出库插入mes数据库失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("半成品出库插入mes数据库失败", "半成品出库" + semiProductionInfoOutDto.getMSGID(),
|
noticeService.createNotice("半成品出库插入mes数据库失败", "半成品出库" + semiProductionInfoOutDto.getMSGID(),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -284,7 +281,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
log.error("入窑-获取MES给的工单数据:{}", mesWorkOrderDto);
|
log.error("入窑-获取MES给的工单数据:{}", mesWorkOrderDto);
|
||||||
log.error("入窑返给MES的数据:{}", gdyMaterialInDto);
|
log.error("入窑返给MES的数据:{}", gdyMaterialInDto);
|
||||||
log.error("入窑插入mes数据库失败:{}", e.getMessage());
|
log.error("入窑插入mes数据库失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("入窑插入mes数据库失败", "入窑" + gdyMaterialInDto.getMSGID(),
|
noticeService.createNotice("入窑插入mes数据库失败", "入窑" + gdyMaterialInDto.getMSGID(),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -326,7 +322,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
log.error("出窑-获取MES给的工单数据:{}", mesWorkOrderDto);
|
log.error("出窑-获取MES给的工单数据:{}", mesWorkOrderDto);
|
||||||
log.error("出窑返给MES的数据:{}", gdyMaterialOutDto);
|
log.error("出窑返给MES的数据:{}", gdyMaterialOutDto);
|
||||||
log.error("出窑插入mes数据库失败:{}", e.getMessage());
|
log.error("出窑插入mes数据库失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("出窑插入mes数据库失败", "出窑" + gdyMaterialOutDto.getMSGID(),
|
noticeService.createNotice("出窑插入mes数据库失败", "出窑" + gdyMaterialOutDto.getMSGID(),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -380,7 +375,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
log.error("统计到设备:{} 不合格砖数:{}", orderObj.getPoint_name(), number);
|
log.error("统计到设备:{} 不合格砖数:{}", orderObj.getPoint_name(), number);
|
||||||
log.error("插入mes机口判废数据库的数据:{}", mesUnusedDto);
|
log.error("插入mes机口判废数据库的数据:{}", mesUnusedDto);
|
||||||
log.error("插入机口判废失败:{}", e.getMessage());
|
log.error("插入机口判废失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("机口判废插入mes数据库失败", "机口判废" + mesUnusedDto.getMSGID(),
|
noticeService.createNotice("机口判废插入mes数据库失败", "机口判废" + mesUnusedDto.getMSGID(),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -402,7 +396,6 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("插入压机检测数据:{}", mesQSPressMonitorData);
|
log.error("插入压机检测数据:{}", mesQSPressMonitorData);
|
||||||
log.error("插入压机检测失败:{}", e.getMessage());
|
log.error("插入压机检测失败:{}", e.getMessage());
|
||||||
// todo:发送通知
|
|
||||||
noticeService.createNotice("压机检测插入mes数据库失败", "压机检测"
|
noticeService.createNotice("压机检测插入mes数据库失败", "压机检测"
|
||||||
+ mesQSPressMonitorData.getBRICK_ID(), NoticeTypeEnum.EXCEPTION.getCode());
|
+ mesQSPressMonitorData.getBRICK_ID(), NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
@@ -443,6 +436,11 @@ public class WmsToMesServiceImpl implements WmsToMesService {
|
|||||||
return mesRequestMapper.getCusterByName(custerName);
|
return mesRequestMapper.getCusterByName(custerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void reportSpreaderInfoToMes(SpreaderDto spreaderDto) {
|
||||||
|
mesRequestMapper.reportSpreaderInfoToMes(spreaderDto);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 转换
|
* 转换
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -63,4 +63,10 @@ public class SysInteractRecordController {
|
|||||||
sysInteractRecordService.deleteAll(ids);
|
sysInteractRecordService.deleteAll(ids);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//@SaCheckPermission("@el.check('sysInteractRecord:del')")
|
||||||
|
@GetMapping("/getAllName")
|
||||||
|
public ResponseEntity<Object> getAllName() {
|
||||||
|
return new ResponseEntity<>(sysInteractRecordService.getAllInteractName(), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.nl.wms.ext.record.service.dao.SysInteractRecord;
|
|||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
|
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -77,4 +78,9 @@ public interface ISysInteractRecordService extends IService<SysInteractRecord> {
|
|||||||
* @param maxRowsToDelete 最大删除数
|
* @param maxRowsToDelete 最大删除数
|
||||||
*/
|
*/
|
||||||
void deleteByRows(Param maxRowsToKeep, Param maxRowsToDelete);
|
void deleteByRows(Param maxRowsToKeep, Param maxRowsToDelete);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有标题
|
||||||
|
*/
|
||||||
|
List<String> getAllInteractName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package org.nl.wms.ext.record.service.dao.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
|
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lyd
|
* @author lyd
|
||||||
* @date 2023-07-19
|
* @date 2023-07-19
|
||||||
@@ -12,4 +14,6 @@ public interface SysInteractRecordMapper extends BaseMapper<SysInteractRecord> {
|
|||||||
void deleteByDay(String day);
|
void deleteByDay(String day);
|
||||||
|
|
||||||
void deleteByRows(String maxRowsToKeep, String maxRowsToDelete);
|
void deleteByRows(String maxRowsToKeep, String maxRowsToDelete);
|
||||||
|
|
||||||
|
List<String> getAllInteractName();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,11 @@
|
|||||||
<delete id="deleteByRows">
|
<delete id="deleteByRows">
|
||||||
CALL DeleteRowsIfNeeded(#{maxRowsToKeep}, #{maxRowsToDelete})
|
CALL DeleteRowsIfNeeded(#{maxRowsToKeep}, #{maxRowsToDelete})
|
||||||
</delete>
|
</delete>
|
||||||
|
<select id="getAllInteractName" resultType="java.lang.String">
|
||||||
|
SELECT
|
||||||
|
DISTINCT interact_name
|
||||||
|
FROM
|
||||||
|
`sys_interact_record`
|
||||||
|
ORDER BY interact_name
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -42,10 +43,15 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<SysInteractRecord> queryAll(Map whereJson, PageQuery page){
|
public IPage<SysInteractRecord> queryAll(Map whereJson, PageQuery page){
|
||||||
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry")) ? whereJson.get("blurry").toString() : null;
|
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))
|
||||||
String interactDirection = ObjectUtil.isNotEmpty(whereJson.get("interact_direction")) ? whereJson.get("interact_direction").toString() : null;
|
? whereJson.get("blurry").toString() : null;
|
||||||
|
String interactDirection = ObjectUtil.isNotEmpty(whereJson.get("interact_direction"))
|
||||||
|
? whereJson.get("interact_direction").toString() : null;
|
||||||
|
String interactName = ObjectUtil.isNotEmpty(whereJson.get("interact_name"))
|
||||||
|
? whereJson.get("interact_name").toString() : null;
|
||||||
LambdaQueryWrapper<SysInteractRecord> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysInteractRecord> lam = new LambdaQueryWrapper<>();
|
||||||
lam.eq(interactDirection!=null, SysInteractRecord::getDirection, interactDirection)
|
lam.eq(interactDirection!=null, SysInteractRecord::getDirection, interactDirection)
|
||||||
|
.eq(ObjectUtil.isNotEmpty(interactName), SysInteractRecord::getInteract_name, interactName)
|
||||||
.and(blurry != null, s -> s.like(SysInteractRecord::getInteract_name, blurry)
|
.and(blurry != null, s -> s.like(SysInteractRecord::getInteract_name, blurry)
|
||||||
.or()
|
.or()
|
||||||
.like(SysInteractRecord::getMessage, blurry)
|
.like(SysInteractRecord::getMessage, blurry)
|
||||||
@@ -155,4 +161,9 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
|
|||||||
sysInteractRecordMapper.deleteByRows(maxRowsToKeep.getValue(), maxRowsToDelete.getValue());
|
sysInteractRecordMapper.deleteByRows(maxRowsToKeep.getValue(), maxRowsToDelete.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getAllInteractName() {
|
||||||
|
return sysInteractRecordMapper.getAllInteractName();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,6 +196,7 @@ public class PdaServiceImpl implements PdaService {
|
|||||||
}
|
}
|
||||||
// 开工
|
// 开工
|
||||||
bdWorkorder.setOperator(manualSortingDto.getUsername());
|
bdWorkorder.setOperator(manualSortingDto.getUsername());
|
||||||
|
bdWorkorder.setRealproducestart_date(DateUtil.now());
|
||||||
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode());
|
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode());
|
||||||
TaskUtils.setWorkOrderUpdateByPC(bdWorkorder);
|
TaskUtils.setWorkOrderUpdateByPC(bdWorkorder);
|
||||||
workorderService.updateById(bdWorkorder);
|
workorderService.updateById(bdWorkorder);
|
||||||
@@ -216,6 +217,7 @@ public class PdaServiceImpl implements PdaService {
|
|||||||
throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]已完工");
|
throw new BadRequestException("工单:[" + bdWorkorder.getWorkorder_code() + "]已完工");
|
||||||
}
|
}
|
||||||
TaskUtils.setWorkOrderUpdateByPC(bdWorkorder);
|
TaskUtils.setWorkOrderUpdateByPC(bdWorkorder);
|
||||||
|
bdWorkorder.setRealproduceend_date(DateUtil.now());
|
||||||
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode());
|
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode());
|
||||||
workorderService.updateById(bdWorkorder);
|
workorderService.updateById(bdWorkorder);
|
||||||
return PdaResponseVo.pdaResultOk("工单:[" + bdWorkorder.getWorkorder_code() + "]完工成功");
|
return PdaResponseVo.pdaResultOk("工单:[" + bdWorkorder.getWorkorder_code() + "]完工成功");
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
|
|||||||
List<PdmBdWorkorder> getTheDayUnProducedWorkOrder();
|
List<PdmBdWorkorder> getTheDayUnProducedWorkOrder();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* todo: 获取当天需要下发的工单
|
* mark: 获取当天需要下发的工单
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PdmBdWorkorder> getTheDayIssueWorkOrderList();
|
List<PdmBdWorkorder> getTheDayIssueWorkOrderList();
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
|
|||||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||||
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_manage.GeneralDefinition;
|
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.WorkOrderStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum;
|
||||||
@@ -41,9 +42,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lyd
|
* @author lyd
|
||||||
@@ -70,6 +71,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
|||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdBaseBrickInfoService baseBrickInfoService;
|
private IMdBaseBrickInfoService baseBrickInfoService;
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page) {
|
public IPage<PdmBdWorkorder> queryAll(PdmBdWorkorderQuery query, PageQuery page) {
|
||||||
@@ -197,7 +200,7 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
|||||||
// 设置开工人
|
// 设置开工人
|
||||||
pdmBdWorkorder.setOperator(ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUser())
|
pdmBdWorkorder.setOperator(ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUser())
|
||||||
? SecurityUtils.getCurrentNickName() : "");
|
? SecurityUtils.getCurrentNickName() : "");
|
||||||
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
|
List<AcsWorkOrderVo> list = new ArrayList<>();
|
||||||
// 重装数据回ACS,重新根据id找一遍,省的改动以上代码
|
// 重装数据回ACS,重新根据id找一遍,省的改动以上代码
|
||||||
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());
|
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());
|
||||||
list.add(acsWorkOrderVo);
|
list.add(acsWorkOrderVo);
|
||||||
@@ -253,8 +256,12 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnoughCallEmpty(String deviceCode) {
|
public boolean isEnoughCallEmpty(String deviceCode) {
|
||||||
|
// 计算搬运中的任务
|
||||||
|
// hint: 对应当前位置的问题,需要校验的是:包装位置到当前对接位的设备
|
||||||
|
int count = taskService.getEmptyVehicleCarryingByDevice(deviceCode);
|
||||||
PdmBdWorkorder workorder = this.getDeviceDockingProductionTask(deviceCode);
|
PdmBdWorkorder workorder = this.getDeviceDockingProductionTask(deviceCode);
|
||||||
BigDecimal realQty = workorder.getReal_qty();
|
BigDecimal bigDecimal = new BigDecimal(count);
|
||||||
|
BigDecimal realQty = workorder.getReal_qty().add(bigDecimal);
|
||||||
BigDecimal planQty = workorder.getPlan_qty();
|
BigDecimal planQty = workorder.getPlan_qty();
|
||||||
// 还可以叫空盘
|
// 还可以叫空盘
|
||||||
return realQty.compareTo(planQty) < 0;
|
return realQty.compareTo(planQty) < 0;
|
||||||
@@ -314,7 +321,7 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
|||||||
bdWorkorder.setUnqualified_qty(unqualified_qty);
|
bdWorkorder.setUnqualified_qty(unqualified_qty);
|
||||||
this.updateById(bdWorkorder);
|
this.updateById(bdWorkorder);
|
||||||
try {
|
try {
|
||||||
// todo: 统计当前设备的不合格位置的数量作为不合格数,并上报给mes
|
// mark: 统计当前设备的不合格位置的数量作为不合格数,并上报给mes
|
||||||
wmsToMesService.reportPressUnusedMaterial(bdWorkorder);
|
wmsToMesService.reportPressUnusedMaterial(bdWorkorder);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.info("调用mes异常:{}", e.getMessage());
|
log.info("调用mes异常:{}", e.getMessage());
|
||||||
|
|||||||
@@ -161,7 +161,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
|||||||
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
||||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
|
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
|
||||||
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
|
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
|
||||||
.notIn(SchBaseVehiclematerialgroup::getVehicle_type, list);
|
.notIn(SchBaseVehiclematerialgroup::getVehicle_type, list)
|
||||||
|
.orderByDesc(SchBaseVehiclematerialgroup::getUpdate_time);
|
||||||
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
|
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
|
||||||
return selectOne.size() > 0 ? selectOne.get(0) : null;
|
return selectOne.size() > 0 ? selectOne.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,4 +102,11 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
|||||||
void operation(Map<String, Object> param);
|
void operation(Map<String, Object> param);
|
||||||
|
|
||||||
SchBaseTask getByCode(String taskCode);
|
SchBaseTask getByCode(String taskCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回当前设备搬运木控盘的任务数量
|
||||||
|
* @param deviceCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int getEmptyVehicleCarryingByDevice(String deviceCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,4 +9,5 @@ import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
|||||||
**/
|
**/
|
||||||
public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
public interface SchBaseTaskMapper extends BaseMapper<SchBaseTask> {
|
||||||
|
|
||||||
|
int getEmptyVehicleCarryingByDevice(String deviceCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,16 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper">
|
<mapper namespace="org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper">
|
||||||
|
|
||||||
|
<select id="getEmptyVehicleCarryingByDevice" resultType="java.lang.Integer">
|
||||||
|
SELECT
|
||||||
|
COUNT(*)
|
||||||
|
FROM
|
||||||
|
`sch_base_task` t
|
||||||
|
LEFT JOIN sch_base_point p1 ON p1.point_code = t.point_code4
|
||||||
|
LEFT JOIN sch_base_point p2 ON p2.point_code = #{deviceCode}
|
||||||
|
WHERE t.config_code = 'FJMLTask'
|
||||||
|
AND t.point_code4 IS NOT NULL
|
||||||
|
AND t.task_status IN ('1', '2', '3', '4')
|
||||||
|
AND p1.parent_point_code = p2.parent_point_code
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -243,4 +243,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
return this.getOne(lam);
|
return this.getOne(lam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEmptyVehicleCarryingByDevice(String deviceCode) {
|
||||||
|
return schBaseTaskMapper.getEmptyVehicleCarryingByDevice(deviceCode);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public abstract class AbstractTask {
|
|||||||
//1、获取任务
|
//1、获取任务
|
||||||
//2、根据任务配置补全任务
|
//2、根据任务配置补全任务
|
||||||
//3、下发
|
//3、下发
|
||||||
List<AcsTaskDto> list = new CopyOnWriteArrayList<>();
|
List<AcsTaskDto> list = new ArrayList<>();
|
||||||
for (SchBaseTask task : taskList) {
|
for (SchBaseTask task : taskList) {
|
||||||
AcsTaskDto taskDto = new AcsTaskDto();
|
AcsTaskDto taskDto = new AcsTaskDto();
|
||||||
String responseParam = task.getResponse_param();
|
String responseParam = task.getResponse_param();
|
||||||
|
|||||||
@@ -27,5 +27,6 @@ public class AutoRestorePoint {
|
|||||||
List<SchBasePoint> pointList = pointService.getAllUnlockAbnormalPoints();
|
List<SchBasePoint> pointList = pointService.getAllUnlockAbnormalPoints();
|
||||||
pointList.forEach(point -> point.setIng_task_code(""));
|
pointList.forEach(point -> point.setIng_task_code(""));
|
||||||
pointService.updateBatchById(pointList);
|
pointService.updateBatchById(pointList);
|
||||||
|
log.info("自动恢复异常点位:{}", pointList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,11 +105,11 @@ public class CTQKTask extends AbstractTask {
|
|||||||
task.setPoint_code1(point.getPoint_code());
|
task.setPoint_code1(point.getPoint_code());
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setVehicle_qty(point.getVehicle_qty());
|
task.setVehicle_qty(point.getVehicle_qty());
|
||||||
|
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
// 点位更新
|
// 点位更新
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
pointService.update(point);
|
|
||||||
PointUtils.setUpdateByAcs(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,6 @@ public class CTQKTask extends AbstractTask {
|
|||||||
// 任务完成
|
// 任务完成
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||||
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
|
||||||
taskObj.setFinished_type(taskFinishedType.getCode());
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
|
|||||||
@@ -197,7 +197,6 @@ public class DTSKTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
|
||||||
taskObj.setFinished_type(taskFinishedType.getCode());
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ public class FJMKTask extends AbstractTask {
|
|||||||
// 设置组盘 - 需要的话由子类自行实现
|
// 设置组盘 - 需要的话由子类自行实现
|
||||||
task.setGroup_id(setGroupPlate(jsonObject));
|
task.setGroup_id(setGroupPlate(jsonObject));
|
||||||
task.setPoint_code2(packagePoint.getPoint_code());
|
task.setPoint_code2(packagePoint.getPoint_code());
|
||||||
// 大于等于2就可以码
|
// 为0就呼叫
|
||||||
if (jsonObject.getInteger("special_param") == 0) {
|
if (jsonObject.getInteger("special_param") == 0) {
|
||||||
/** 覆膜机木托盘位 */
|
/** 覆膜机木托盘位 */
|
||||||
SchBasePoint LaminatePoint = findStartPoint(startRegionStr, jsonObject);
|
SchBasePoint LaminatePoint = findStartPoint(startRegionStr, jsonObject);
|
||||||
|
|||||||
@@ -5,13 +5,8 @@ import com.alibaba.fastjson.JSON;
|
|||||||
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.common.utils.CodeUtil;
|
|
||||||
import org.nl.config.MapOf;
|
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
import org.nl.wms.ext.acs.service.dto.SignalData;
|
|
||||||
import org.nl.wms.ext.acs.service.dto.to.BaseRequest;
|
|
||||||
import org.nl.wms.ext.acs.service.dto.to.acs.PutActionRequest;
|
|
||||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
@@ -25,11 +20,9 @@ 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;
|
||||||
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.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -37,7 +30,6 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -100,7 +92,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
// 设置起点并修改创建成功状态
|
// 设置起点并修改创建成功状态
|
||||||
task.setPoint_code1(point.getParent_point_code());
|
task.setPoint_code1(point.getParent_point_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
// todo: 未确认是否放在1还是2,目前规定四点任务空盘的载具编码是2
|
// mark: 未确认是否放在1还是2,目前规定四点任务空盘的载具编码是2
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setGroup_id(point.getGroup_id());
|
task.setGroup_id(point.getGroup_id());
|
||||||
task.setResponse_param(param.toJSONString());
|
task.setResponse_param(param.toJSONString());
|
||||||
@@ -132,7 +124,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
// 判断工单是否够
|
// 判断工单是否够
|
||||||
boolean enoughCallEmpty = workorderService.isEnoughCallEmpty(task.getPoint_code2());
|
boolean enoughCallEmpty = workorderService.isEnoughCallEmpty(task.getPoint_code2());
|
||||||
if (!enoughCallEmpty) {
|
if (!enoughCallEmpty) {
|
||||||
throw new BadRequestException("数量不足,不呼叫空盘");
|
throw new BadRequestException("所需数量已足够,不呼叫空盘");
|
||||||
}
|
}
|
||||||
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
@@ -153,7 +145,7 @@ public class FJQKTask extends AbstractTask {
|
|||||||
task.setPoint_code1(point.getParent_point_code());
|
task.setPoint_code1(point.getParent_point_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
task.setResponse_param(param.toJSONString());
|
task.setResponse_param(param.toJSONString());
|
||||||
// todo: 未确认是否放在1还是2,目前规定四点任务空盘的载具编码是2
|
// mark: 未确认是否放在1还是2,目前规定四点任务空盘的载具编码是2
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setGroup_id(point.getGroup_id());
|
task.setGroup_id(point.getGroup_id());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ public class FJSLTask extends AbstractTask {
|
|||||||
task.setPoint_code2(point.getPoint_code());
|
task.setPoint_code2(point.getPoint_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
|
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||||
TaskUtils.setUpdateByAcs(task);
|
TaskUtils.setUpdateByAcs(task);
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
|
||||||
|
|||||||
@@ -95,9 +95,6 @@ public class CYZCTask extends AbstractTask {
|
|||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
PointUtils.setUpdateByAcs(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
|
|
||||||
//下发
|
|
||||||
//this.renotifyAcs(task);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -138,16 +135,16 @@ public class CYZCTask extends AbstractTask {
|
|||||||
public String setGroupPlate(JSONObject param) {
|
public String setGroupPlate(JSONObject param) {
|
||||||
// 查找组盘表信息,不做修改
|
// 查找组盘表信息,不做修改
|
||||||
String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code"));
|
String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code"));
|
||||||
String vehicleType = param.getString("vehicle_type");
|
String vehicleType = GeneralDefinition.STEEL_TRAY;
|
||||||
if (ObjectUtil.isEmpty(vehicleCode)) {
|
if (ObjectUtil.isEmpty(vehicleCode)) {
|
||||||
throw new BadRequestException("载具号不能为空");
|
throw new BadRequestException("载具号不能为空");
|
||||||
}
|
}
|
||||||
if (vehicleCode == null) {
|
|
||||||
vehicleType = GeneralDefinition.STEEL_TRAY;
|
|
||||||
}
|
|
||||||
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroupInfo(vehicleCode,
|
SchBaseVehiclematerialgroup one = vehiclematerialgroupService.getGroupInfo(vehicleCode,
|
||||||
vehicleType, GroupBindMaterialStatusEnum.BOUND.getValue());
|
vehicleType, GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
return ObjectUtil.isNotEmpty(one) ? one.getGroup_id() : "";
|
if (ObjectUtil.isEmpty(one)) {
|
||||||
|
throw new BadRequestException("载具号[" + vehicleCode + "]的组盘信息不存在");
|
||||||
|
}
|
||||||
|
return one.getGroup_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ public class GZYQLTask extends AbstractTask {
|
|||||||
task.setPoint_code1(point.getPoint_code());
|
task.setPoint_code1(point.getPoint_code());
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
|
task.setVehicle_type(GeneralDefinition.STEEL_TRAY);
|
||||||
TaskUtils.setUpdateByAcs(task);
|
TaskUtils.setUpdateByAcs(task);
|
||||||
taskService.updateById(task);
|
taskService.updateById(task);
|
||||||
|
|
||||||
|
|||||||
@@ -216,12 +216,12 @@ public class YZSLTask extends AbstractTask {
|
|||||||
taskObj.setRemark("执行中");
|
taskObj.setRemark("执行中");
|
||||||
TaskUtils.setUpdateByAcs(taskObj);
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
// todo:暂时现在执行中的时候将满托上给mes
|
// mark:暂时现在执行中的时候将满托上给mes
|
||||||
wmsToMesService.reportProductData(taskObj.getGroup_id());
|
wmsToMesService.reportProductData(taskObj.getGroup_id());
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
if (status.equals(TaskStatus.FINISHED)) { // 完成
|
||||||
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
// todo: 完成后上报给MES
|
// mark: 完成后上报给MES
|
||||||
wmsToMesService.reportSemiProductionInfoIn(taskObj.getGroup_id());
|
wmsToMesService.reportSemiProductionInfoIn(taskObj.getGroup_id());
|
||||||
}
|
}
|
||||||
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
if (status.equals(TaskStatus.CANCELED)) { // 取消
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ mybatis-plus:
|
|||||||
configuration:
|
configuration:
|
||||||
map-underscore-to-camel-case: false
|
map-underscore-to-camel-case: false
|
||||||
jdbc-type-for-null: null
|
jdbc-type-for-null: null
|
||||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
log-impl: org.nl.config.mybatis.MyStdOutImpl
|
||||||
mapper-locations:
|
mapper-locations:
|
||||||
- classpath:org.nl.**.mapper/*.xml
|
- classpath:org.nl.**.mapper/*.xml
|
||||||
global-config:
|
global-config:
|
||||||
|
|||||||
@@ -232,4 +232,28 @@ public class PointCreate {
|
|||||||
}
|
}
|
||||||
pointService.saveBatch(pointList);
|
pointService.saveBatch(pointList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void BLJ() {
|
||||||
|
List<SchBasePoint> pointList = new ArrayList<>();
|
||||||
|
for (int i = 1; i <= 8; i++) {
|
||||||
|
String pointName = "布料机0";
|
||||||
|
String pointCode = "BLJ0";
|
||||||
|
pointName = pointName + i;
|
||||||
|
pointCode = pointCode + i;
|
||||||
|
SchBasePoint point = new SchBasePoint();
|
||||||
|
point.setPoint_code(pointCode);
|
||||||
|
point.setPoint_name(pointName);
|
||||||
|
point.setRegion_code("YZ");
|
||||||
|
point.setRegion_name("压制区域");
|
||||||
|
point.setParent_point_code("YJ0" + i);
|
||||||
|
point.setIs_has_workder(false);
|
||||||
|
point.setIs_auto(false);
|
||||||
|
point.setCreate_id("1");
|
||||||
|
point.setCreate_name("管理员");
|
||||||
|
point.setCreate_time(DateUtil.now());
|
||||||
|
pointList.add(point);
|
||||||
|
}
|
||||||
|
pointService.saveBatch(pointList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,16 @@
|
|||||||
@keyup.enter.native="crud.toQuery"
|
@keyup.enter.native="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="标题">
|
||||||
|
<el-select v-model="query.interact_name" placeholder="标题" clearable @change="crud.toQuery()">
|
||||||
|
<el-option
|
||||||
|
v-for="item in interact_name_list"
|
||||||
|
:key="item"
|
||||||
|
:label="item"
|
||||||
|
:value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="请求方向">
|
<el-form-item label="请求方向">
|
||||||
<el-select v-model="query.interact_direction" placeholder="请求方向" clearable>
|
<el-select v-model="query.interact_direction" placeholder="请求方向" clearable>
|
||||||
<el-option
|
<el-option
|
||||||
@@ -186,9 +196,13 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
permission: {},
|
permission: {},
|
||||||
rules: {}
|
rules: {},
|
||||||
|
interact_name_list: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
|
this.getNameList()
|
||||||
|
},
|
||||||
computed: {
|
computed: {
|
||||||
formattedRequestParam: {
|
formattedRequestParam: {
|
||||||
get() {
|
get() {
|
||||||
@@ -223,6 +237,11 @@ export default {
|
|||||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
[CRUD.HOOK.beforeRefresh]() {
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
return true
|
return true
|
||||||
|
},
|
||||||
|
getNameList() {
|
||||||
|
crudSysInteractRecord.getAllName().then((res)=>{
|
||||||
|
this.interact_name_list = res
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,5 +23,12 @@ export function edit(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function getAllName(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/sysInteractRecord/getAllName',
|
||||||
|
method: 'get',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default { add, edit, del }
|
export default { add, edit, del, getAllName }
|
||||||
|
|||||||
Reference in New Issue
Block a user