From 006198d39fb0a98ee5c23612d43c93ad69dd74c3 Mon Sep 17 00:00:00 2001 From: 18188916393 <2562295436@qq.com> Date: Mon, 22 Aug 2022 10:26:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/common/SortingUtil.java | 63 +++++ .../org/nl/wms/common/wql/QSTRUCT_RULE.wql | 4 +- .../wms/database/service/dto/MaterialDto.java | 6 +- .../wms/ext/acs/rest/AcsToWmsController.java | 6 +- .../wms/ext/acs/rest/WmsToAcsController.java | 1 + .../wms/ext/acs/rest/WmsToJnController.java | 32 ++- .../wms/ext/acs/service/AcsToWmsService.java | 11 +- .../wms/ext/acs/service/WmsToJnService.java | 34 ++- .../acs/service/impl/AcsToWmsServiceImpl.java | 39 ++-- .../acs/service/impl/WmsToJnServiceImpl.java | 219 +++++++++++++----- .../org/nl/wms/ext/acs/wql/WMSTOJN_001.wql | 121 ++++++++++ .../wms/pdm/service/dto/ProducetaskDto.java | 14 ++ .../org/nl/wms/pdm/wql/PDM_ProduceTask_01.wql | 20 +- .../nl/wms/sch/manage/AbstractAcsTask.java | 17 +- .../wms/sch/manage/buss/CallMaterialTask.java | 9 +- .../wms/sch/manage/buss/SendMaterialTask.java | 14 +- .../wms/sch/manage/buss/ToConveyorTask.java | 20 +- .../nl/wms/sch/task/AutoOutStructTask.java | 3 +- .../impl/WorkprocedureiosServiceImpl.java | 3 +- .../service/impl/StructivtServiceImpl.java | 1 - .../java/org/nl/wms/st/ivt/wql/QIVT_001.wql | 9 +- .../src/main/java/org/nl/wms/wms.xls | Bin 384000 -> 393216 bytes .../main/resources/config/application-dev.yml | 7 +- .../src/views/wms/database/material/index.vue | 64 ++--- .../src/views/wms/pdm/produceTask/index.vue | 134 ++++++++--- wms/qd/src/views/wms/sch/point/index.vue | 2 +- wms/qd/src/views/wms/st/ivt/index.vue | 2 - 27 files changed, 649 insertions(+), 206 deletions(-) create mode 100644 wms/hd/nladmin-system/src/main/java/org/nl/wms/common/SortingUtil.java create mode 100644 wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/WMSTOJN_001.wql diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/SortingUtil.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/SortingUtil.java new file mode 100644 index 0000000..f93895f --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/SortingUtil.java @@ -0,0 +1,63 @@ +package org.nl.wms.common; + +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 org.nl.exception.BadRequestException; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; + +public class SortingUtil { + //记录分拣 木托盘对应钢托盘 + public static void record(JSONObject whereJson) { + String device_code = (String) whereJson.get("device_code"); + String vehicle_code = (String) whereJson.get("vehicle_code"); + //木托盘对应刚托盘记录主表【st_buss_vehicleRelaRecord】 + WQLObject ehicleRelaRecordmst = WQLObject.getWQLObject("st_buss_vehicleRelaRecord"); + //木托盘对应刚托盘记录明细【st_buss_vehicleRelaRecordtl】 + WQLObject ehicleRelaRecordmstdtl = WQLObject.getWQLObject("st_buss_vehicleRelaRecordtl"); + //st_buss_vehiclegroup + WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehicleRelaRecordtl"); + JSONObject mstObj = ehicleRelaRecordmst.query("vehicle_code='" + vehicle_code + "'").uniqueResult(0); + String record_id = IdUtil.getSnowflake(1, 1).nextIdStr(); + if (ObjectUtil.isEmpty(mstObj)) { + mstObj.put("record_id", record_id); + mstObj.put("vehicle_code", vehicle_code); + ehicleRelaRecordmst.insert(mstObj); + } + + JSONArray pointArr = new JSONArray(); + //假如是分拣机械手3,则去查询分拣机械手3下料位置的托盘号码 + if (StrUtil.equals(device_code, "FJJXSSLW301") || StrUtil.equals("FJJXSSLW302", device_code)) { + pointArr = WQL.getWO("WMSTOJN_001").addParam("flag", "4").process().getResultJSONArray(0); + } else { + pointArr = WQL.getWO("WMSTOJN_001").addParam("flag", "5").process().getResultJSONArray(0); + + } + for (int i = 0; i < pointArr.size(); i++) { + JSONObject jo = pointArr.getJSONObject(i); + String Sl_vehicle_code = jo.getString("vehicle_code"); + record_id = mstObj.getString("record_id"); + JSONObject dtljo = ehicleRelaRecordmstdtl.query("record_id='" + record_id + "' and vehicle_code ='" + Sl_vehicle_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(dtljo)) { + JSONObject groupObj = groupTable.query("vehicle_code='" + Sl_vehicle_code + "'", "create_time desc").uniqueResult(0); + if (ObjectUtil.isEmpty(groupObj)) { + throw new BadRequestException("未找到托盘编号为'" + vehicle_code + "'"); + } + dtljo.put("recordtl_id", IdUtil.getSnowflake(1, 1).nextId()); + dtljo.put("record_id", record_id); + dtljo.put("vehicle_code", Sl_vehicle_code); + dtljo.put("producetask_id", groupObj.get("producetask_id")); + dtljo.put("material_move_id", groupObj.get("material_move_id")); + mstObj.put("material_id", groupObj.get("material_id")); + ehicleRelaRecordmst.update(mstObj); + ehicleRelaRecordmstdtl.insert(dtljo); + } + } + } + + + +} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/wql/QSTRUCT_RULE.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/wql/QSTRUCT_RULE.wql index 06f6ebd..4076201 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/wql/QSTRUCT_RULE.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/wql/QSTRUCT_RULE.wql @@ -109,7 +109,7 @@ IF 输入.flag = "3" point.vehicle_code, ivt.canuse_qty, ivt.workprocedure_id, - ivt.qty_unit_id, + ivt.producetask_id, ruledis.out_seq_no FROM st_ivt_structivt ivt @@ -274,8 +274,6 @@ IF 输入.flag = "9" point.point_name AS struct_name, point.vehicle_code, ivt.canuse_qty, - ivt.workprocedure_id, - ivt.qty_unit_id, ruledis.out_seq_no, material.material_id, material.material_code, diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/database/service/dto/MaterialDto.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/database/service/dto/MaterialDto.java index b4828e3..96a90b1 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/database/service/dto/MaterialDto.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/database/service/dto/MaterialDto.java @@ -90,7 +90,7 @@ public class MaterialDto implements Serializable { /** * 是否人工打包 */ - private String is_manmade; + private String is_auto_package; /** * 码垛数量 @@ -106,6 +106,10 @@ public class MaterialDto implements Serializable { * 外部标识 */ private String ext_id; + /** + * 打印模板 + */ + private String print_model; /** * 静止时间 diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index d9f5277..595ee67 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -2,6 +2,8 @@ package org.nl.wms.ext.acs.rest; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -106,7 +108,7 @@ public class AcsToWmsController { @PostMapping("/status") @Log("ACS给WMS反馈任务状态") @ApiOperation("ACS给WMS反馈任务状态") - public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { - return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); + public ResponseEntity receiveTaskStatusAcs(@RequestBody String material_code) { + return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(material_code), HttpStatus.OK); } } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java index 98c1e05..690b815 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToAcsController.java @@ -72,4 +72,5 @@ public class WmsToAcsController { return new ResponseEntity<>(wmsToAcsService.queryPointStatus(arr), HttpStatus.OK); } + } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToJnController.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToJnController.java index 7bb78a0..c523af5 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToJnController.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/WmsToJnController.java @@ -44,7 +44,35 @@ public class WmsToJnController { return new ResponseEntity<>(WmsToJnService.synchroMaterial(whereJson), HttpStatus.OK); } - - + @PostMapping("/feedBackStatus") + @Log("反馈设备状态") + @ApiOperation("反馈设备状态") + public ResponseEntity feedBackStatus(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.feedBackStatus(whereJson), HttpStatus.OK); + } + @PostMapping("/feedBackCarryRecord") + @Log("反馈搬运记录") + @ApiOperation("反馈搬运记录") + public ResponseEntity feedBackCarryRecord(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.feedBackCarryRecord(whereJson), HttpStatus.OK); + } + @PostMapping("/feedBackInKiln") + @Log("反馈进窑信息") + @ApiOperation("反馈进窑信息") + public ResponseEntity feedBackInKiln(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.feedBackInKiln(whereJson), HttpStatus.OK); + } + @PostMapping("/feedBackOutKiln") + @Log("反馈出窑信息") + @ApiOperation("反馈出窑信息") + public ResponseEntity feedBackOutKiln(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.feedBackOutKiln(whereJson), HttpStatus.OK); + } + @PostMapping("/feedBackPackage") + @Log("反馈包装信息") + @ApiOperation("反馈包装信息") + public ResponseEntity feedBackPackage(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.feedBackPackage(whereJson), HttpStatus.OK); + } } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 8f7f0d7..e291c84 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -86,10 +86,19 @@ public interface AcsToWmsService { * ACS客户端--->WMS服务端 * ACS向WMS反馈任务状态 * - * @param jsonObject 条件 + * @param string 条件 * @return Map */ Map receiveTaskStatusAcs(String string); + /** + * ACS客户端--->WMS服务端 + * 根据物料编码获取垛形参数 + * + * @param string 条件 物料条码 + * @return Map + */ + + Map CribbingInfoByCode(String material_code); } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToJnService.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToJnService.java index 189cfd3..6461c14 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToJnService.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/WmsToJnService.java @@ -32,14 +32,7 @@ public interface WmsToJnService { */ Map feedBackStatus(Map whereJson); - /** - * WMS 反馈物料托盘参数信息 - * - * @param - * @return Map - */ - Map feedBackGroup(Map whereJson); /** * WMS 反馈搬运记录 * @@ -49,6 +42,33 @@ public interface WmsToJnService { Map feedBackCarryRecord(Map whereJson); + /** + * WMS 反馈进窑信息 + * + * @param + * @return Map + */ + + Map feedBackInKiln(Map whereJson); + + /** + * WMS 反馈出窑信息 + * + * @param + * @return Map + */ + + Map feedBackOutKiln(Map whereJson); + + /** + * WMS 反馈包装信息 + * + * @param + * @return Map + */ + + Map feedBackPackage(Map whereJson); + } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 20445e8..d9068c8 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.checkerframework.checker.units.qual.K; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SecurityUtils; @@ -81,7 +80,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { throw new BadRequestException("托盘是否满托不能为空!"); } String material_code = (String) jsonObject.get("material_code"); - String pcsn = (String) jsonObject.get("pcsn"); + String producetask_id = (String)jsonObject.get("producetask_id"); String material_id = ""; JSONObject materialObj = WQLObject.getWQLObject("md_me_material").query("material_code ='" + material_code + "'").uniqueResult(0); if (StrUtil.isEmpty(material_code) && (!StrUtil.equals(device_code, "CYSSX101"))) { @@ -101,18 +100,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { throw new BadRequestException("为找到载具号为'" + vehicle_code + "'的组盘信息!"); } material_id = vehicleObj.getString("material_id"); - pcsn = vehicleObj.getString("pcsn"); jsonObject.put("qty", vehicleObj.getString("qty")); jsonObject.put("vehicle_code", vehicle_code); } - - jsonObject.put("pcsn", pcsn); + jsonObject.put("producetask_id",producetask_id); jsonObject.put("create_mode", "01"); jsonObject.put("material_id", material_id); JSONObject materiralObj = WQLObject.getWQLObject("md_me_material").query("material_id = '" + material_id + "'").uniqueResult(0); Double stewing_time = materiralObj.getDouble("stewing_time"); jsonObject.put("stewing_time", stewing_time); - jsonObject.put("producetask_id", produceInfoByCode.getString("producetask_id")); //假如是压制下料的几个位置,则要考虑是入输送线 还是入立体库 String area_type = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("area_type"); if (StrUtil.equals(area_type, AreaEnum.YZQY.getCode()) && stewing_time <= 0) { @@ -262,7 +258,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject groubObj = new JSONObject(); String group_id = IdUtil.getSnowflake(1, 1).nextId() + ""; groubObj.put("group_id", group_id); - groubObj.put("material_id", material_id); groubObj.put("material_code", materialObj.getString("material_code")); groubObj.put("material_name", materialObj.getString("material_name")); @@ -330,11 +325,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { groubObj.put("create_id", SecurityUtils.getCurrentUserId()); groubObj.put("create_name", SecurityUtils.getNickName()); groubObj.put("create_time", DateUtil.now()); - String is_autopackage = "1"; - if (StrUtil.equals(device_code, "MDJXS601")) { - is_autopackage = "0"; - } - groubObj.put("is_autopackage", is_autopackage); + //去自动码垛还是人工码垛从物料信息里面去取 + groubObj.put("is_autopackage", materialObj.getString("is_auto_package")); //假如是分拣机械手,并且托盘为空,则托盘从点位上取 if ((StrUtil.equals(device_code, "FJJXSXLW201") || StrUtil.equals(device_code, "FJJXSXLW202") || @@ -349,6 +341,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { WQLObject.getWQLObject("st_buss_vehiclegroup").insert(groubObj); jsonObject.put("type", "1"); jsonObject.put("group_id", group_id); + jsonObject.put("producetask_id", producetask_id); this.receiveTaskFromAcs(jsonObject); JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); @@ -574,10 +567,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } //根据设备去找设备id - JSONObject deviceObj = WQLObject.getWQLObject("PDM_BASE_DEVICE").query("device_code='" + device_code + "'").uniqueResult(0); + String device_id = WQLObject.getWQLObject("sch_base_point").query("point_code='" + device_code + "'").uniqueResult(0).getString("device_id"); //根据物料code 去找物料id JSONObject materiObj = WQLObject.getWQLObject("MD_ME_Material").query("material_code='" + material_code + "'").uniqueResult(0); - if (!StrUtil.equals(deviceObj.getString("device_id"), taskObj.getString("device_id"))) { + if (!StrUtil.equals(device_id, taskObj.getString("device_id"))) { throw new BadRequestException("设备标识不一样!"); } if (!StrUtil.equals(materiObj.getString("material_id"), taskObj.getString("material_id"))) { @@ -687,6 +680,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } } + @Override + public Map CribbingInfoByCode(String material_code) { + if (StrUtil.isEmpty(material_code)) { + throw new BadRequestException("物料条码不能为空!"); + } + JSONObject returnjo = WQLObject.getWQLObject("MD_ME_CribbingInfo").query("material_code='" + material_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(returnjo)) { + throw new BadRequestException("未找到物料编码为'" + material_code + "'的垛形参数信息!"); + } + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "任务状态反馈成功!"); + result.put("data", returnjo); + return result; + } + private JSONObject getProduceInfoByCode(String code) { //根据 设备点位去找生产任务信息 //1 根据点位去找设备,去找对应的设备信息 @@ -694,7 +703,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String device_id = pointObj.getString("device_id"); //2 根据设备去找对应的生产任务 JSONObject productTaskObj = WQLObject.getWQLObject("PDM_MG_produceTask") - .query("device_id ='" + device_id + "' and producetask_status in ('03','02','04')", "seq_no") + .query("device_id ='" + device_id + "' and producetask_status in ('03','02','04')") .uniqueResult(0); if (ObjectUtil.isEmpty(productTaskObj)) { throw new BadRequestException("未找到点位为'" + code + "'的生产任务!"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToJnServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToJnServiceImpl.java index be3a7d6..71b6cb7 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToJnServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToJnServiceImpl.java @@ -9,12 +9,19 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.nl.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.utils.SecurityUtils; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.WmsToJnService; import org.nl.wms.sch.AcsUtil; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; +import org.nl.wql.core.engine.object.WO; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.Map; @@ -25,106 +32,206 @@ import java.util.Map; public class WmsToJnServiceImpl implements WmsToJnService { private String URL = "192.168.23.32"; final static int timeout = 3000; - private String today = DateUtil.today(); + @Override public Map synchroDaySchedule(Map whereJson) { + String today = DateUtil.today(); //同步日计划 JSONObject obj = new JSONObject(); - obj.put("date", today); + obj.put("startdate", whereJson.get("startdate")); + obj.put("enddate", whereJson.get("enddate")); String resultMsg = HttpRequest.post(URL) .body(String.valueOf(obj)).timeout(timeout) .execute().body(); JSONObject result = JSONObject.parseObject(resultMsg); - String code = result.getString("code"); - if (StrUtil.isNotEmpty(code) && code.equals("200")) { - log.info("wms同步嘉耐日计划成功!"); + String status = result.getString("status"); + if (StrUtil.isNotEmpty(status) && status.equals("1")) { + log.info("wms同步嘉耐工单成功!"); } else { - log.info("wms同步嘉耐日计划失败!"); + log.info("wms同步嘉耐工单失败!"); } - WQLObject dayScheduleTable = WQLObject.getWQLObject("pdm_bi_dayschedule"); - JSONArray dayScheduleArr = result.getJSONArray("data"); + WQLObject produceTaskTable = WQLObject.getWQLObject("PDM_MG_produceTask"); + WQLObject material_table = WQLObject.getWQLObject("md_me_materialbase"); + WQLObject device_Table = WQLObject.getWQLObject("PDM_BASE_DEVICE"); + JSONArray dayScheduleArr = result.getJSONObject("returnData").getJSONArray("Table"); for (int i = 0; i < dayScheduleArr.size(); i++) { JSONObject dayScheduleObj = dayScheduleArr.getJSONObject(i); - JSONObject scheduleObj = dayScheduleTable.query("ext_dayschedule_code='" + dayScheduleObj.getString("ext_dayschedule_code") + "'").uniqueResult(0); + //计划单号 + String SHOPORDERNO = dayScheduleObj.getString("SHOPORDERNO"); + //物料代码 + String ITEMCODE = dayScheduleObj.getString("ITEMCODE"); + //压机编号 + String SBDM = dayScheduleObj.getString("SBDM"); + JSONObject materialObj = material_table.query("material_code ='" + ITEMCODE + "'").uniqueResult(0); + JSONObject deviceObj = device_Table.query("ext_device_code='" + SBDM + "'").uniqueResult(0); + JSONObject scheduleObj = produceTaskTable.query("ext_shoporder_no='" + SHOPORDERNO + "'").uniqueResult(0); if (ObjectUtil.isEmpty(scheduleObj)) { JSONObject jo = new JSONObject(); - jo.put("dayschedule_id", IdUtil.getSnowflake(1, 1).nextId()); - jo.put("ext_dayschedule_code", scheduleObj.getString("ext_dayschedule_code")); - jo.put("date", today); - jo.put("ext_dayschedule_code", scheduleObj.getString("ext_dayschedule_code")); - jo.put("ext_device_code", scheduleObj.getString("ext_device_code")); - jo.put("device_id", scheduleObj.getString("device_id")); - jo.put("device_code", scheduleObj.getString("device_code")); - jo.put("material_id", scheduleObj.getString("material_id")); - jo.put("material_code", scheduleObj.getString("material_code")); - jo.put("material_name", scheduleObj.getString("material_name")); - jo.put("material_spec", scheduleObj.getString("material_spec")); - jo.put("single_weight", scheduleObj.getString("single_weight")); - jo.put("qty", scheduleObj.getString("qty")); - jo.put("qty_unit_id", scheduleObj.getString("qty_unit_id")); - jo.put("label", scheduleObj.getString("label")); - jo.put("is_delete", "1"); - dayScheduleTable.insert(jo); + jo.put("producetask_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("producetask_code", CodeUtil.getNewCode("PRODUCE_CODE")); + jo.put("producetask_status", "01"); + jo.put("material_id", materialObj.getString("material_id")); + jo.put("device_id", deviceObj.getString("device_id")); + jo.put("plan_qty", deviceObj.getString("REQQTY")); + jo.put("vehicle_type", deviceObj.getString("STOCKTYPE")); + jo.put("plan_date", deviceObj.getString("PLANSTARTDATE")); + jo.put("classes", deviceObj.getString("BANCI")); + jo.put("ext_shoporder_no", deviceObj.getString("SHOPORDERNO")); + jo.put("print_type", deviceObj.getString("PRINTTYPE")); + jo.put("print_dm", deviceObj.getString("PRINTDM")); + jo.put("print_name", deviceObj.getString("PRINTNAME")); + jo.put("print_gg", deviceObj.getString("PRINTGG")); + jo.put("print_pc", deviceObj.getString("PRINTPC")); + jo.put("yh_name", deviceObj.getString("YHNAME")); + jo.put("is_export", "1"); + jo.put("is_export", deviceObj.getString("STOCKTYPE")); + jo.put("create_id", SecurityUtils.getCurrentUserId()); + jo.put("create_name", SecurityUtils.getNickName()); + jo.put("create_time", DateUtil.now()); + produceTaskTable.insert(jo); } } - return null; + JSONObject returnjo = new JSONObject(); + returnjo.put("status", HttpStatus.OK.value()); + returnjo.put("message", "任务状态反馈成功!"); + return result; } @Override + @Transactional(rollbackFor = Exception.class) public Map synchroMaterial(Map whereJson) { - String material_code = (String) whereJson.get("material_code"); - String material_name = (String) whereJson.get("material_name"); - String material_spec = (String) whereJson.get("material_spec"); - String ext_id = (String) whereJson.get("ext_id"); - WQLObject materialTable = WQLObject.getWQLObject("md_me_material"); + String methon = "getItems"; + /** + * DM: "物料代码", + * NAME: "物料名称", + * GG: "规格型号", + * JLDWNAME: "计量单位", + * PRINTTYPE: "打印模板编码", + * WAITTIME:”静止时间(分钟)”, + * ISAUTO:”是否自动码垛” 0-否 1-是 + */ + WQLObject material_table = WQLObject.getWQLObject("MD_ME_Material"); JSONObject obj = new JSONObject(); - obj.put("material_code", material_code); - obj.put("material_spec", material_spec); String resultMsg = HttpRequest.post(URL) .body(String.valueOf(obj)).timeout(timeout) .execute().body(); JSONObject result = JSONObject.parseObject(resultMsg); - String code = result.getString("code"); - if (StrUtil.isNotEmpty(code) && code.equals("200")) { + String status = result.getString("status"); + if (StrUtil.isNotEmpty(status) && status.equals("1")) { log.info("wms同步嘉耐物料成功!"); } else { log.info("wms同步嘉耐物料失败!"); } - JSONArray materialarr = result.getJSONArray("data"); + JSONArray Table = new JSONArray(); + JSONObject param = new JSONObject(); + + JSONArray materialarr = result.getJSONArray("Table"); for (int i = 0; i < materialarr.size(); i++) { JSONObject materialjo = materialarr.getJSONObject(i); - JSONObject materialObj = new JSONObject(); - materialObj.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); - materialObj.put("material_code", materialjo.getString("material_code")); - materialObj.put("material_name", materialjo.getString("material_name")); - materialObj.put("material_spec", materialjo.getString("material_spec")); - materialObj.put("material_model", materialjo.getString("material_name")); - materialObj.put("create_id", "1"); - materialObj.put("create_time", DateUtil.now()); - materialObj.put("create_name", "qinx"); - materialObj.put("is_used", "1"); - materialObj.put("is_manmade", "1"); - materialObj.put("ext_id", materialjo.getString("ext_id")); - materialObj.put("stewing_time", 0); - materialTable.insert(materialjo); + String DM = materialjo.getString("DM"); + param.put("ITEMCODE", DM); + Table.add(param); + JSONObject materialObj = material_table.query("material_code='" + DM + "'").uniqueResult(0); + //如果有就更新,没有就插入 + if (ObjectUtil.isEmpty(materialObj)) { + materialObj.put("material_name", materialjo.getString("NAME")); + materialObj.put("material_spec", materialjo.getString("GG")); + materialObj.put("material_model", materialjo.getString("GG")); + materialObj.put("english_name", materialjo.getString("NAME")); + materialObj.put("stewing_time", materialjo.getString("WAITTIME")); + materialObj.put("print_model", materialjo.getString("PRINTTYPE")); + materialObj.put("is_auto_package", materialjo.getString("ISAUTO")); + materialObj.put("is_used", "1"); + materialObj.put("update_optid", SecurityUtils.getCurrentUserId()); + materialObj.put("update_optname", SecurityUtils.getNickName()); + materialObj.put("update_time", DateUtil.now()); + material_table.update(materialObj); + } else { + materialObj.put("material_id", IdUtil.getSnowflake(1, 1).nextId()); + materialObj.put("material_name", materialjo.getString("NAME")); + materialObj.put("material_code", materialjo.getString("GG")); + materialObj.put("material_model", materialjo.getString("GG")); + materialObj.put("english_name", materialjo.getString("NAME")); + materialObj.put("print_model", materialjo.getString("PRINTTYPE")); + materialObj.put("is_auto_package", materialjo.getString("ISAUTO")); + materialObj.put("is_used", "1"); + materialObj.put("create_id", SecurityUtils.getCurrentUserId()); + materialObj.put("create_name", SecurityUtils.getNickName()); + materialObj.put("create_time", DateUtil.now()); + materialObj.put("update_optid", SecurityUtils.getCurrentUserId()); + materialObj.put("update_optname", SecurityUtils.getNickName()); + materialObj.put("update_time", DateUtil.now()); + material_table.insert(materialObj); + } + } - return null; + //调用接口告诉wms 调用已经同步该物料 + String returnResultMsg = HttpRequest.post(URL) + .body(String.valueOf(obj)).timeout(timeout) + .execute().body(); + JSONObject returnResult = JSONObject.parseObject(returnResultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("wms反馈嘉耐物料成功!"); + } else { + log.info("wms反馈嘉耐物料失败!"); + } + JSONObject returnjo = new JSONObject(); + returnjo.put("status", HttpStatus.OK.value()); + returnjo.put("message", "任务状态反馈成功!"); + return result; } @Override public Map feedBackStatus(Map whereJson) { + return null; } - @Override - public Map feedBackGroup(Map whereJson) { - return null; - } @Override public Map feedBackCarryRecord(Map whereJson) { + String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); + //如果连接了嘉耐 则反馈搬运记录 + if (StrUtil.equals(value, "1")) { + String task_id = (String) whereJson.get("task_id"); + JSONObject jsonObject = WQL.getWO("WMSTOJN_001").addParam("flag", "1").addParam("task_id", task_id).process().uniqueResult(0); + String returnResultMsg = HttpRequest.post(URL) + .body(String.valueOf(jsonObject)).timeout(timeout) + .execute().body(); + } + return null; } + @Override + public Map feedBackInKiln(Map whereJson) { + String vehicle_code = (String) whereJson.get("vehicle_code"); + JSONObject jsonObject = WQL.getWO("WMSTOJN_001").addParam("flag", "2").addParam("vehicle_code", vehicle_code).process().uniqueResult(0); + String returnResultMsg = HttpRequest.post(URL) + .body(String.valueOf(jsonObject)).timeout(timeout) + .execute().body(); + return null; + } + + @Override + public Map feedBackOutKiln(Map whereJson) { + String vehicle_code = (String) whereJson.get("vehicle_code"); + JSONObject jsonObject = WQL.getWO("WMSTOJN_001").addParam("flag", "3").addParam("vehicle_code", vehicle_code).process().uniqueResult(0); + String returnResultMsg = HttpRequest.post(URL) + .body(String.valueOf(jsonObject)).timeout(timeout) + .execute().body(); + return null; + } + + @Override + public Map feedBackPackage(Map whereJson) { + //木托盘号码 + String vehicle_code = (String) whereJson.get("vehicle_code"); + + return null; + } + + } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/WMSTOJN_001.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/WMSTOJN_001.wql new file mode 100644 index 0000000..ca4505a --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/WMSTOJN_001.wql @@ -0,0 +1,121 @@ +[交易说明] + 交易名: wms给嘉耐发请求 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + 输入.task TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + QUERY + SELECT + vehicle_group.material_move_id AS ID, + device.ext_device_code AS SBDM, + task.car_no AS AGVNO, + producetask.ext_shoporder_no AS SHOPORDERNO, + vehicle_group.material_code AS ITEMCODE, + task.create_time AS STARTDATE, + task.update_time AS WAITDATE, + task.vehicle_code AS STOCKNO, + vehicle_group.qty AS QTY + FROM + sch_base_task task + LEFT JOIN st_buss_vehiclegroup vehicle_group ON vehicle_group.material_move_id = task.task_id + LEFT JOIN sch_base_point point ON point.point_code = task.start_point_code + LEFT JOIN pdm_base_device device ON device.device_id = point.device_id + LEFT JOIN pdm_mg_producetask producetask ON producetask.producetask_id = vehicle_group.producetask_id + OPTION 输入.task_id <> "" + task.task_id = 输入.task_id + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + + IF 输入.flag = "2" + QUERY + SELECT + vehicle_group.vehicle_code, + vehicle_group.material_move_id AS ID, + kiln.in_time AS INDATE + FROM + pdm_bi_kilnrecord kiln + LEFT JOIN st_buss_vehiclegroup vehicle_group ON kiln.vehicle_code = vehicle_group.vehicle_code + OPTION 输入.vehicle_code <> "" + kiln.vehicle_code = 输入.vehicle_code + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + vehicle_group.vehicle_code, + vehicle_group.material_move_id AS ID, + kiln.out_time AS OUTDATE + FROM + pdm_bi_kilnrecord kiln + LEFT JOIN st_buss_vehiclegroup vehicle_group ON kiln.vehicle_code = vehicle_group.vehicle_code + OPTION 输入.vehicle_code <> "" + kiln.vehicle_code = 输入.vehicle_code + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF + IF 输入.flag = "4" + QUERY + SELECT + * + FROM + sch_base_point point + WHERE + point.point_code IN ( 'FJJXSXLW301', 'FJJXSXLW302' ) + ENDSELECT + ENDQUERY + ENDIF + + +IF 输入.flag = "5" + QUERY + SELECT + * + FROM + sch_base_point point + WHERE + point.point_code IN ( 'FJJXSXLW201', 'FJJXSXLW202' ) + ENDSELECT + ENDQUERY + ENDIF \ No newline at end of file diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/ProducetaskDto.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/ProducetaskDto.java index 5a71642..22c167b 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/ProducetaskDto.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/dto/ProducetaskDto.java @@ -98,4 +98,18 @@ public class ProducetaskDto implements Serializable { /** 静置时间 */ private BigDecimal stewing_time; + /** + * 计划日期 + */ + private String ext_shoporder_no; + private String print_type; + private String print_dm; + private String print_name; + private String print_gg; + private String print_pc; + private String yh_name; + private String plan_date; + private String classes; + + } \ No newline at end of file diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/PDM_ProduceTask_01.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/PDM_ProduceTask_01.wql index 1ce8e8c..b83bcd2 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/PDM_ProduceTask_01.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/PDM_ProduceTask_01.wql @@ -51,14 +51,14 @@ device.workprocedure_id, device.device_name, material.material_name, - cust.cust_name, + produceline.produceline_name FROM PDM_MG_produceTask task left join md_me_material material on task.material_id = material.material_id left join pdm_base_device device on task.device_id = device.device_id left join pdm_base_produceline produceline on task.produceline_id = produceline.produceline_id - left join MD_CS_CustomerBase cust on task.cust_id = cust.cust_id + WHERE task.is_delete = '0' OPTION 输入.search <> "" @@ -76,9 +76,7 @@ OPTION 输入.produceline_id <> "" (task.produceline_id = 输入.produceline_id) ENDOPTION - OPTION 输入.cust_id <> "" - (task.cust_id = 输入.cust_id) - ENDOPTION + ENDSELECT ENDPAGEQUERY ENDIF @@ -90,14 +88,14 @@ task.*, device.device_name, material.material_name, - cust.cust_name, + produceline.produceline_name FROM PDM_MG_produceTask task left join md_me_material material on task.material_id = material.material_id left join pdm_base_device device on task.device_id = device.device_id left join pdm_base_produceline produceline on task.produceline_id = produceline.produceline_id - left join MD_CS_CustomerBase cust on task.cust_id = cust.cust_id + WHERE task.is_delete = '0' and task.device_id = 输入.device_id and task.producetask_status = '01' ENDSELECT @@ -108,19 +106,19 @@ IF 输入.flag = "3" QUERY SELECT + point.point_code AS device_code, task.*, - device.device_code, - device.device_name, material.material_code, material.material_name, material.material_spec, material.material_model FROM pdm_mg_producetask task - LEFT JOIN pdm_base_device device ON task.device_id = device.device_id + LEFT JOIN sch_base_point point ON point.device_id = task.device_id + AND point.point_code <> 'MDJXS102' LEFT JOIN md_me_material material ON material.material_id = task.material_id WHERE - 1=1 + 1 =1 OPTION 输入.producetask_id <> "" (task.producetask_id = 输入.producetask_id) ENDOPTION diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index e74c5c8..ae9f788 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -51,6 +51,14 @@ public abstract class AbstractAcsTask { taskDto.setExt_task_uuid(json.getString("task_id")); taskDto.setTask_code(json.getString("task_code")); taskDto.setTask_type("1"); + //如果起点是码垛机械手的下料位置,终点是货架,type要给2 + JSONObject stratrObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("start_point_code") + "'").uniqueResult(0); + JSONObject nextObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("next_point_code") + "'").uniqueResult(0); + if (StrUtil.equals(stratrObj.getString("area_type"), AreaEnum.YZQY.getCode()) && + StrUtil.equals(nextObj.getString("area_type"), AreaEnum.RYHCHJ.getCode()) + ) { + taskDto.setTask_type("2"); + } taskDto.setRoute_plan_code("normal"); taskDto.setStart_device_code(json.getString("start_point_code")); taskDto.setNext_device_code(json.getString("next_point_code")); @@ -117,12 +125,19 @@ public abstract class AbstractAcsTask { taskDto.setExt_task_uuid(json.getString("task_id")); taskDto.setTask_code(json.getString("task_code")); taskDto.setTask_type("1"); + //如果起点是码垛机械手的下料位置,终点是货架,type要给2 + JSONObject stratrObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("start_point_code") + "'").uniqueResult(0); + JSONObject nextObj = WQLObject.getWQLObject("sch_base_point").query("point_code='" + json.getString("next_point_code") + "'").uniqueResult(0); + if (StrUtil.equals(stratrObj.getString("area_type"), AreaEnum.YZQY.getCode()) && + StrUtil.equals(nextObj.getString("area_type"), AreaEnum.RYHCHJ.getCode()) + ) { + taskDto.setTask_type("2"); + } taskDto.setRoute_plan_code("normal"); taskDto.setStart_device_code(json.getString("start_point_code")); taskDto.setNext_device_code(json.getString("next_point_code")); taskDto.setVehicle_code(json.getString("vehicle_code")); jsonArray.add(JSONObject.parse(JSON.toJSONString(taskDto))); - } return AcsUtil.notifyAcs("api/wms/task", jsonArray); } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java index 6cca0a1..042cd7b 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java @@ -310,6 +310,7 @@ public class CallMaterialTask extends AbstractAcsTask { iosObj.put("ivt_workprocedure_id", ivt_workprocedure_id); iosObj.put("material_id", material_id); iosObj.put("vehicle_code", outStructObj.getString("vehicle_code")); + iosObj.put("producetask_id", outStructObj.getString("producetask_id")); iosObj.put("qty", qty); iosObj.put("qty_unit_id", qty_unit_id); //默认是分配状态 @@ -322,8 +323,8 @@ public class CallMaterialTask extends AbstractAcsTask { iosObj.put("create_mode", create_mode); iosObj.put("task_id", task_id); iosObj.put("pcsn", pcsn); - iosObj.put("create_id",SecurityUtils.getCurrentUserId()); - iosObj.put("create_name", SecurityUtils.getNickName()); + iosObj.put("create_id","1"); + iosObj.put("create_name", "管理员"); iosObj.put("create_time", DateUtil.now()); WQLObject.getWQLObject("ST_IVT_workProcedureIOS").insert(iosObj); //将组盘里面的task_id改为当前的任务 @@ -370,8 +371,8 @@ public class CallMaterialTask extends AbstractAcsTask { taskObj.put("vehicle_code", vehicle_code); taskObj.put("handle_class", THIS_CLASS); taskObj.put("is_auto_issue", "1"); - taskObj.put("create_name", SecurityUtils.getNickName()); - taskObj.put("create_id", SecurityUtils.getCurrentUserId()); + taskObj.put("create_name", "管理员"); + taskObj.put("create_id", "1"); taskObj.put("create_time", DateUtil.now()); taskObj.put("is_delete", "0"); taskTable.insert(taskObj); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java index 2505381..33b877f 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendMaterialTask.java @@ -15,6 +15,7 @@ import org.nl.utils.SpringContextHolder; import org.nl.wms.BussConstant; import org.nl.wms.WorkProcedureEnum; import org.nl.wms.common.StructFindUtil; +import org.nl.wms.ext.acs.service.WmsToJnService; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AreaEnum; import org.nl.wms.sch.manage.BillTypeEnum; @@ -36,21 +37,23 @@ import java.util.HashMap; @Slf4j public class SendMaterialTask extends AbstractAcsTask { private final String THIS_CLASS = SendMaterialTask.class.getName(); - + private final WmsToJnService wmsToJnService; @Override @Transactional public void updateTaskStatus(JSONObject taskObj, String status) { /** - *改变任务状态 + *改变任务状态2 **/ String task_id = taskObj.getString("task_id"); + String car_no = taskObj.getString("car_no"); WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { //更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); jsonTask.put("update_time", DateUtil.now()); + jsonTask.put("car_no", car_no); taskTab.update(jsonTask); HashMap map = new HashMap(); map.put("update_optid", SecurityUtils.getCurrentUserId()); @@ -188,6 +191,7 @@ public class SendMaterialTask extends AbstractAcsTask { String pcsn = form.getString("pcsn"); String vehicle_code = form.getString("vehicle_code"); String group_id = form.getString("group_id"); + String print_pc = form.getString("print_pc"); WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task"); if (StrUtil.isEmpty(start_point_code)) { throw new BadRequestException("起点不能为空!"); @@ -288,6 +292,7 @@ public class SendMaterialTask extends AbstractAcsTask { iosObj.put("stewing_time", stewing_time); iosObj.put("qty", qty); iosObj.put("qty_unit_id", qty_unit_id); + iosObj.put("print_pc", print_pc); //默认是分配状态 iosObj.put("bill_status", "20"); iosObj.put("start_point_code", start_point_code); @@ -341,8 +346,13 @@ public class SendMaterialTask extends AbstractAcsTask { JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(groupInfo)) { groupInfo.put("task_id", task_id); + groupInfo.put("material_move_id", task_id); groupTable.update(groupInfo); } + //调用接口反馈给嘉耐 搬运任务 + JSONObject param = new JSONObject(); + param.put("task_id", task_id); + wmsToJnService.feedBackCarryRecord(param); } return task_id; } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java index f2d7868..f4b3fa6 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java @@ -15,6 +15,7 @@ import org.nl.utils.SpringContextHolder; import org.nl.wms.BussConstant; import org.nl.wms.WorkProcedureEnum; import org.nl.wms.common.StructFindUtil; +import org.nl.wms.ext.acs.service.WmsToJnService; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AreaEnum; import org.nl.wms.sch.manage.BillTypeEnum; @@ -36,6 +37,7 @@ import java.util.HashMap; @Slf4j public class ToConveyorTask extends AbstractAcsTask { private final String THIS_CLASS = ToConveyorTask.class.getName(); + private final WmsToJnService wmsToJnService; @Override @@ -45,11 +47,13 @@ public class ToConveyorTask extends AbstractAcsTask { *改变任务状态 **/ String task_id = taskObj.getString("task_id"); + String car_no = taskObj.getString("car_no"); WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0); if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { //更新任务状态为执行中 jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); + jsonTask.put("car_no", car_no); jsonTask.put("update_time", DateUtil.now()); taskTab.update(jsonTask); HashMap map = new HashMap(); @@ -67,6 +71,10 @@ public class ToConveyorTask extends AbstractAcsTask { jsonTask.put("update_time", DateUtil.now()); jsonTask.put("remark", "任务执行完成"); taskTab.update(jsonTask); + //调用接口反馈给嘉耐 搬运任务 + JSONObject param = new JSONObject(); + param.put("task_id", task_id); + wmsToJnService.feedBackCarryRecord(param); } } @@ -77,7 +85,8 @@ public class ToConveyorTask extends AbstractAcsTask { } @Override - public void findNextPoint() {} + public void findNextPoint() { + } @Override @Transactional @@ -96,7 +105,7 @@ public class ToConveyorTask extends AbstractAcsTask { if (StrUtil.isEmpty(start_point_code)) { throw new BadRequestException("起点不能为空!"); } - if (StrUtil.isEmpty(next_point_code)){ + if (StrUtil.isEmpty(next_point_code)) { throw new BadRequestException("终点不能为空!"); } //判断起点有没有未完成的指令 @@ -112,10 +121,11 @@ public class ToConveyorTask extends AbstractAcsTask { } String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; JSONObject materialObj = WQLObject.getWQLObject("md_me_material").query("material_id='" + material_id + "'").uniqueResult(0); - //更新组盘信息,将task_id 更新 + //更新组盘信息,将task_id 更新 WQLObject groupTable = WQLObject.getWQLObject("st_buss_vehiclegroup"); - JSONObject groupInfo =groupTable.query("group_id='"+group_id+"'").uniqueResult(0); - groupInfo.put("task_id",task_id); + JSONObject groupInfo = groupTable.query("group_id='" + group_id + "'").uniqueResult(0); + groupInfo.put("task_id", task_id); + groupInfo.put("material_move_id", task_id); groupTable.update(groupInfo); PointService pointService = SpringContextHolder.getBean(PointService.class); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoOutStructTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoOutStructTask.java index a0e2732..7380b3e 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoOutStructTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoOutStructTask.java @@ -13,6 +13,7 @@ import org.nl.wms.sch.manage.buss.CallMaterialTask; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; @Slf4j @@ -26,7 +27,7 @@ public class AutoOutStructTask { this.doExecute(); } - + @Transactional(rollbackFor = Exception.class) private void doExecute() { WQLObject param_Table = WQLObject.getWQLObject("sys_param"); int num = param_Table.query("code='stewing_num' ").uniqueResult(0).getInteger("value"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/in/service/impl/WorkprocedureiosServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/in/service/impl/WorkprocedureiosServiceImpl.java index 0afdf32..5a1dc51 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/in/service/impl/WorkprocedureiosServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/in/service/impl/WorkprocedureiosServiceImpl.java @@ -44,7 +44,7 @@ import cn.hutool.core.util.ObjectUtil; @Slf4j public class WorkprocedureiosServiceImpl implements WorkprocedureiosService { private final String THIS_CLASS = SendMaterialTask.class.getName(); - + private SendMaterialTask sendMaterialTask; @Override public Map queryAll(Map whereJson, Pageable page) { @@ -265,7 +265,6 @@ public class WorkprocedureiosServiceImpl implements WorkprocedureiosService { form.put("is_full",is_full); form.put("ivt_workprocedure_id",ivt_workprocedure_id); form.put("iostorinv_id",iostorinv_id); - SendMaterialTask sendMaterialTask = new SendMaterialTask(); String task_id = sendMaterialTask.createTask(form); JSONObject json = new JSONObject(); json.put("task_id", task_id); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/service/impl/StructivtServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/service/impl/StructivtServiceImpl.java index 8bca731..6349a68 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/service/impl/StructivtServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/service/impl/StructivtServiceImpl.java @@ -54,7 +54,6 @@ public class StructivtServiceImpl implements StructivtService { map.put("stor_uuid", stor_uuid); map.put("material_name", material_name); map.put("storagevehicle_code", storagevehicle_code); - map.put("pcsn", pcsn); map.put("struct_name", struct_name); JSONObject json = WQL.getWO("QIVT_001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "struct_code"); JSONArray jsonArray = json.getJSONArray("content"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/wql/QIVT_001.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/wql/QIVT_001.wql index f8b882b..6d4fb2a 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/wql/QIVT_001.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/ivt/wql/QIVT_001.wql @@ -57,15 +57,11 @@ material.material_id, material.material_code, material.material_name, - ivt.pcsn, ivt.canuse_qty, ivt.ivt_qty, ivt.frozen_qty, ivt.is_full, - ivt.mix_seq, ivt.stewing_time, - unitqty.unit_code, - unitqty.unit_name, ivt.instorage_time, sect.sect_name, workprocedure.workprocedure_name @@ -73,7 +69,6 @@ st_ivt_structivt ivt LEFT JOIN sch_base_point point ON point.point_id = ivt.struct_id LEFT JOIN md_me_material material ON material.material_id = ivt.material_id - LEFT JOIN md_pb_measureunit unitqty ON unitqty.unit_id = ivt.qty_unit_id left join st_ivt_structattr struct on struct.struct_id = ivt.struct_id left join ST_IVT_SectAttr sect on struct.sect_id = sect.sect_id left join pdm_base_workprocedure workprocedure on workprocedure.workprocedure_id = ivt.workprocedure_id @@ -83,9 +78,7 @@ (material.material_name like "%"输入.material_name"%" or material.material_code like "%"输入.material_name"%") ENDOPTION - OPTION 输入.pcsn <> "" - ivt.pcsn like "%"输入.pcsn"%" - ENDOPTION + OPTION 输入.struct_name <> "" (point.point_code like "%"输入.struct_name"%" or point.point_name like "%"输入.struct_name"%") diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/wms.xls b/wms/hd/nladmin-system/src/main/java/org/nl/wms/wms.xls index dc1a425cca7b46df9e9f525829b2f0ff37b08fc5..ebd99d4f08a04bd1dd29605f669b926327d97347 100644 GIT binary patch delta 118189 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%0A0UDDX1H%FXHooKr42`mqJjcmZTMAgUF~BO_9!R& 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 L2y&|~LJ#wQdPm3d delta 111025 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 {{ item.label }} - - {{ item.label }} + + {{ item.label }} - - - - - - - + + + @@ -99,22 +83,17 @@ - - - - +