diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java index c547db8f7..078255fff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java @@ -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); // 返回成功