This commit is contained in:
2023-03-15 10:58:14 +08:00
parent c9cfba3982
commit 956178aad7
6 changed files with 94 additions and 31 deletions

View File

@@ -615,12 +615,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
result.put("data", data); result.put("data", data);
} else if (type.equals("3")) { } else if (type.equals("3")) {
//烘箱出箱任务 //判断AGV是否启用
String device_code = whereJson.getString("device_code"); String agv_status = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("agv_status").getValue();
JSONObject bake_jo = new JSONObject();
bake_jo.put("point_code", device_code); if ("0".equals(agv_status)) {
bake_jo.put("option", "2"); log.info("当前AGV未启用不启用自动出烘箱功能");
new BakingServiceImpl().ovenInAndOut(bake_jo); } else {
//烘箱出箱任务
String device_code = whereJson.getString("device_code");
JSONObject bake_jo = new JSONObject();
bake_jo.put("point_code", device_code);
bake_jo.put("option", "2");
new BakingServiceImpl().ovenInAndOut(bake_jo);
}
} else { } else {
throw new BadRequestException("请输入正确的任务类型!"); throw new BadRequestException("请输入正确的任务类型!");
} }

View File

@@ -296,10 +296,10 @@ public class MesToLmsServiceImpl implements MesToLmsService {
if (ObjectUtil.isEmpty(bakingTimer)) throw new BadRequestException("烘烤时间不能为空"); if (ObjectUtil.isEmpty(bakingTimer)) throw new BadRequestException("烘烤时间不能为空");
//更新生箔工单的是否下发烘烤为是 //更新生箔工单的是否下发烘烤为是
HashMap<String,String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("is_baking","1"); map.put("is_baking", "1");
WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map,"container_name = '"+ContainerName+"'"); WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + ContainerName + "'");
log.info("母卷:"+ContainerName+"被决策入烘箱请求烘烤标识改为1"); log.info("母卷:" + ContainerName + "被决策入烘箱请求烘烤标识改为1");
String point_code = ""; String point_code = "";
JSONObject jsonCoolIvt = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0); JSONObject jsonCoolIvt = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0);
@@ -309,7 +309,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
} else { } else {
point_code = jsonCoolIvt.getString("full_point_code"); point_code = jsonCoolIvt.getString("full_point_code");
} }
if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("该母卷现在还未绑定在暂存位或对接点位上,不能进行入烘箱操作!!请检查当前母卷所在位置,并绑定对应位置"); if (ObjectUtil.isEmpty(point_code))
throw new BadRequestException("该母卷已经被烘烤或现在还未绑定在暂存位或对接点位上,不能进行入烘箱操作!!请检查当前母卷所在位置,并绑定对应位置");
// 调用接口输入参数 // 调用接口输入参数
jsonParam.put("option", "1"); jsonParam.put("option", "1");
@@ -326,21 +327,59 @@ public class MesToLmsServiceImpl implements MesToLmsService {
* 入冷却区 * 入冷却区
*/ */
//更新生箔工单的是否下发烘烤为是 //更新生箔工单的是否下发烘烤为是
HashMap<String,String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("is_instor","1"); map.put("is_instor", "1");
WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map,"container_name = '"+ContainerName+"'"); WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + ContainerName + "'");
log.info("母卷:"+ContainerName+"被决策入半成品库请求入半成品库标识改为1"); log.info("母卷:" + ContainerName + "被决策入半成品库请求入半成品库标识改为1");
JSONObject jsonPoint = pointTab.query("material_code = '" + containerName + "' and is_delete = '0' and is_used = '1'").uniqueResult(0); //判断AGV是否启用
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("母卷不存在烘箱对接位上!"); String agv_status = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("agv_status").getValue();
// 调用接口输入参数 if (agv_status.equals("1")) {
jsonParam.put("point_code", jsonPoint.getString("point_code")); log.info("当前AGV启用参数为是");
jsonParam.put("container_name", containerName); JSONObject jsonPoint = pointTab.query("material_code = '" + containerName + "' and is_delete = '0' and is_used = '1'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("当前AGV已启用且母卷不存在烘箱对接位上");
// 调用手持接口 // 调用接口输入参数
BakingServiceImpl bakingService = new BakingServiceImpl(); jsonParam.put("point_code", jsonPoint.getString("point_code"));
bakingService.inCoolIvt(jsonParam); jsonParam.put("container_name", containerName);
// 调用手持接口
BakingServiceImpl bakingService = new BakingServiceImpl();
bakingService.inCoolIvt(jsonParam);
} else {
log.info("当前AGV启用参数为否");
//判断当前位置是否在冷却区如果不在则提醒人工报错
JSONObject container_jo = coolIvtTab.query("container_name = '" + containerName + "' and full_point_status = '02' and cool_ivt_status <> '04'").uniqueResult(0);
if (ObjectUtil.isEmpty(container_jo)) {
throw new BadRequestException("该母卷已经被烘烤或现在还未绑定在冷却区上且AGV未启用请使用人工烘烤功能【出箱】将母卷绑定到冷却区");
}
container_jo.put("cool_ivt_status", "04");
container_jo.put("instorage_time", DateUtil.now());
coolIvtTab.update(container_jo);
// 将入冷却信息发送给mes
JSONObject mes_jo = new JSONObject();
String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
mes_jo.put("iContainerName", containerName);
mes_jo.put("iArrivalTime", DateUtil.now());
mes_jo.put("iWarehouse", 2);
mes_jo.put("UserName", userName);
mes_jo.put("PassWord", passWord);
//判断该接口是否需要回传
JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollSemiFGInboundComplete'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")) {
new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param);
}
//将该母卷的入冷却标识改为0
HashMap<String, String> con_map = new HashMap<>();
con_map.put("is_instor", "0");
WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + ContainerName + "'");
log.info("母卷:" + containerName + "对应的入冷却任务完成请求入半成品库标识改为0");
}
} }
} }
result.put("RTYPE", "S"); result.put("RTYPE", "S");
@@ -466,7 +505,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
json.put("is_child_tz_ok", "0"); json.put("is_child_tz_ok", "0");
json.put("is_child_ps_ok", "0"); json.put("is_child_ps_ok", "0");
json.put("is_delete", "0"); json.put("is_delete", "0");
tab.insert(json); tab.insert(json);
result.put("RTYPE", "S"); result.put("RTYPE", "S");
result.put("RTMSG", "操作成功!"); result.put("RTMSG", "操作成功!");
@@ -753,8 +792,8 @@ public class MesToLmsServiceImpl implements MesToLmsService {
//查询当前子卷号状态 //查询当前子卷号状态
String now_status = plan_jo.getString("status"); String now_status = plan_jo.getString("status");
if (!now_status.equals("05")){ if (!now_status.equals("05")) {
log.info("子卷号:"+row.getString("ContainerGroup")+"当前状态为:"+now_status+"被MES的开始分切接口改为入站完成"); log.info("子卷号:" + row.getString("ContainerGroup") + "当前状态为:" + now_status + "被MES的开始分切接口改为入站完成");
} }
//如果入站的分切计划气涨轴为空则虚拟一个气a涨轴编号 //如果入站的分切计划气涨轴为空则虚拟一个气a涨轴编号
if (StrUtil.isEmpty(plan_jo.getString("qzzno"))) { if (StrUtil.isEmpty(plan_jo.getString("qzzno"))) {
@@ -796,7 +835,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
if ("0".equals(need_down)) { if ("0".equals(need_down)) {
plan_jo.put("status", "09"); plan_jo.put("status", "09");
WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo); WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo);
log.info("子卷号:"+row.getString("ContainerGroup")+"MES上选择了不需要下卷不生成任务"); log.info("子卷号:" + row.getString("ContainerGroup") + "MES上选择了不需要下卷不生成任务");
} else { } else {
if (row.getString("ContainerPosition").equals("1")) { if (row.getString("ContainerPosition").equals("1")) {
if (StrUtil.isEmpty(up_qzz)) { if (StrUtil.isEmpty(up_qzz)) {

View File

@@ -300,7 +300,7 @@ public class BakingServiceImpl implements BakingService {
map.put("point_type", "5"); map.put("point_type", "5");
JSONArray pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().getResultJSONArray(0); JSONArray pointArr = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().getResultJSONArray(0);
if (ObjectUtil.isEmpty(pointArr)) throw new BadRequestException("没有可用的点位类型为出箱的烘箱对接位!"); if (ObjectUtil.isEmpty(pointArr)) throw new BadRequestException("没有无货且没有任务的点位类型为出箱的烘箱对接位!");
// 2.判断暂存位是否有任务:找到无任务的暂存位 // 2.判断暂存位是否有任务:找到无任务的暂存位
String point_code2 = ""; String point_code2 = "";
@@ -317,7 +317,7 @@ public class BakingServiceImpl implements BakingService {
break; break;
} }
} }
if (ObjectUtil.isEmpty(point_code2)) throw new BadRequestException("没有可用的点位类型为出箱的烘箱对接位!"); if (ObjectUtil.isEmpty(point_code2)) throw new BadRequestException("没有无货且没有任务的点位类型为出箱的烘箱对接位!");
// 3.创建任务 // 3.创建任务
JSONObject param = new JSONObject(); JSONObject param = new JSONObject();
param.put("point_code1", point_code1); param.put("point_code1", point_code1);
@@ -391,7 +391,7 @@ public class BakingServiceImpl implements BakingService {
// 1.获取此暂存位的生产区域和上下位置 // 1.获取此暂存位的生产区域和上下位置
JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0); JSONObject jsonPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("冷却区内此点位不存在"); if (ObjectUtil.isEmpty(jsonPoint)) throw new BadRequestException("请扫描点位类型为出箱的烘箱对接位");
// 2.找冷却区空货位 // 2.找冷却区空货位
JSONObject map = new JSONObject(); JSONObject map = new JSONObject();
@@ -528,6 +528,13 @@ public class BakingServiceImpl implements BakingService {
String point_code = whereJson.getString("point_code"); String point_code = whereJson.getString("point_code");
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
if (point_code.endsWith("BJD")){
JSONObject result = new JSONObject();
result.put("data", json);
result.put("message", "操作成功!");
return result;
}
JSONObject jsonCool = coolIvtTab.query("full_point_code = '" + point_code + "'").uniqueResult(0); JSONObject jsonCool = coolIvtTab.query("full_point_code = '" + point_code + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonCool) && ObjectUtil.isNotEmpty(jsonCool.getString("container_name"))) { if (ObjectUtil.isNotEmpty(jsonCool) && ObjectUtil.isNotEmpty(jsonCool.getString("container_name"))) {
json.put("container_name", jsonCool.getString("container_name")); json.put("container_name", jsonCool.getString("container_name"));

View File

@@ -7,7 +7,9 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.pda.mps.service.EmptyVehicleService; import org.nl.wms.pda.mps.service.EmptyVehicleService;
import org.nl.wms.sch.tasks.CutConveyorTask;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@@ -61,6 +63,11 @@ public class EmptyVehicleServiceImpl implements EmptyVehicleService {
if (point_jo.getString("full_point_status").equals("02")) { if (point_jo.getString("full_point_status").equals("02")) {
throw new BadRequestException("该点位上存在母卷,不能进行绑定空轴!"); throw new BadRequestException("该点位上存在母卷,不能进行绑定空轴!");
} }
CutConveyorTask cutConveyorTask = SpringContextHolder.getBean(CutConveyorTask.class);
//判断当前点位上是否存在任务
if (cutConveyorTask.isSingleTask(point_code)){
throw new BadRequestException("点位:" + point_code + "存在未完成的任务!");
}
point_jo.put("empty_vehicle_code", vehicle_code); point_jo.put("empty_vehicle_code", vehicle_code);
point_jo.put("empty_point_status", "02"); point_jo.put("empty_point_status", "02");
} }

View File

@@ -250,6 +250,9 @@ public class HandleBakingServiceImpl implements HandleBakingService {
if (StrUtil.equals(jsonIvt.getString("empty_point_status"),"02")) { if (StrUtil.equals(jsonIvt.getString("empty_point_status"),"02")) {
throw new BadRequestException("目的点上存在空轴!"); throw new BadRequestException("目的点上存在空轴!");
} }
if (jsonIvt.getString("is_used").equals("0")){
throw new BadRequestException("当前点位未启用!");
}
jsonIvt.put("full_point_status", "02"); jsonIvt.put("full_point_status", "02");
jsonIvt.put("cool_ivt_status", "03"); jsonIvt.put("cool_ivt_status", "03");
jsonIvt.put("instorage_time", DateUtil.now()); jsonIvt.put("instorage_time", DateUtil.now());

View File

@@ -155,7 +155,7 @@ public class InCoolIvtTask extends AbstractAcsTask {
new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param); new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param);
} }
//将该母卷的入烘箱标识改为0 //将该母卷的入冷却标识改为0
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
map.put("is_instor", "0"); map.put("is_instor", "0");
WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonTask.getString("material_code") + "'"); WQLObject.getWQLObject("PDM_BI_RawFoilWorkOrder").update(map, "container_name = '" + jsonTask.getString("material_code") + "'");