Merge remote-tracking branch 'origin/master'

This commit is contained in:
2025-08-05 16:29:53 +08:00
8 changed files with 104 additions and 14 deletions

View File

@@ -1,6 +1,7 @@
package org.nl.wms.ext_manage.service.impl; package org.nl.wms.ext_manage.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@@ -11,6 +12,7 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService; import org.nl.wms.basedata_manage.service.IMdMeMaterialbaseService;
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
@@ -130,10 +132,16 @@ public class MesToWmsServiceImpl implements MesToWmsService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public MesResponse callMaterial(MesCallMaterialRequestDto dto) { public MesResponse callMaterial(MesCallMaterialRequestDto dto) {
log.info("MES下发设备叫料信息输入参数-------------------: {}", dto); log.info("MES下发设备叫料信息输入参数-------------------: {}", dto);
RLock lock = redissonClient.getLock(dto.getTask_code()); RLock lock = redissonClient.getLock(dto.getTask_code());
boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(1, TimeUnit.SECONDS);
try { try {
if (tryLock) { if (tryLock) {
if(dto.getIsManual() != null && dto.getIsManual()){
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
}
String pointCode = dto.getDevice_code(); String pointCode = dto.getDevice_code();
SchBasePoint outPoint = pointService.getById(pointCode); SchBasePoint outPoint = pointService.getById(pointCode);
if (null == outPoint) { if (null == outPoint) {
@@ -392,6 +400,10 @@ public class MesToWmsServiceImpl implements MesToWmsService {
if (tryLock) { if (tryLock) {
log.info("MES下发设备退料信息输入参数--------------------------------------" + MesResponse.requestOk()); log.info("MES下发设备退料信息输入参数--------------------------------------" + MesResponse.requestOk());
if(dto.getIsManual() != null && dto.getIsManual()){
dto.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
}
//根据料桶号去载具表匹配料桶类型 //根据料桶号去载具表匹配料桶类型
MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code()); MdPbStoragevehicleinfo mdPbStoragevehicleinfo = iMdPbStoragevehicleinfoService.getByCode(dto.getVehicle_code());
@@ -405,13 +417,36 @@ public class MesToWmsServiceImpl implements MesToWmsService {
throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!"); throw new BadRequestException("未找到载具编码为" + dto.getVehicle_code() + "的载具入库库区,请检查字典中是否维护!");
} }
//查询库区
Sectattr sectattr = sectattrService.findByCode(dict.getPara1()); Sectattr sectattr = sectattrService.findByCode(dict.getPara1());
//通过
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("vehicle_code",dto.getVehicle_code()); if(dto.getIsManual() != null && dto.getIsManual()){
param.put("site_code",dto.getDevice_code()); param.put("create_mode", "手动" );
param.put("sect_id",sectattr.getSect_id()); } else{
pdaIosInService.confirmIn(param); param.put("create_mode", "自动" );
}
param.put("task_code", dto.getTask_code());
//退料
if("1".equals(dto.getTask_type())){
param.put("sect_code",sectattr.getSect_code());
param.put("vehicle_code",dto.getVehicle_code());
param.put("storagevehicle_code", param.getString("vehicle_code"));
param.put("qty","1");
param.put("stor_id",sectattr.getStor_id());
pdaIosInService.confirmReturnMaterial(param);
} else if("2".equals(dto.getTask_type())){
//退空桶
param.put("vehicle_code",dto.getVehicle_code());
param.put("site_code",dto.getDevice_code());
param.put("sect_id",sectattr.getSect_id());
param.put("sect_code",sectattr.getSect_code());
pdaIosInService.vehicleInConfirm(param);
} else{
throw new BadRequestException("任务类型有误请传入1或2");
}
return MesResponse.requestOk(); return MesResponse.requestOk();
} else { } else {
throw new BadRequestException("任务标识为:" + dto.getTask_code() + "的任务正在操作中!"); throw new BadRequestException("任务标识为:" + dto.getTask_code() + "的任务正在操作中!");

View File

@@ -443,7 +443,7 @@ public class PdaIosInServiceImpl implements PdaIosInService {
params.put("material_code", whereJson.getString("material_code")); params.put("material_code", whereJson.getString("material_code"));
params.put("qty", whereJson.getString("qty")); params.put("qty", whereJson.getString("qty"));
params.put("pcsn", whereJson.getString("pcsn")); params.put("pcsn", whereJson.getString("pcsn"));
Structattr attrDao = iRawAssistIStorService.getStructattr(whereJson); Structattr attrDao = iRawAssistIStorService.getStructattr(params);
//确定起点 //确定起点
SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, whereJson.getString("site_code"))); SchBasePoint schBasePoint = iSchBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, whereJson.getString("site_code")));
if (ObjectUtil.isEmpty(schBasePoint)) { if (ObjectUtil.isEmpty(schBasePoint)) {

View File

@@ -10,6 +10,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.IdUtil;; import org.nl.common.utils.IdUtil;;
import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.ext_manage.service.WmsToMesService;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -23,6 +24,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/** /**
* @Author: Liuxy * @Author: Liuxy
* @Description: 余料回库类 * @Description: 余料回库类
@@ -50,11 +53,22 @@ public class BackInTask extends AbstractTask {
@Autowired @Autowired
private IStructattrService iStructattrService; private IStructattrService iStructattrService;
/**
* WMS回传MES
*/
@Autowired
private WmsToMesService wmsToMesService;
@Override @Override
public String create(JSONObject json) { public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId()); task.setTask_id(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); if(json.containsKey("task_code")){
task.setTask_code(json.getString("task_code"));
} else {
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
}
task.setTask_status(TaskStatus.CREATE.getCode()); task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code")); task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1")); task.setPoint_code1(json.getString("point_code1"));
@@ -155,6 +169,14 @@ public class BackInTask extends AbstractTask {
taskObj.setRemark("已完成"); taskObj.setRemark("已完成");
taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskService.updateById(taskObj); taskService.updateById(taskObj);
//如果是自动的回调MES接口将task_code传给mes
if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject();
jsonObject.put("status",200);
jsonObject.put("message","成功");
wmsToMesService.uploadMes(jsonObject);
}
} }
@Transactional @Transactional
@@ -170,5 +192,13 @@ public class BackInTask extends AbstractTask {
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj); taskService.updateById(taskObj);
//反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject();
jsonObject.put("status",400);
jsonObject.put("message","任务被取消");
wmsToMesService.uploadMes(jsonObject);
}
} }
} }

