Browse Source

opt:优化mes回传和回传接口

master
张东升 10 months ago
parent
commit
8c96550696
  1. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/controller/MesController.java
  2. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java
  3. 48
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java
  4. 25
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java
  5. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/mes/controller/MesController.java

@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
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 io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -77,6 +78,7 @@ public class MesController {
for(QPMES060RequestBody QPMES060RequestBody:notice.toJavaObject(QPMES060Request.class).getBODY()) { for(QPMES060RequestBody QPMES060RequestBody:notice.toJavaObject(QPMES060Request.class).getBODY()) {
material.copyFrom(QPMES060RequestBody); material.copyFrom(QPMES060RequestBody);
material.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); material.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
material.setReturn_status("0");
material.setCreate_time(DateUtil.now()); material.setCreate_time(DateUtil.now());
materialMapper.insert(material); materialMapper.insert(material);
} }
@ -84,14 +86,14 @@ public class MesController {
qpmes060ResponseBody.setSTATUS("S"); qpmes060ResponseBody.setSTATUS("S");
qpmes060ResponseBodyArrayList.add(qpmes060ResponseBody); qpmes060ResponseBodyArrayList.add(qpmes060ResponseBody);
qpmes060Response.setBODY(qpmes060ResponseBodyArrayList); qpmes060Response.setBODY(qpmes060ResponseBodyArrayList);
log.info("QPMES060服务被调用,返回参数:" + qpmes060Response); log.info("QPMES060服务被调用,返回参数:" + JSON.toJSONString(qpmes060Response));
return qpmes060Response; return qpmes060Response;
}catch (Exception e){ }catch (Exception e){
log.error("QPMES060服务异常:{}{}",e,e.getMessage());
qpmes060ResponseBody.setMESSAGE("原材料入库失败"+e.getMessage()); qpmes060ResponseBody.setMESSAGE("原材料入库失败"+e.getMessage());
qpmes060ResponseBody.setSTATUS("E"); qpmes060ResponseBody.setSTATUS("E");
qpmes060ResponseBodyArrayList.add(qpmes060ResponseBody); qpmes060ResponseBodyArrayList.add(qpmes060ResponseBody);
qpmes060Response.setBODY(qpmes060ResponseBodyArrayList); qpmes060Response.setBODY(qpmes060ResponseBodyArrayList);
log.error("QPMES060服务异常:"+ JSON.toJSONString(qpmes060Response));
return qpmes060Response; return qpmes060Response;
} }
} }
@ -206,6 +208,7 @@ public class MesController {
QPMES155Response qpmes155Response =new QPMES155Response(); QPMES155Response qpmes155Response =new QPMES155Response();
QPMES155Request qpmes155Request=notice.toJavaObject(QPMES155Request.class); QPMES155Request qpmes155Request=notice.toJavaObject(QPMES155Request.class);
log.info(qpmes155Request.toString()); log.info(qpmes155Request.toString());
if(ObjectUtil.isNotEmpty(qpmes155Request)) { if(ObjectUtil.isNotEmpty(qpmes155Request)) {
for (QPMES155RequestBody temp : qpmes155Request.getBODY()) { for (QPMES155RequestBody temp : qpmes155Request.getBODY()) {
try { try {

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/material/service/dao/Material.java

@ -70,6 +70,8 @@ public class Material implements Serializable {
private String lineDiameter; private String lineDiameter;
@ApiModelProperty(value = "操作时间") @ApiModelProperty(value = "操作时间")
private String create_time; private String create_time;
@ApiModelProperty(value = "回传状态")
private String return_status;
public void copyFrom(QPMES060RequestBody source){ public void copyFrom(QPMES060RequestBody source){

48
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java

@ -178,30 +178,42 @@ public abstract class AbstractTask {
String next_point = param.getString("next_point"); // 目的点 String next_point = param.getString("next_point"); // 目的点
String config_code = param.getString("config_code"); String config_code = param.getString("config_code");
String sub_tray = param.getString("vehicle_code2");//子托盘 String sub_tray = param.getString("vehicle_code2");//子托盘
if(ObjectUtil.isNotEmpty(sub_tray)) {
sub_tray = sub_tray.trim();
}
// 1、校验数据 // 1、校验数据
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>() SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, config_code)); .eq(SchBaseTaskconfig::getConfig_code, config_code));
Assert.notNull(taskConfig, "找不到配置文件,请确认[" + config_code + "]配置是否存在!"); Assert.notNull(taskConfig, "找不到配置文件,请确认[" + config_code + "]配置是否存在!");
//输送线相关任务不做处理 //输送线相关任务不做处理
if(apply_point_code.startsWith("SSX")){ if(apply_point_code.startsWith("SSX")){
SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); //输送线入库任务,校验入库单是否存在载具号
//判断是否回传mes if("YCLRKTask".equals(config_code)){
Param isConnectAcs = sysParamService.findByCode(GeneralDefinition.IS_RETURN_MES); //子托盘非空
if (ObjectUtil.isEmpty(isConnectAcs)) { if(ObjectUtil.isNotEmpty(sub_tray)) {
Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[is_return_mes]配置是否存在!"); Assert.isFalse(sub_tray.contains(";"),
} "该任务申请子托盘["+param.getString("vehicle_code2")+"]存在串读,无法申请任务!");
String isReturn = isConnectAcs.getValue(); }else{
if("1".equals(isReturn)){ Assert.isFalse(ObjectUtil.isEmpty(sub_tray),
//输送线入库任务,校验入库单是否存在载具号 "该任务申请子托盘["+param.getString("vehicle_code2")+"]为空,无法申请任务!");
if("YCLRKTask".equals(config_code)){ }
//组盘表需要关联外部mes晶棒数据,一对多 //校验mes接口组盘记录
LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class);
wrapper.eq(Material::getPalletSN,sub_tray); //判断是否回传mes
wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()); Param isConnectAcs = sysParamService.findByCode(GeneralDefinition.IS_RETURN_MES);
Integer list_size = materialMapper.selectCount(wrapper); if (ObjectUtil.isEmpty(isConnectAcs)) {
Assert.isFalse(list_size<=0, Assert.notNull(taskConfig, "找不到配置文件,请确认系统参数[is_return_mes]配置是否存在!");
"该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!"); }
} String isReturn = isConnectAcs.getValue();
if("1".equals(isReturn)){
//组盘表需要关联外部mes晶棒数据,一对多
LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Material::getPalletSN,sub_tray);
wrapper.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue());
Integer list_size = materialMapper.selectCount(wrapper);
Assert.isFalse(list_size<=0,
"该任务申请子托盘["+sub_tray+"]异常,无原材料入库单据信息!");
}
} }
}else{ }else{
//判断该申请点位是否存在起点或终点的未完成任务 //判断该申请点位是否存在起点或终点的未完成任务

25
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLCKTask.java

@ -9,6 +9,7 @@ import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSON; 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 com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.wms.ext.service.dto.to.BaseResponse; import org.nl.wms.ext.service.dto.to.BaseResponse;
@ -284,6 +285,7 @@ public class YCLCKTask extends AbstractTask {
List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>() List<Material> materialList = materialMapper.selectList(new LambdaQueryWrapper<Material>()
.eq(Material::getPalletSN, taskObj.getVehicle_code2()) .eq(Material::getPalletSN, taskObj.getVehicle_code2())
.le(Material::getReturn_status, "1")
.eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue())); .eq(Material::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()));
try { try {
if (ObjectUtil.isNotEmpty(materialList)) { if (ObjectUtil.isNotEmpty(materialList)) {
@ -315,6 +317,29 @@ public class YCLCKTask extends AbstractTask {
.body(JSON.toJSONString(qpmes065Request)) .body(JSON.toJSONString(qpmes065Request))
.execute().body(); .execute().body();
log.info("QPMES065服务调用成功,反馈{}",resultMsg); log.info("QPMES065服务调用成功,反馈{}",resultMsg);
JSONObject result = JSONObject.parseObject(resultMsg);
String Code = result.getString("Code");
if(ObjectUtil.isNotEmpty(Code) && "0".equals(Code)){
//更新接口表
LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Material::getPalletSN,taskObj.getVehicle_code2());
updateWrapper.eq(Material::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue());
//回传状态为0的
updateWrapper.eq(Material::getReturn_status,"1");
updateWrapper.set(Material::getReturn_status,"2");
materialMapper.update(null,updateWrapper);
}
String code = result.getString("code");
if(ObjectUtil.isNotEmpty(code) && "0".equals(code)){
//更新接口表
LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Material::getPalletSN,taskObj.getVehicle_code2());
updateWrapper.eq(Material::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue());
//回传状态为0的
updateWrapper.eq(Material::getReturn_status,"1");
updateWrapper.set(Material::getReturn_status,"2");
materialMapper.update(null,updateWrapper);
}
} else { } else {
log.error("当前子托盘:" + taskObj.getVehicle_code2() + "不存在未解绑的物料信息,请确认!"); log.error("当前子托盘:" + taskObj.getVehicle_code2() + "不存在未解绑的物料信息,请确认!");
} }

22
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/YCLRKTask.java

@ -242,6 +242,8 @@ public class YCLRKTask extends AbstractTask {
LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Material> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Material::getPalletSN,taskObj.getVehicle_code2()); wrapper.eq(Material::getPalletSN,taskObj.getVehicle_code2());
wrapper.eq(Material::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue()); wrapper.eq(Material::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue());
//回传状态为0的
wrapper.eq(Material::getReturn_status,"0");
List<Material> materialList= materialMapper.selectList(wrapper); List<Material> materialList= materialMapper.selectList(wrapper);
SchBaseVehiclematerialgroup groupEntity = getSchBaseVehiclematerialgroup(taskObj, extGroupData, workorderCode, endPoint, endPointObj); SchBaseVehiclematerialgroup groupEntity = getSchBaseVehiclematerialgroup(taskObj, extGroupData, workorderCode, endPoint, endPointObj);
groupEntity.setVehicle_code(taskObj.getVehicle_code()); groupEntity.setVehicle_code(taskObj.getVehicle_code());
@ -292,16 +294,22 @@ public class YCLRKTask extends AbstractTask {
} }
qpmes062Request.setBODY(qpmes062RequestBodyList); qpmes062Request.setBODY(qpmes062RequestBodyList);
log.info("开始调用QPMES062服务,入参{}",JSON.toJSONString(qpmes062Request)); log.info("开始调用QPMES062服务,入参{}",JSON.toJSONString(qpmes062Request));
String resultMsg = HttpRequest.post(url) String resultMsg = HttpRequest.post(url)
.body(JSON.toJSONString(qpmes062Request)) .body(JSON.toJSONString(qpmes062Request))
.execute().body(); .execute().body();
log.info("QPMES062服务调用成功,反馈{}",resultMsg); log.info("QPMES062服务调用成功,反馈{}",resultMsg);
//更新接口表 JSONObject result = JSONObject.parseObject(resultMsg);
UpdateWrapper<Material> updateWrapper = new UpdateWrapper<>(); String code = result.getString("code");
updateWrapper.eq("PalletSN",taskObj.getVehicle_code2()); if("0".equals(code)){
updateWrapper.eq("group_bind_material_status",GroupBindMaterialStatusEnum.BOUND.getValue()); //更新接口表
updateWrapper.set("group_bind_material_status",GroupBindMaterialStatusEnum.UNBOUND.getValue()); LambdaUpdateWrapper<Material> updateWrapper = new LambdaUpdateWrapper<>();
materialMapper.update(null,updateWrapper); updateWrapper.eq(Material::getPalletSN,taskObj.getVehicle_code2());
updateWrapper.eq(Material::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue());
//回传状态为0的
updateWrapper.eq(Material::getReturn_status,"0");
updateWrapper.set(Material::getReturn_status,"1");
materialMapper.update(null,updateWrapper);
}
}else{ }else{
log.error("当前子托盘:"+taskObj.getVehicle_code2()+"不存在未解绑的物料信息,请确认!"); log.error("当前子托盘:"+taskObj.getVehicle_code2()+"不存在未解绑的物料信息,请确认!");
} }

Loading…
Cancel
Save