fix:MES相关接口优化

This commit is contained in:
zhouz
2024-06-30 18:54:13 +08:00
parent 729afce407
commit efafb265eb

View File

@@ -30,6 +30,7 @@ import org.nl.b_lms.sch.tasks.ProcessTask;
import org.nl.b_lms.sch.tasks.first_floor_area.DjqTask;
import org.nl.b_lms.sch.tasks.first_floor_area.GzqTask;
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
import org.nl.b_lms.sch.tasks.slitter.service.SlitterService;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
@@ -92,6 +93,9 @@ public class MesToLmsServiceImpl implements MesToLmsService {
@Autowired
private IpdmBiSubpackagerelationService subpackagerelationService;
@Autowired
private SlitterService slitterService;
/**
* 生箔烘箱:
@@ -527,8 +531,10 @@ public class MesToLmsServiceImpl implements MesToLmsService {
String SplitBreadth = param.getString("SplitBreadth"); // 子卷幅宽
String SplitHeight = param.getString("SplitHeight"); // 子卷理论长度
String SplitWeight = param.getString("SplitWeight"); // 子卷理论重量
String Attribute2 = param.getString("Attribute2"); // 上下轴
String Attribute3 = param.getString("Attribute3"); // 位置左右
String Attribute2 = param.getString("Attribute2"); // 销售订单及行号
String Attribute3 = param.getString("Attribute3"); // 上下轴
String Attribute4 = param.getString("Attribute3"); // 位置左右
String Attribute5 = param.getString("Attribute3"); // 是否套轴
WQLObject tab = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan");
@@ -667,13 +673,13 @@ public class MesToLmsServiceImpl implements MesToLmsService {
json.put("split_breadth", SplitBreadth);
json.put("split_height", SplitHeight);
json.put("split_weight", SplitWeight);
// json.put("up_or_down", Attribute2);
json.put("left_or_right", Attribute3);
json.put("up_or_down", Attribute3);
json.put("left_or_right", Attribute4);
json.put("qzz_size", qzz_size);
if (ResourceName.startsWith("B5") || ResourceName.startsWith("B6")) {
json.put("is_paper_ok", "1");
}
json.put("sale_order_name", "");
json.put("sale_order_name", Attribute2);
json.put("start_time", DateUtil.now());
json.put("status", "01");
json.put("qzz_generation", qzz_generation);
@@ -969,145 +975,171 @@ public class MesToLmsServiceImpl implements MesToLmsService {
}
//如果入站的分切计划气涨轴为空则虚拟一个气a涨轴编号
if (StrUtil.isEmpty(plan_jo.getString("qzzno"))) {
if (i == 0 || i == 2) {
plan_jo.put("qzzno", "XN-" + plan_jo.getString("resource_name") + "A");
}
if (i == 1 || i == 3) {
plan_jo.put("qzzno", "XN-" + plan_jo.getString("resource_name") + "B");
String container_name = plan_jo.getString("container_name");
if (container_name.startsWith("A")) {
if (i == 0 || i == 2) {
plan_jo.put("qzzno", "XN-" + plan_jo.getString("resource_name") + "A");
}
if (i == 1 || i == 3) {
plan_jo.put("qzzno", "XN-" + plan_jo.getString("resource_name") + "B");
}
} else if (container_name.startsWith("B")) {
String up_or_down = plan_jo.getString("up_or_down");
if (up_or_down.equals("1")) {
plan_jo.put("qzzno", cut_jo.getString("up_qzzno"));
}
if (up_or_down.equals("2")) {
plan_jo.put("qzzno", cut_jo.getString("down_qzzno"));
}
}
}
plan_jo.put("status", "05");
plan_jo.put("is_parent_ok", "1");
plan_jo.put("is_child_tz_ok", "1");
plan_jo.put("is_child_ps_ok", "1");
plan_jo.put("is_paper_ok", "2");
WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo);
}
}
if ("2".equals(Status)) {
String up_point_code = cut_jo.getString("up_point_code");
String down_point_code = cut_jo.getString("down_point_code");
JSONObject jsonObject = param.getJSONObject(0);
JSONObject plan = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + jsonObject.getString("ContainerGroup") + "' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(plan)) {
throw new BadRequestException("未查询到分切计划:" + jsonObject.getString("ContainerGroup"));
}
if (plan.getString("container_name").startsWith("B")) {
//如果属于二期的子卷出战调用二期的方法
cut_jo.put("device_code", cut_jo.getString("point_code"));
slitterService.downRolls(cut_jo);
} else {
{
String up_point_code = cut_jo.getString("up_point_code");
String down_point_code = cut_jo.getString("down_point_code");
JSONArray up_rows = new JSONArray();
JSONArray down_rows = new JSONArray();
String up_qzz = "";
String down_qzz = "";
for (int i = 0; i < param.size(); i++) {
JSONObject row = param.getJSONObject(i);
//查询对应的分切计划
JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(plan_jo)) {
throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup"));
}
String qzzno = plan_jo.getString("qzzno");
String need_down = row.getString("Attribute1");
if (StrUtil.isEmpty(need_down)) {
throw new BadRequestException("子卷:" + row.getString("ContainerGroup") + "对应的是否需要下轴字段不能为空!");
}
if ("0".equals(need_down)) {
plan_jo.put("status", "09");
WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo);
log.info("子卷号:" + row.getString("ContainerGroup") + "MES上选择了不需要下卷不生成任务");
} else {
if ("1".equals(row.getString("ContainerPosition"))) {
if (StrUtil.isEmpty(up_qzz)) {
up_qzz = qzzno;
up_rows.add(plan_jo);
} else {
if (!StrUtil.equals(qzzno, up_qzz)) {
down_qzz = qzzno;
down_rows.add(plan_jo);
} else {
up_rows.add(plan_jo);
}
JSONArray up_rows = new JSONArray();
JSONArray down_rows = new JSONArray();
String up_qzz = "";
String down_qzz = "";
for (int i = 0; i < param.size(); i++) {
JSONObject row = param.getJSONObject(i);
//查询对应的分切计划
JSONObject plan_jo = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("container_name = '" + row.getString("ContainerGroup") + "' AND is_delete = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(plan_jo)) {
throw new BadRequestException("未查询到分切计划:" + row.getString("ContainerGroup"));
}
}
if ("2".equals(row.getString("ContainerPosition"))) {
if (StrUtil.isEmpty(down_qzz)) {
if (StrUtil.isEmpty(up_qzz)) {
down_qzz = qzzno;
down_rows.add(plan_jo);
} else {
if (StrUtil.equals(up_qzz, qzzno)) {
String qzzno = plan_jo.getString("qzzno");
String need_down = row.getString("Attribute1");
if (StrUtil.isEmpty(need_down)) {
throw new BadRequestException("子卷:" + row.getString("ContainerGroup") + "对应的是否需要下轴字段不能为空!");
}
if ("0".equals(need_down)) {
plan_jo.put("status", "09");
WQLObject.getWQLObject("pdm_bi_slittingproductionplan").update(plan_jo);
log.info("子卷号:" + row.getString("ContainerGroup") + "MES上选择了不需要下卷不生成任务");
} else {
if ("1".equals(row.getString("ContainerPosition"))) {
if (StrUtil.isEmpty(up_qzz)) {
up_qzz = qzzno;
up_rows.add(plan_jo);
} else {
down_qzz = qzzno;
down_rows.add(plan_jo);
if (!StrUtil.equals(qzzno, up_qzz)) {
down_qzz = qzzno;
down_rows.add(plan_jo);
} else {
up_rows.add(plan_jo);
}
}
}
} else {
if (StrUtil.equals(down_qzz, qzzno)) {
down_rows.add(plan_jo);
} else {
up_rows.add(plan_jo);
if ("2".equals(row.getString("ContainerPosition"))) {
if (StrUtil.isEmpty(down_qzz)) {
if (StrUtil.isEmpty(up_qzz)) {
down_qzz = qzzno;
down_rows.add(plan_jo);
} else {
if (StrUtil.equals(up_qzz, qzzno)) {
up_rows.add(plan_jo);
} else {
down_qzz = qzzno;
down_rows.add(plan_jo);
}
}
} else {
if (StrUtil.equals(down_qzz, qzzno)) {
down_rows.add(plan_jo);
} else {
up_rows.add(plan_jo);
}
}
}
}
}
}
}
if (ObjectUtil.isEmpty(up_rows) && ObjectUtil.isEmpty(down_rows)) {
result.put("RTYPE", "S");
result.put("RTMSG", "该设备不需要下轴!");
result.put("RTOAL", 1);
result.put("RTDAT", null);
return result;
}
if (ObjectUtil.isEmpty(up_rows) && ObjectUtil.isEmpty(down_rows)) {
result.put("RTYPE", "S");
result.put("RTMSG", "该设备不需要下轴!");
result.put("RTOAL", 1);
result.put("RTDAT", null);
return result;
}
//查询输送线上该分切机下一分切组可用的气涨轴
JSONObject group_jo = WQL.getWO("PDA_02").addParam("flag", "14").addParam("resource_name", ResourceName).process().uniqueResult(0);
if (ObjectUtil.isEmpty(group_jo)) {
group_jo = new JSONObject();
}
JSONArray del_rows = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("status = '03' AND is_delete = '0' AND resource_name = '" + ResourceName + "' AND split_group = '" + group_jo.getString("split_group") + "' AND (parent_container_name = '" + group_jo.getString("source_container_name") + "' OR parent_container_name = '" + group_jo.getString("source_container_name") + "')").getResultJSONArray(0);
if (up_rows.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("point_code", up_point_code);
jo.put("cut_rows", up_rows);
if (del_rows.size() > 0) {
jo.put("is_last", "0");
} else {
jo.put("is_last", "1");
}
outService.confirm(jo);
}
if (down_rows.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("point_code", down_point_code);
jo.put("cut_rows", down_rows);
if (del_rows.size() > 0) {
//查询输送线上该分切机下一分切组可用的气涨轴
JSONObject group_jo = WQL.getWO("PDA_02").addParam("flag", "14").addParam("resource_name", ResourceName).process().uniqueResult(0);
if (ObjectUtil.isEmpty(group_jo)) {
group_jo = new JSONObject();
}
JSONArray del_rows = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("status = '03' AND is_delete = '0' AND resource_name = '" + ResourceName + "' AND split_group = '" + group_jo.getString("split_group") + "' AND (parent_container_name = '" + group_jo.getString("source_container_name") + "' OR parent_container_name = '" + group_jo.getString("source_container_name") + "')").getResultJSONArray(0);
if (up_rows.size() > 0) {
if (del_rows.size() >= 2) {
JSONObject jo = new JSONObject();
jo.put("point_code", up_point_code);
jo.put("cut_rows", up_rows);
if (del_rows.size() > 0) {
jo.put("is_last", "0");
} else {
jo.put("is_last", "1");
}
} else {
jo.put("is_last", "0");
outService.confirm(jo);
}
if (down_rows.size() > 0) {
JSONObject jo = new JSONObject();
jo.put("point_code", down_point_code);
jo.put("cut_rows", down_rows);
if (del_rows.size() > 0) {
if (up_rows.size() > 0) {
if (del_rows.size() >= 2) {
jo.put("is_last", "0");
} else {
jo.put("is_last", "1");
}
} else {
jo.put("is_last", "0");
}
} else {
jo.put("is_last", "1");
}
outService.confirm(jo);
}
} else {
jo.put("is_last", "1");
}
outService.confirm(jo);
}
if ((ObjectUtil.isEmpty(up_rows) || ObjectUtil.isEmpty(down_rows)) && del_rows.size() == 2) {
String point_code = "";
//分切机上只存在一个气涨轴,下一分切组存在两个气涨轴,执行一个进站
if (ObjectUtil.isEmpty(up_rows)) {
point_code = up_point_code;
if ((ObjectUtil.isEmpty(up_rows) || ObjectUtil.isEmpty(down_rows)) && del_rows.size() == 2) {
String point_code = "";
//分切机上只存在一个气涨轴,下一分切组存在两个气涨轴,执行一个进站
if (ObjectUtil.isEmpty(up_rows)) {
point_code = up_point_code;
}
if (ObjectUtil.isEmpty(down_rows)) {
point_code = down_point_code;
}
//查询当前输送线上可用的气涨轴
JSONObject del_row = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '" + ResourceName + "' AND split_group = '" + group_jo.getString("split_group") + "' AND (parent_container_name = '" + group_jo.getString("source_container_name") + "' OR parent_container_name = '" + group_jo.getString("source_container_name") + "') AND status = '03'").uniqueResult(0);
JSONObject del_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("qzzno = '" + del_row.getString("qzzno") + "'").uniqueResult(0);
del_row.put("delivery_code", del_jo.getString("point_code"));
JSONObject whereJson = new JSONObject();
whereJson.put("point_code", point_code);
whereJson.put("cut_rows", del_row);
inService.confirm(whereJson);
}
}
if (ObjectUtil.isEmpty(down_rows)) {
point_code = down_point_code;
}
//查询当前输送线上可用的气涨轴
JSONObject del_row = WQLObject.getWQLObject("pdm_bi_slittingproductionplan").query("resource_name = '" + ResourceName + "' AND split_group = '" + group_jo.getString("split_group") + "' AND (parent_container_name = '" + group_jo.getString("source_container_name") + "' OR parent_container_name = '" + group_jo.getString("source_container_name") + "') AND status = '03'").uniqueResult(0);
JSONObject del_jo = WQLObject.getWQLObject("st_ivt_deliverypointivt").query("qzzno = '" + del_row.getString("qzzno") + "'").uniqueResult(0);
del_row.put("delivery_code", del_jo.getString("point_code"));
JSONObject whereJson = new JSONObject();
whereJson.put("point_code", point_code);
whereJson.put("cut_rows", del_row);
inService.confirm(whereJson);
}
}
@@ -1932,6 +1964,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
}
try { // 返回成功
slitterService.slitterSpliceOperation(param);
result.put("RTYPE", "S");
result.put("RTMSG", "操作成功!");
result.put("RTOAL", 1);
@@ -2033,6 +2066,14 @@ public class MesToLmsServiceImpl implements MesToLmsService {
dto.setWidth_standard(WidthPlan);
dto.setThickness_request(ThicknessPlan);
dto.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextId() + "");
//判断当前子卷所用母卷为锂电还是标箔
if (ContainerName.startsWith("BB")) {
dto.setQuality_guaran_period("180天");
} else {
dto.setQuality_guaran_period("90天");
}
dto.setDate_of_FG_inbound(String.format(DateUtil.now(), "yyyy-MM-dd"));
subpackagerelationService.save(dto);
// 返回成功