View File

@@ -10,6 +10,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.common.utils.IdUtil;; import org.nl.common.utils.IdUtil;;
import org.nl.wms.basedata_manage.service.IStructattrService; import org.nl.wms.basedata_manage.service.IStructattrService;
import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.Structattr;
import org.nl.wms.ext_manage.service.WmsToMesService;
import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.enums.TaskStatus;
import org.nl.wms.sch_manage.service.ISchBasePointService; import org.nl.wms.sch_manage.service.ISchBasePointService;
import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.ISchBaseTaskService;
@@ -50,11 +51,21 @@ public class VehicleInTask extends AbstractTask {
@Autowired @Autowired
private IStructattrService iStructattrService; private IStructattrService iStructattrService;
/**
* WMS回传MES
*/
@Autowired
private WmsToMesService wmsToMesService;
@Override @Override
public String create(JSONObject json) { public String create(JSONObject json) {
SchBaseTask task = new SchBaseTask(); SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getStringId()); task.setTask_id(IdUtil.getStringId());
task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); if(json.containsKey("task_code")){
task.setTask_code(json.getString("task_code"));
} else {
task.setTask_code(CodeUtil.getNewCode("TASK_CODE"));
}
task.setTask_status(TaskStatus.CREATE.getCode()); task.setTask_status(TaskStatus.CREATE.getCode());
task.setConfig_code(json.getString("config_code")); task.setConfig_code(json.getString("config_code"));
task.setPoint_code1(json.getString("point_code1")); task.setPoint_code1(json.getString("point_code1"));
@@ -156,6 +167,14 @@ public class VehicleInTask extends AbstractTask {
taskObj.setRemark("已完成"); taskObj.setRemark("已完成");
taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskService.updateById(taskObj); taskService.updateById(taskObj);
//如果是自动的回调MES接口将task_code传给mes
if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject();
jsonObject.put("status",200);
jsonObject.put("message","成功");
wmsToMesService.uploadMes(jsonObject);
}
} }
@Transactional @Transactional
@@ -171,5 +190,13 @@ public class VehicleInTask extends AbstractTask {
taskObj.setRemark("已取消"); taskObj.setRemark("已取消");
taskObj.setTask_status(TaskStatus.CANCELED.getCode()); taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskService.updateById(taskObj); taskService.updateById(taskObj);
//反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject();
jsonObject.put("status",400);
jsonObject.put("message","任务被取消");
wmsToMesService.uploadMes(jsonObject);
}
} }
} }

View File

@@ -245,7 +245,7 @@ public class DownEmptyUpFullTask extends AbstractTask {
//反馈到MES系统 //反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){ if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject(); JSONObject jsonObject=new JSONObject();
jsonObject.put("status","200"); jsonObject.put("status",200);
jsonObject.put("message","成功"); jsonObject.put("message","成功");
wmsToMesService.uploadMes(jsonObject); wmsToMesService.uploadMes(jsonObject);
} }
@@ -303,7 +303,7 @@ public class DownEmptyUpFullTask extends AbstractTask {
//反馈到MES系统 //反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){ if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject(); JSONObject jsonObject=new JSONObject();
jsonObject.put("status","400"); jsonObject.put("status",400);
jsonObject.put("message","任务被取消"); jsonObject.put("message","任务被取消");
wmsToMesService.uploadMes(jsonObject); wmsToMesService.uploadMes(jsonObject);
} }

View File

@@ -181,7 +181,7 @@ public class SeparateMaterialTask extends AbstractTask {
//反馈到MES系统 //反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){ if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject(); JSONObject jsonObject=new JSONObject();
jsonObject.put("status","200"); jsonObject.put("status",200);
jsonObject.put("message","成功"); jsonObject.put("message","成功");
wmsToMesService.uploadMes(jsonObject); wmsToMesService.uploadMes(jsonObject);
} }
@@ -238,7 +238,7 @@ public class SeparateMaterialTask extends AbstractTask {
//反馈到MES系统 //反馈到MES系统
if("自动".equals(taskObj.getCreate_mode())){ if("自动".equals(taskObj.getCreate_mode())){
JSONObject jsonObject=new JSONObject(); JSONObject jsonObject=new JSONObject();
jsonObject.put("status","400"); jsonObject.put("status",400);
jsonObject.put("message","任务被取消"); jsonObject.put("message","任务被取消");
wmsToMesService.uploadMes(jsonObject); wmsToMesService.uploadMes(jsonObject);
} }

View File

@@ -31,7 +31,6 @@ public class MesManualBackMaterialRequestDto {
private String remark; private String remark;
@NotBlank(message = "任务号不可为空")
private String task_code; private String task_code;
@NotBlank(message = "任务类型不可为空") @NotBlank(message = "任务类型不可为空")

View File

@@ -27,7 +27,6 @@ public class MesManualCallMaterialRequestDto {
private String remark; private String remark;
@NotBlank(message = "任务号不可为空")
private String task_code; private String task_code;
@NotBlank(message = "任务类型不可为空") @NotBlank(message = "任务类型不可为空")