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 dc1a425..ebd99d4 100644 Binary files a/wms/hd/nladmin-system/src/main/java/org/nl/wms/wms.xls and b/wms/hd/nladmin-system/src/main/java/org/nl/wms/wms.xls differ diff --git a/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml b/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml index 68bd41f..b275e7d 100644 --- a/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml +++ b/wms/hd/nladmin-system/src/main/resources/config/application-dev.yml @@ -8,10 +8,13 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:jl_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + #url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:jl_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + #url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:jl_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:jl_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true username: ${DB_USER:root} #password: ${DB_PWD:P@ssw0rd} - password: ${DB_PWD:Root.123456} + password: ${DB_PWD:root} + #password: ${DB_PWD:Root.123456} # 初始连接数 initial-size: 5 # 最小连接数 diff --git a/wms/qd/src/views/wms/database/material/index.vue b/wms/qd/src/views/wms/database/material/index.vue index 7b569b3..e783aab 100644 --- a/wms/qd/src/views/wms/database/material/index.vue +++ b/wms/qd/src/views/wms/database/material/index.vue @@ -36,28 +36,12 @@ {{ item.label }} - - {{ item.label }} + + {{ item.label }} - - - - - - - + + + @@ -99,22 +83,17 @@ - - - - +