From 26be49dd91b8e4d7b7ba886db9e9c92592bc9651 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Sat, 10 Dec 2022 13:55:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/service/impl/MesToLmsServiceImpl.java | 8 +- .../wms/pda/mps/rest/FeedingController.java | 40 ++++ .../wms/pda/mps/service/FeedingService.java | 21 ++ .../mps/service/impl/CasingServiceImpl.java | 7 +- .../mps/service/impl/FeedingServiceImpl.java | 216 ++++++++++++++++++ .../service/impl/HandleBakingServiceImpl.java | 70 +++--- .../service/impl/PointStatusServiceImpl.java | 6 +- .../java/org/nl/wms/pda/mps/wql/PDA_02.wql | 34 +++ .../SlittingproductionplanServiceImpl.java | 5 +- .../org/nl/wms/sch/tasks/CoolCutTask.java | 19 +- .../org/nl/wms/sch/tasks/CutConveyorTask.java | 6 +- .../org/nl/wms/sch/tasks/InCoolIvtTask.java | 6 +- .../java/org/nl/wms/sch/tasks/InHotTask.java | 14 +- .../java/org/nl/wms/sch/tasks/OutHotTask.java | 10 +- .../nl/wms/st/inbill/wql/ST_REGION_IN_01.wql | 2 + .../src/views/wms/sch/task/index.vue | 9 +- 16 files changed, 419 insertions(+), 54 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java 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 270a7c92d..4665230ee 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 @@ -545,7 +545,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { jsonCool.put("io_type", "1"); jsonCool.put("material_id", mater_jo.getString("material_id")); jsonCool.put("pcsn", parent_container_name); - jsonCool.put("bill_status", "10"); + jsonCool.put("bill_status", "50"); jsonCool.put("task_id", task_id); jsonCool.put("qty_unit_id", "1"); jsonCool.put("start_point_code", cool_ivt.getString("full_point_code")); @@ -576,7 +576,7 @@ public class MesToLmsServiceImpl implements MesToLmsService { if (ObjectUtil.isEmpty(struct)) { throw new BadRequestException("该箱子已出库,不在库内!"); } - if (!struct.getString("lock_type").equals("1")) { + if (!struct.getString("lock_type").equals("3")) { throw new BadRequestException("该木箱正在出库中!"); } @@ -811,8 +811,8 @@ public class MesToLmsServiceImpl implements MesToLmsService { jo.put("width_standard",width_standard); jo.put("thickness_request",thickness_request); jo.put("status", "0"); - jo.put("create_id", "1"); - jo.put("create_name", "管理员"); + jo.put("create_id", "2"); + jo.put("create_name", "MES用户"); jo.put("create_time", DateUtil.now()); WQLObject tab = WQLObject.getWQLObject("PDM_BI_SubPackageRelation"); tab.insert(jo); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java new file mode 100644 index 000000000..19bc58e5d --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/rest/FeedingController.java @@ -0,0 +1,40 @@ +package org.nl.wms.pda.mps.rest; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.pda.mps.service.CasingService; +import org.nl.wms.pda.mps.service.FeedingService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "分切上料") +@RequestMapping("api/pda/feeding") +@Slf4j +public class FeedingController { + + private final FeedingService feedingService; + + @PostMapping("/queryMaterialInfo") + @Log("分切计划初始化查询") + @ApiOperation("分切计划初始化查询") + public ResponseEntity queryMaterialInfo(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(feedingService.queryMaterialInfo(whereJson), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("呼叫母卷") + @ApiOperation("呼叫母卷") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(feedingService.confirm(whereJson), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java new file mode 100644 index 000000000..16fe55687 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/FeedingService.java @@ -0,0 +1,21 @@ +package org.nl.wms.pda.mps.service; + +import com.alibaba.fastjson.JSONObject; + +public interface FeedingService { + + /** + * 分切计划初始化查询 + * @param whereJson / + * @return JSONObject + */ + JSONObject queryMaterialInfo(JSONObject whereJson); + + /** + * 套轴确认 + * @param whereJson / + * @return JSONObject + */ + JSONObject confirm(JSONObject whereJson); + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/CasingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/CasingServiceImpl.java index 91f64faf2..6e8e2f720 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/CasingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/CasingServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.pda.mps.service.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -124,7 +125,11 @@ public class CasingServiceImpl implements CasingService { //调用MES接口,通知MES已经套轴完成 JSONObject jo = new JSONObject(); jo.put("container_name",row.getString("container_name")); - lmsToMesService.airSwellWithPaperTubeAssComplete(jo); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'airSwellWithPaperTubeAssComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + lmsToMesService.airSwellWithPaperTubeAssComplete(jo); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java new file mode 100644 index 000000000..01c5f05dd --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/FeedingServiceImpl.java @@ -0,0 +1,216 @@ +package org.nl.wms.pda.mps.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.SecurityUtils; +import org.nl.modules.system.util.CodeUtil; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.wms.ext.mes.service.LmsToMesService; +import org.nl.wms.pda.mps.service.CasingService; +import org.nl.wms.pda.mps.service.FeedingService; +import org.nl.wms.sch.manage.AbstractAcsTask; +import org.nl.wms.sch.tasks.CoolCutTask; +import org.nl.wms.st.inbill.service.CheckOutBillService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; + +@Service +@RequiredArgsConstructor +@Slf4j +public class FeedingServiceImpl implements FeedingService { + private final LmsToMesService lmsToMesService; + + private final CheckOutBillService checkOutBillService; + + @Override + public JSONObject queryMaterialInfo(JSONObject whereJson) { + String product_area = whereJson.getString("product_area"); + String point_code = whereJson.getString("point_code"); + String device_code = whereJson.getString("device_code"); + String container_name = whereJson.getString("container_name"); + + HashMap map = new HashMap(); + map.put("flag", "2"); + if (StrUtil.isNotEmpty(product_area)) { + map.put("product_area", product_area); + } + if (StrUtil.isNotEmpty(point_code)) { + map.put("point_code", point_code); + } + if (StrUtil.isNotEmpty(device_code)) { + map.put("device_code", device_code); + } + if (StrUtil.isNotEmpty(container_name)) { + map.put("container_name", container_name); + } + JSONArray rows = WQL.getWO("PDA_02").addParamMap(map).process().getResultJSONArray(0); + JSONObject jo = new JSONObject(); + jo.put("data", rows); + jo.put("message", "查询成功!"); + return jo; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public JSONObject confirm(JSONObject whereJson) { + String container_name = whereJson.getString("container_name"); + if (StrUtil.isEmpty(container_name)) { + throw new BadRequestException("子卷号不能为空!"); + } + + JSONObject plan_jo = WQLObject.getWQLObject("PDM_BI_SlittingProductionPlan").query("container_name = '" + container_name + "' AND is_delete = '0'").uniqueResult(0); + + if (ObjectUtil.isEmpty(plan_jo)) { + throw new BadRequestException("未查询到该子卷号对应的分切计划!"); + } + + //查询该分切机对应的点位 + JSONObject cut_jo = WQLObject.getWQLObject("st_ivt_cutpointivt").query("ext_code = '" + plan_jo.getString("resource_name") + "'").uniqueResult(0); + + //创建搬运任务 + if (plan_jo.getString("order_type").equals("1")) { + //生成一个半成品出库任务 + String parent_container_name = plan_jo.getString("parent_container_name"); + + //查询该母卷号所在位置 + JSONObject cool_ivt = WQLObject.getWQLObject("ST_IVT_CoolPointIvt").query("container_name = '" + parent_container_name + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(cool_ivt)) { + throw new BadRequestException("未查询到该母卷的库存信息,!"); + } + + //查询该母卷号对应的生箔信息 + JSONObject raw_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '" + parent_container_name + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(raw_jo)) { + throw new BadRequestException("未查询到母卷:" + parent_container_name + ",对应的生箔信息!"); + } + + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + raw_jo.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + throw new BadRequestException("未查询到物料:" + raw_jo.getString("product_name") + ",信息!"); + } + + //创建任务,判断目的点是否存在空轴,存在创建4个点的任务,不存在则创建两个点任务 + String task_id = ""; + + JSONObject jo = new JSONObject(); + if (StrUtil.isEmpty(cut_jo.getString("empty_vehicle_code"))) { + jo.put("point_code1", cool_ivt.getString("full_point_code")); + jo.put("point_code2", cut_jo.getString("full_point_code")); + jo.put("vehicle_code", parent_container_name); + jo.put("product_area", cool_ivt.getString("product_area")); + jo.put("task_type", "010302"); + } else { + jo.put("point_code1", cool_ivt.getString("full_point_code")); + jo.put("point_code2", cut_jo.getString("full_point_code")); + jo.put("point_code3", cut_jo.getString("empty_point_code")); + jo.put("point_code4", cool_ivt.getString("empty_point_code")); + jo.put("vehicle_code", parent_container_name); + jo.put("vehicle_code2", cut_jo.getString("empty_vehicle_code")); + jo.put("product_area", cool_ivt.getString("product_area")); + jo.put("task_type", "010301"); + } + + AbstractAcsTask task = new CoolCutTask(); + task_id = task.createTask(jo); + + //生成半成品出库单据 + Long currentUserId = SecurityUtils.getCurrentUserId(); + String currentUsername = SecurityUtils.getCurrentUsername(); + + JSONObject jsonCool = new JSONObject(); + jsonCool.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); + jsonCool.put("bill_code", CodeUtil.getNewCode("COOLREGION_BILL_CODE")); + jsonCool.put("io_type", "1"); + jsonCool.put("material_id", mater_jo.getString("material_id")); + jsonCool.put("pcsn", parent_container_name); + jsonCool.put("bill_status", "50"); + jsonCool.put("task_id", task_id); + jsonCool.put("qty_unit_id", "1"); + jsonCool.put("start_point_code", cool_ivt.getString("full_point_code")); + jsonCool.put("end_point_code", cut_jo.getString("full_point_code")); + jsonCool.put("create_mode", "03"); + jsonCool.put("create_id", "2"); + jsonCool.put("create_name", "MES用户"); + jsonCool.put("create_time", DateUtil.now()); + jsonCool.put("update_optid", currentUserId); + jsonCool.put("update_optname", currentUsername); + jsonCool.put("update_time", DateUtil.now()); + jsonCool.put("confirm_optid", currentUserId); + jsonCool.put("confirm_optname", currentUsername); + jsonCool.put("confirm_time", DateUtil.now()); + WQLObject.getWQLObject("ST_IVT_CoolRegionIO").insert(jsonCool); + + + } else { + //生成一个改切出库任务 + + //查询该箱子所在仓位 + String package_box_sn = plan_jo.getString("package_box_sn"); + String restruct_container_name = plan_jo.getString("restruct_container_name"); + + //查询该包装关系 + JSONObject sub_jo = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("container_name = '" + restruct_container_name + "'").uniqueResult(0); + JSONObject struct = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + package_box_sn + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(struct)) { + throw new BadRequestException("该箱子已出库,不在库内!"); + } + if (!struct.getString("lock_type").equals("3")) { + throw new BadRequestException("该木箱正在出库中!"); + } + + //插入主表、明细、分配 + JSONObject mst_jo = new JSONObject(); + mst_jo.put("biz_date", DateUtil.now()); + mst_jo.put("bill_type", "1003"); + mst_jo.put("stor_id", struct.getString("stor_id")); + mst_jo.put("stor_code", struct.getString("stor_code")); + mst_jo.put("stor_name", struct.getString("stor_name")); + mst_jo.put("total_qty", "0"); + mst_jo.put("bill_status", "10"); + + JSONArray rows = new JSONArray(); + JSONObject dtl = new JSONObject(); + //查询该物料 + JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + sub_jo.getString("product_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(mater_jo)) { + throw new BadRequestException("未查询到物料:" + sub_jo.getString("product_name") + ",信息!"); + } + dtl.put("material_id", mater_jo.getString("material_id")); + dtl.put("pcsn", plan_jo.getString("restruct_container_name")); + dtl.put("box_no", package_box_sn); + JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(unit)) { + throw new BadRequestException("未查询到物料计量单位:" + mater_jo.getString("base_unit_id") + ",信息!"); + } + dtl.put("qty_unit_id", unit.getString("measure_unit_id")); + dtl.put("qty_unit_name", unit.getString("unit_name")); + dtl.put("plan_qty", sub_jo.getString("net_weight")); + dtl.put("source_billdtl_id", plan_jo.getString("workorder_id")); + rows.add(dtl); + mst_jo.put("tableData", rows); + mst_jo.put("user", "mes"); + String iostorinv_id = checkOutBillService.insertDtl(mst_jo); + + //调用自动分配 + JSONObject out_jo = new JSONObject(); + out_jo.put("iostorinv_id", iostorinv_id); + checkOutBillService.allDiv(out_jo); + + } + JSONObject jo = new JSONObject(); + jo.put("message", "查询成功!"); + return jo; + } + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java index 40b285dee..72e1e62f8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/HandleBakingServiceImpl.java @@ -140,7 +140,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { // 更新烘箱区库存状态 JSONObject jsonHotIvt = hosIvtTab.query("point_code = '" + next_point_code + "'").uniqueResult(0); - if (StrUtil.isNotEmpty(jsonHotIvt.getString("container_name"))){ + if (StrUtil.isNotEmpty(jsonHotIvt.getString("container_name"))) { throw new BadRequestException("目的点上存在母卷!"); } jsonHotIvt.put("point_status", "02"); @@ -153,6 +153,24 @@ public class HandleBakingServiceImpl implements HandleBakingService { jsonHotIvt.put("update_time", DateUtil.now()); hosIvtTab.update(jsonHotIvt); + // 将入烘箱信息发送给mes + JSONObject param = new JSONObject(); + String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue(); + String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue(); + param.put("iContainerName", container_name); + param.put("iResourceName", jsonHotIvt.getString("ext_code")); + param.put("iMoveInDate", DateUtil.now()); + param.put("iPlanBakingTemperature", temperature); + param.put("iPlanBakingTimer", hours); + param.put("UserName", userName); + param.put("PassWord", passWord); + + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeInBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")) { + new LmsToMesServiceImpl().momRollBakeInBound(param); + } + } else if (StrUtil.equals(option, "2")) { //插入烘箱出入库记录表 @@ -207,7 +225,7 @@ public class HandleBakingServiceImpl implements HandleBakingService { //更新冷却区库存 JSONObject jsonIvt = coolIvtTab.query("full_point_code ='" + next_point_code + "'").uniqueResult(0); - if (StrUtil.isNotEmpty(jsonIvt.getString("container_name"))){ + if (StrUtil.isNotEmpty(jsonIvt.getString("container_name"))) { throw new BadRequestException("目的点上存在母卷!"); } jsonIvt.put("full_point_status", "02"); @@ -217,6 +235,23 @@ public class HandleBakingServiceImpl implements HandleBakingService { jsonIvt.put("workorder_id", jsonRaw.getString("workorder_id")); jsonIvt.put("ivt_qty", jsonRaw.getString("productin_qty")); coolIvtTab.update(jsonIvt); + + //查询该母卷对应最近的一条入烘箱记录 + JSONObject last_hot_mst = WQLObject.getWQLObject("ST_IVT_HotRegionIOMst").query("container_name = '" + container_name + "' AND io_type = '0' order by confirm_time desc").uniqueResult(0); + + // 将出烘箱信息发送给mes + JSONObject param = new JSONObject(); + param.put("iContainerName", jsonRaw.getString("container_name")); + param.put("iResourceName", jsonHotIvt.getString("ext_code")); + param.put("iMoveOutDate", DateUtil.now()); + param.put("iabxActualBakingTemperature", last_hot_mst.getDoubleValue("temperature")); + param.put("iabxActualBakingTimer", last_hot_mst.getDoubleValue("oven_time")); + + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeOutBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")) { + new LmsToMesServiceImpl().momRollBakeOutBound(param); + } } JSONObject result = new JSONObject(); result.put("message", "操作成功!"); @@ -255,7 +290,11 @@ public class HandleBakingServiceImpl implements HandleBakingService { param.put("UserName", userName); param.put("PassWord", passWord); - new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param); + //判断该接口是否需要回传 + 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); + } JSONObject result = new JSONObject(); result.put("message", "操作成功!"); @@ -296,29 +335,4 @@ public class HandleBakingServiceImpl implements HandleBakingService { return jsonHotMst.getString("iostorinv_id"); } - - @Transactional - public void createHotDtl(JSONObject param) { - /* - * 创建烘箱区出入明细表 - */ - WQLObject hotDtlTab = WQLObject.getWQLObject("ST_IVT_HotRegionIODtl"); // 烘箱区出入明细表 - - JSONObject jsonHotDtl = new JSONObject(); - jsonHotDtl.put("iostorinv_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonHotDtl.put("bill_code", ""); - jsonHotDtl.put("start_point_code", param.getString("start_point_code")); - jsonHotDtl.put("next_point_code", param.getString("next_point_code")); - jsonHotDtl.put("temperature", param.getString("temperature")); - jsonHotDtl.put("oven_time", param.getString("oven_time")); - jsonHotDtl.put("task_type", "1"); - jsonHotDtl.put("task_id", param.getString("task_id")); - jsonHotDtl.put("create_id", 2); - jsonHotDtl.put("create_name", "mes用户"); - jsonHotDtl.put("create_time", DateUtil.now()); - jsonHotDtl.put("dtl_status", "10"); - hotDtlTab.insert(jsonHotDtl); - } - - } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/PointStatusServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/PointStatusServiceImpl.java index a100f7bf8..904b2f260 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/PointStatusServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/PointStatusServiceImpl.java @@ -81,7 +81,11 @@ public class PointStatusServiceImpl implements PointStatusService { JSONObject mom_jo = new JSONObject(); mom_jo.put("contain_name",container_name); mom_jo.put("warehouse","1"); - lmsToMesService.cutPlanMomRollDeliveryComplete(mom_jo); + //判断该接口是否需要回传 + 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")){ + lmsToMesService.cutPlanMomRollDeliveryComplete(mom_jo); + } } } //2-解绑 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql index de2c89659..ed03f497c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql @@ -308,6 +308,40 @@ ENDQUERY ENDIF + IF 输入.flag = "11" + QUERY + SELECT + plan.*, + ivt.point_code, + ivt.sort_seq, + ivt.product_area, + ivt.point_location + FROM + PDM_BI_SlittingProductionPlan plan + LEFT JOIN st_ivt_cutpointivt ivt ON ivt.ext_code = plan.resource_name + WHERE + plan.STATUS < 09 + AND + is_child_tz_ok = 0 + AND + is_child_ps_ok = 0 + AND + is_parent_ok = 0 + AND + is_delete = '0' + OPTION 输入.product_area <> "" + ivt.product_area = 输入.product_area + ENDOPTION + OPTION 输入.container_name <> "" + plan.container_name = 输入.container_name + ENDOPTION + OPTION 输入.device_code <> "" + ivt.point_code = 输入.device_code + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java index df430568a..a15297f91 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/SlittingproductionplanServiceImpl.java @@ -209,6 +209,7 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan JSONObject json = data.getJSONObject(i); JSONObject jsonObject = tab.query("workorder_id = '" + json.getString("workorder_id") + "'").uniqueResult(0); jsonObject.put("is_child_ps_ok","1"); + jsonObject.put("status","03"); jsonObject.put("update_optid",currentUserId); jsonObject.put("update_optname",currentUsername); jsonObject.put("update_time",DateUtil.now()); @@ -228,10 +229,10 @@ public class SlittingproductionplanServiceImpl implements Slittingproductionplan for (int i = 0; i < data.size(); i++) { JSONObject json = data.getJSONObject(i); JSONObject jsonObject = tab.query("workorder_id = '" + json.getString("workorder_id") + "'").uniqueResult(0); - if (StrUtil.equals(jsonObject.getString("status"), "2")) { + if (StrUtil.equals(jsonObject.getString("status"), "09")) { throw new BadRequestException("此单号:"+jsonObject.getString("mfg_order_name")+"已完成"); } - jsonObject.put("status","2"); + jsonObject.put("status","09"); jsonObject.put("end_time",DateUtil.now()); jsonObject.put("update_optid",currentUserId); jsonObject.put("update_optname",currentUsername); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java index f2dbb41e8..e46c8b127 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CoolCutTask.java @@ -83,6 +83,8 @@ public class CoolCutTask extends AbstractAcsTask { if (StrUtil.equals(status, "0")) { // 取消删除任务 taskTab.delete("task_id = '" + task_id + "'"); + + ivtTab.delete("task_id = '" + task_id + "'"); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { @@ -91,11 +93,6 @@ public class CoolCutTask extends AbstractAcsTask { jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); - // 更新主表状态 - JSONObject coolMst = ivtTab.query("task_id = '" + task_id + "'").uniqueResult(0); - coolMst.put("bill_status", "40"); - ivtTab.update(coolMst); - } if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) { @@ -170,7 +167,11 @@ public class CoolCutTask extends AbstractAcsTask { JSONObject mom_jo = new JSONObject(); mom_jo.put("contain_name",container_name); mom_jo.put("warehouse","1"); - new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); + } } if (jsonTask.getString("task_type").equals("010302")) { @@ -212,7 +213,11 @@ public class CoolCutTask extends AbstractAcsTask { JSONObject mom_jo = new JSONObject(); mom_jo.put("contain_name",container_name); mom_jo.put("warehouse","1"); - new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'cutPlanMomRollDeliveryComplete'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mom_jo); + } } if (jsonTask.getString("task_type").equals("010303")) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java index 11cbeca3d..49dbf4a85 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/CutConveyorTask.java @@ -131,7 +131,11 @@ public class CutConveyorTask extends AbstractAcsTask { String ContainerName = row.getString("container_name"); JSONObject jo = new JSONObject(); jo.put("ContainerName", ContainerName); - lmsToMesService.airSwellWithPaperTubeAssArrival(row); + //判断该接口是否需要回传 + 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")){ + lmsToMesService.airSwellWithPaperTubeAssArrival(row); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java index 510e11038..797a468de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java @@ -134,7 +134,11 @@ public class InCoolIvtTask extends AbstractAcsTask { param.put("UserName", userName); param.put("PassWord", passWord); - JSONObject result = new LmsToMesServiceImpl().momRollSemiFGInboundComplete(param); + //判断该接口是否需要回传 + 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); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java index d946f5732..e293aa618 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InHotTask.java @@ -72,6 +72,10 @@ public class InHotTask extends AbstractAcsTask { if (StrUtil.equals(status, "0")) { // 取消删除任务 taskTab.delete("task_id = '" + task_id + "'"); + + coolIoTab.delete("task_id = '" + task_id + "'"); + + hotMstTab.delete("task_id = '" + task_id + "'"); } if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { @@ -119,7 +123,7 @@ public class InHotTask extends AbstractAcsTask { jsonPoint.put("material_code", ""); pointTab.update(jsonPoint); - hot_point_code = jsonHotIvt.getString("point_code"); + hot_point_code = jsonHotIvt.getString("ext_code"); } else { /* * 冷却区入烘箱任务 @@ -158,7 +162,7 @@ public class InHotTask extends AbstractAcsTask { jsonHotIvt.put("update_time", DateUtil.now()); hotIvtTab.update(jsonHotIvt); - hot_point_code = jsonHotIvt.getString("point_code"); + hot_point_code = jsonHotIvt.getString("ext_code"); } // 将入烘箱信息发送给mes @@ -173,7 +177,11 @@ public class InHotTask extends AbstractAcsTask { param.put("UserName", userName); param.put("PassWord", passWord); - JSONObject result = new LmsToMesServiceImpl().momRollBakeInBound(param); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeInBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + new LmsToMesServiceImpl().momRollBakeInBound(param); + } } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java index a588e23dc..46c2d9b91 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/OutHotTask.java @@ -3,6 +3,7 @@ package org.nl.wms.sch.tasks; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -117,12 +118,17 @@ public class OutHotTask extends AbstractAcsTask { // 将出烘箱信息发送给mes JSONObject param = new JSONObject(); param.put("iContainerName", jsonHotMst.getString("container_name")); - param.put("iResourceName", jsonHotIvt.getString("point_code")); + param.put("iResourceName", jsonHotIvt.getString("ext_code")); param.put("iMoveOutDate", DateUtil.now()); param.put("iabxActualBakingTemperature", jsonHotMst.getDoubleValue("temperature")); param.put("iabxActualBakingTimer", jsonHotMst.getDoubleValue("oven_time")); - JSONObject result = new LmsToMesServiceImpl().momRollBakeOutBound(param); + //判断该接口是否需要回传 + JSONObject back_jo = WQLObject.getWQLObject("MD_PB_InterfaceBack").query("interface_name = 'momRollBakeOutBound'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(back_jo) && back_jo.getString("is_back").equals("1")){ + new LmsToMesServiceImpl().momRollBakeOutBound(param); + } + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/ST_REGION_IN_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/ST_REGION_IN_01.wql index 82bc152f2..1ad23276a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/ST_REGION_IN_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/inbill/wql/ST_REGION_IN_01.wql @@ -144,6 +144,8 @@ package_box_sn FROM pdm_bi_subpackagerelation + where + status = '0' ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index 34aec6373..226b2c09c 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -97,10 +97,11 @@ - - - - + + + + +