diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/StructFindUtil.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/StructFindUtil.java index afcb86f..48b790d 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/StructFindUtil.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/common/StructFindUtil.java @@ -40,6 +40,7 @@ public class StructFindUtil { String area_type = jsonObject.getString("area_type"); String is_full = jsonObject.getString("is_full"); String workprocedure_id = jsonObject.getString("workprocedure_id"); + String group_device= jsonObject.getString("group_device"); if (StrUtil.isEmpty(material_id)) { throw new BadRequestException("物料不能为空!"); @@ -59,6 +60,7 @@ public class StructFindUtil { } JSONObject result = WQL.getWO("QSTRUCT_RULE").addParam("flag", "3") .addParam("material_id", material_id).addParam("area_type", area_type) + .addParam("group_device",group_device) .addParam("is_full", is_full).addParam("workprocedure_id", workprocedure_id) .process().uniqueResult(0); return result; 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 59b7b07..14adf21 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 @@ -24,6 +24,7 @@ 输入.material_id TYPEAS s_string 输入.next_point_code TYPEAS s_string 输入.point_code TYPEAS s_string + 输入.group_device TYPEAS s_string [临时表] @@ -116,12 +117,16 @@ IF 输入.flag = "3" st_ivt_structivt ivt LEFT JOIN sch_base_point point ON point.point_id = ivt.struct_id left join st_rule_IOdisStruct ruledis on ruledis.struct_uuid = ivt.struct_id + LEFT JOIN st_buss_vehiclegroup vehiclegroup ON vehiclegroup.vehicle_code = ivt.vehicle_code WHERE ivt.canuse_qty > 0 AND point.point_status = '02' AND point.lock_type = '00' AND point.is_used ='1' and TIME_TO_SEC(timediff(now(),ivt.instorage_time)) >=ivt.stewing_time*60 + OPTION 输入.group_device <> "" + vehiclegroup.device_id = 输入.group_device + ENDOPTION OPTION 输入.material_id <> "" ivt.material_id = 输入.material_id ENDOPTION 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 61f53e5..33a3984 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 @@ -91,7 +91,14 @@ public class WmsToJnController { @Log("返回不合格数量") @ApiOperation("返回不合格数量") public ResponseEntity feedBackQualityInfo(@RequestBody Map whereJson) { - return new ResponseEntity<>(WmsToJnService.feedBackQualityInfo((String) whereJson.get(" record_id")), HttpStatus.OK); + return new ResponseEntity<>(WmsToJnService.feedBackQualityInfo((String) whereJson.get("record_id")), HttpStatus.OK); + } + + @PostMapping("/queryCurrentOrder") + @Log("查询当前工单信息") + @ApiOperation("查询当前工单信息") + public ResponseEntity queryCurrentOrder(@RequestBody Map whereJson) { + return new ResponseEntity<>(WmsToJnService.queryCurrentOrder(whereJson), HttpStatus.OK); } } 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 bb794c3..870c25b 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 @@ -85,7 +85,14 @@ public interface WmsToJnService { */ Map feedBackQualityInfo(String record_id); + /** + * 查询当前工单信息 + * + * @param + * @return Map + */ + Map queryCurrentOrder(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 01677a5..6244af7 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 @@ -156,11 +156,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { jsonObject.put("next_point_code", device_code); jsonObject.put("create_mode", "01"); //机械手1 is_full给1 ,机械手3is_full给空,半托,跟满托都可以出 - if(StrUtil.equals(device_code,"FJJXSSLW101")||StrUtil.equals(device_code,"FJJXSSLW102")){ - is_full ="1"; + if (StrUtil.equals(device_code, "FJJXSSLW101") || StrUtil.equals(device_code, "FJJXSSLW102")) { + is_full = "1"; } - if (StrUtil.equals(device_code,"FJJXSSLW301")||StrUtil.equals(device_code,"FJJXSSLW302")){ - is_full ="2"; + if (StrUtil.equals(device_code, "FJJXSSLW301") || StrUtil.equals(device_code, "FJJXSSLW302")) { + is_full = "2"; } jsonObject.put("is_full", is_full); produceInfoByCode = this.getProduceInfoByCode(device_code); @@ -184,12 +184,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { StrUtil.equals(device_code, "FJJXSXLW301") || StrUtil.equals(device_code, "FJJXSXLW302") ) { - + JSONObject joo = pointTable.query("point_code='" + device_code + "'").uniqueResult(0); material_id = produceInfoByCode.getString("material_id"); String workprocedure_id = WorkProcedureEnum.FJGX.getId(); JSONObject jsonObject1 = WQL.getWO("ACSTOMES_001").addParam("flag", "1") .addParam("workprocedure_id", workprocedure_id) .addParam("material_id", material_id) + .addParam("point_id", joo.getString("point_id")) .process().uniqueResult(0); if (ObjectUtil.isNotEmpty(jsonObject1)) { //如果有库存,则出半满托盘 @@ -199,6 +200,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { jsonObject.put("material_id", material_id); jsonObject.put("is_full", "0"); jsonObject.put("workprocedure_id", WorkProcedureEnum.BZGX.getId()); + jsonObject.put("group_device",jsonObject1.getString("group_device_id")); callMaterialTask.createTask((JSONObject) JSON.toJSON(jsonObject)); break; } @@ -265,7 +267,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { throw new BadRequestException("设备点位不能为空!"); } JSONObject produceInfoByCode = new JSONObject(); - String is_full = (String)jsonObject.get("is_full"); + String is_full = (String) jsonObject.get("is_full"); String vehicle_code = (String) jsonObject.get("vehicle_code"); String qty = String.valueOf(jsonObject.get("qty")); //String material_code = (String) jsonObject.get("material_code"); @@ -277,6 +279,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String producetask_id = WQLObject.getWQLObject("pdm_mg_producetask").query("producetask_code='" + producetask_code + "'").uniqueResult(0).getString("producetask_id"); JSONObject groubObj = new JSONObject(); String group_id = IdUtil.getSnowflake(1, 1).nextId() + ""; + groubObj.put("device_id",produceInfoByCode.getString("device_id")); groubObj.put("group_id", group_id); groubObj.put("material_id", material_id); groubObj.put("material_code", materialObj.getString("material_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 e62794d..0957ec5 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 @@ -55,6 +55,7 @@ public class WmsToJnServiceImpl implements WmsToJnService { if (StrUtil.isNotEmpty(status) && status.equals("1")) { log.info("wms同步嘉耐工单成功!"); } else { + log.info("wms同步嘉耐工单失败!"); } WQLObject produceTaskTable = WQLObject.getWQLObject("PDM_MG_produceTask"); @@ -237,13 +238,13 @@ public class WmsToJnServiceImpl implements WmsToJnService { @Override public Map feedBackStatus(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; } JSONArray results = WQL.getWO("WMSTOJN_001").addParam("flag", "7").process().getResultJSONArray(0); String method = "upDEVStatus"; - for (int i = 0; i < results.size(); i++) { JSONObject param = results.getJSONObject(0); JSONObject obj = new JSONObject(); @@ -253,7 +254,19 @@ public class WmsToJnServiceImpl implements WmsToJnService { String resultMsg = HttpRequest.post(URL + method) .body(String.valueOf(obj)).timeout(timeout) .execute().body(); - JSONObject result = JSONObject.parseObject(resultMsg); + JSONObject returnResult = JSONObject.parseObject(resultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("诺力请求嘉耐回传不合格记录成功!"); + } else { + log.info("诺力请求嘉耐回传不合格记录失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } log.info("诺力请求嘉耐回传不合格记录出参{}", resultMsg); } JSONObject returnjo = new JSONObject(); @@ -265,6 +278,7 @@ public class WmsToJnServiceImpl implements WmsToJnService { @Override public Map feedBackCarryRecord(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; @@ -279,12 +293,26 @@ public class WmsToJnServiceImpl implements WmsToJnService { String returnResultMsg = HttpRequest.post(URL + method) .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("诺力请求嘉耐回传搬运记录入参成功!"); + } else { + log.info("诺力请求嘉耐回传搬运记录入参失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } log.info("诺力请求嘉耐回传搬运记录出参{}", returnResultMsg); return null; } @Override public Map feedBackInKiln(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; @@ -299,12 +327,26 @@ public class WmsToJnServiceImpl implements WmsToJnService { String returnResultMsg = HttpRequest.post(URL + method) .body(String.valueOf(jsonObject)).timeout(timeout) .execute().body(); + JSONObject returnResult = JSONObject.parseObject(returnResultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("诺力请求嘉耐回传入窑信息成功!"); + } else { + log.info("诺力请求嘉耐回传入窑信息失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } log.info("诺力请求嘉耐回传入窑信息出参{}", returnResultMsg); return null; } @Override public Map feedBackOutKiln(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; @@ -315,16 +357,30 @@ public class WmsToJnServiceImpl implements WmsToJnService { JSONObject obj = new JSONObject(); obj.put("ticker", "WLXT"); obj.put("stringData", jsonObject); - log.info("诺力请求嘉耐回传入窑信息入参{}", obj.toString()); + log.info("诺力请求嘉耐回传出窑信息入参{}", obj.toString()); String returnResultMsg = HttpRequest.post(URL + method) .body(String.valueOf(jsonObject)).timeout(timeout) .execute().body(); - log.info("诺力请求嘉耐回传入窑信息出参{}", returnResultMsg); + JSONObject returnResult = JSONObject.parseObject(returnResultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("诺力请求嘉耐回传出窑信息成功!"); + } else { + log.info("诺力请求嘉耐回传出窑信息失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } + log.info("诺力请求嘉耐回传出窑信息出参{}", returnResultMsg); return null; } @Override public Map feedBackPackage(Map whereJson) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; @@ -345,7 +401,19 @@ public class WmsToJnServiceImpl implements WmsToJnService { String resultMsg = HttpRequest.post(URL + method) .body(String.valueOf(obj)).timeout(timeout) .execute().body(); - JSONObject result = JSONObject.parseObject(resultMsg); + JSONObject returnResult = JSONObject.parseObject(resultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("诺力请求嘉耐回传组盘记录成功!"); + } else { + log.info("诺力请求嘉耐回传组盘记录失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } log.info("诺力请求嘉耐回传组盘记录出参{}", resultMsg); return null; @@ -353,6 +421,7 @@ public class WmsToJnServiceImpl implements WmsToJnService { @Override public Map feedBackQualityInfo(String record_id) { + WQLObject wo = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); if (StrUtil.equals(value, "0")) { return null; @@ -371,15 +440,53 @@ public class WmsToJnServiceImpl implements WmsToJnService { .body(String.valueOf(obj)).timeout(timeout) .execute().body(); JSONObject result = JSONObject.parseObject(resultMsg); + + JSONObject returnResult = JSONObject.parseObject(resultMsg); + String returnStatus = returnResult.getString("status"); + if (StrUtil.isNotEmpty(returnStatus) && returnStatus.equals("1")) { + log.info("诺力请求嘉耐回传组盘记录成功!"); + } else { + log.info("诺力请求嘉耐回传组盘记录失败!"); + JSONObject jo = new JSONObject(); + jo.put("record_id", IdUtil.getSnowflake(1, 1).nextId()); + jo.put("method", method); + jo.put("content", obj); + jo.put("create_time", DateUtil.now()); + wo.insert(jo); + } log.info("诺力请求嘉耐回传不合格记录出参{}", resultMsg); + return null; + } + + @Override + public JSONObject queryCurrentOrder(Map whereJson) { + String value = WQLObject.getWQLObject("sys_param").query("code='IS_CONNECT_JN'").uniqueResult(0).getString("value"); + if (StrUtil.equals(value, "0")) { + return null; + } + String device_code = (String) whereJson.get("device_code"); + if (StrUtil.isEmpty(device_code)) { + throw new BadRequestException("设备编码不能为空!"); + } + String method = "getPressWorkShop"; + JSONObject obj = new JSONObject(); + obj.put("ticker", "Sbdm"); + obj.put("device_code", device_code); + log.info("诺力请求嘉耐当前生产工单入参{}", obj.toString()); + String resultMsg = HttpRequest.post(URL + method) + .body(String.valueOf(obj)).timeout(timeout) + .execute().body(); + JSONObject result = JSONObject.parseObject(resultMsg); + log.info("诺力请求嘉耐当前生产工单出参{}", resultMsg); String status = result.getString("status"); if (StrUtil.isNotEmpty(status) && status.equals("1")) { - log.info("诺力请求嘉耐回传不合格记录成功!"); + log.info("诺力请求嘉耐当前生产工单成功!"); } else { - log.info("诺力请求嘉耐回传不合格记录失败!"); + log.info("诺力请求嘉耐当前生产工单失败!"); } + JSONObject joo = result.getJSONObject("returnData").getJSONObject("Table"); - return null; + return joo; } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACSTOMES_001.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACSTOMES_001.wql index 0a36e55..aac94f9 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACSTOMES_001.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/wql/ACSTOMES_001.wql @@ -18,6 +18,7 @@ 输入.material_id TYPEAS s_string 输入.area_type TYPEAS s_string 输入.point_code TYPEAS s_string + 输入.device_id TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -44,18 +45,25 @@ IF 输入.flag = "1" QUERY SELECT - * + ivt.*, + point.*, + vehiclegroup.device_id as group_device_id FROM st_ivt_structivt ivt LEFT JOIN sch_base_point point ON ivt.struct_id = point.point_id + LEFT JOIN st_buss_vehiclegroup vehiclegroup ON vehiclegroup.vehicle_code = ivt.vehicle_code WHERE ivt.canuse_qty > 0 + AND ivt.vehicle_code <> '' AND ivt.is_full = '0' AND point.is_used = 1 AND point.point_status = '02' - OPTION 输入.workprocedure_id <> "" - ivt.workprocedure_id = 输入.workprocedure_id + OPTION 输入.device_id <> "" + vehiclegroup.device_id = 输入.device_id ENDOPTION + OPTION 输入.workprocedure_id <> "" + ivt.workprocedure_id = 输入.workprocedure_id + ENDOPTION OPTION 输入.material_id <> "" ivt.material_id = 输入.material_id ENDOPTION diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/rest/ProduceTaskController.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/rest/ProduceTaskController.java new file mode 100644 index 0000000..75ca36a --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/rest/ProduceTaskController.java @@ -0,0 +1,53 @@ + +package org.nl.wms.pda.produceTask.rest; + + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.annotation.Log; +import org.nl.wms.pda.produceTask.service.ProduceTaskService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author ldjun + * @date 2021-07-26 + **/ +@RestController +@RequiredArgsConstructor +@Api(tags = "手持工单") +@RequestMapping("/api/pda/produceTask") +@Slf4j +public class ProduceTaskController { + + private final ProduceTaskService produceTaskService; + + @PostMapping("/queryInfo") + @Log("查询工单信息") + @ApiOperation("查询工单信息") + public ResponseEntity queryInfo(@RequestBody Map param) { + return new ResponseEntity<>(produceTaskService.queryInfo(param), HttpStatus.OK); + } + @PostMapping("/confirm") + @Log("下发确定") + @ApiOperation("下发确定") + public ResponseEntity Confirm(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceTaskService.Confirm(param), HttpStatus.OK); + } + @PostMapping("querydevice") + @Log("查询设备下拉框") + @ApiOperation("查询设备下拉框") + public ResponseEntity querydevice(@RequestBody JSONObject param) { + return new ResponseEntity<>(produceTaskService.querydevice(param), HttpStatus.OK); + } + +} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/ProduceTaskService.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/ProduceTaskService.java new file mode 100644 index 0000000..a003234 --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/ProduceTaskService.java @@ -0,0 +1,23 @@ +package org.nl.wms.pda.produceTask.service; + +import com.alibaba.fastjson.JSONObject; + +import java.util.Map; + +public interface ProduceTaskService { + Map queryInfo(Map jsonObject); + /** + * 确认 + * @param param 条件 + * @return Map + * + */ + Map Confirm( JSONObject param); + /** + * 查询设备下拉框确认 + * @param param 条件 + * @return Map + * + */ + Map querydevice( JSONObject param); +} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/impl/ProduceTaskServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/impl/ProduceTaskServiceImpl.java new file mode 100644 index 0000000..04cc5b6 --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/produceTask/service/impl/ProduceTaskServiceImpl.java @@ -0,0 +1,78 @@ +package org.nl.wms.pda.produceTask.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.exception.BadRequestException; +import org.nl.modules.system.util.CodeUtil; +import org.nl.utils.SecurityUtils; +import org.nl.wms.WorkProcedureEnum; +import org.nl.wms.ext.acs.service.impl.WmsToJnServiceImpl; +import org.nl.wms.pda.produceTask.service.ProduceTaskService; +import org.nl.wms.pdm.service.impl.ProducetaskServiceImpl; +import org.nl.wms.sch.manage.AreaEnum; +import org.nl.wms.sch.manage.BillTypeEnum; +import org.nl.wms.st.ivt.IvtChangeTypeEnum; +import org.nl.wms.st.ivt.StoreIvtServiceImpl; +import org.nl.wql.WQL; +import org.nl.wql.core.bean.WQLObject; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +@RequiredArgsConstructor +@Slf4j +public class ProduceTaskServiceImpl implements ProduceTaskService { + private final WmsToJnServiceImpl wmsToJnServiceImpl; + private final ProducetaskServiceImpl producetaskService; + + @Override + public Map queryInfo(Map jsonObject) { + JSONArray results = WQL.getWO("QPADSERVICE").addParam("flag", "18").process().getResultJSONArray(0); + JSONObject returnjo = new JSONObject(); + returnjo.put("code", "1"); + returnjo.put("desc", "查询成功!"); + returnjo.put("result", results); + return returnjo; + } + + @Override + public Map Confirm(JSONObject param) { + String producetask_id = param.getString("producetask_id"); + String device_id = param.getString("device_id"); + String device_code = param.getString("device_code"); + String ext_shoporder_no = param.getString("ext_shoporder_no"); + //查询当前设备有没有正在生产的,或者已经下发的工单 + JSONObject deviceObj = WQL.getWO("QPADSERVICE").addParam("flag", "19").addParam("device_code", device_code).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(deviceObj)) { + throw new BadRequestException("存在设备'" + deviceObj.getString("device_code") + "'未完成!"); + } + //查询当前设备正在生产的设备工单 + JSONObject stringObjectMap = wmsToJnServiceImpl.queryCurrentOrder(param); + if (!StrUtil.equals(stringObjectMap.getString("SHOPORDERNO"), ext_shoporder_no)) { + throw new BadRequestException("设备'" + device_code + "'正在生产的工单mes号应为'" + ext_shoporder_no + "'"); + } + producetaskService.issued(param); + JSONObject returnjo = new JSONObject(); + returnjo.put("code", "1"); + returnjo.put("desc", "操作成功!"); + return returnjo; + } + + @Override + public Map querydevice(JSONObject param) { + JSONArray results = WQLObject.getWQLObject("pdm_base_device").query("is_work_device='1'").getResultJSONArray(0); + JSONObject returnjo = new JSONObject(); + returnjo.put("code", "1"); + returnjo.put("desc", "查询成功!"); + returnjo.put("result", results); + return returnjo; + } + +} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendMaterial/wql/QPADSERVICE.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendMaterial/wql/QPADSERVICE.wql index c28cbdc..c208427 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendMaterial/wql/QPADSERVICE.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/pda/sendMaterial/wql/QPADSERVICE.wql @@ -436,15 +436,38 @@ IF 输入.flag = "17" IF 输入.flag = "18" QUERY SELECT - vehiclegroup.is_full, - vehiclegroup.vehicle_code + task.producetask_id, + task.producetask_code, + task.ext_shoporder_no, + material.material_id, + material.material_code, + material.material_name , + device.device_code, + device.device_name, + task.producetask_status, + sys.label as producetask_status_name, + task.plan_qty FROM - st_buss_vehiclegroup vehiclegroup - WHERE - 1 =1 - OPTION 输入.vehicle_code <> "" - st_buss_vehiclegroup.vehicle_code = 输入.vehicle_code - ENDOPTION + pdm_mg_producetask task + LEFT JOIN md_me_material material ON material.material_id = task.material_id + LEFT JOIN pdm_base_device device ON device.device_id = task.device_id + left join sys_dict_detail sys on sys.value = task.producetask_status and sys.dict_id='36' + where task.producetask_status in ('01') ENDSELECT ENDQUERY ENDIF + +IF 输入.flag = "19" + QUERY + SELECT + * + FROM + pdm_mg_producetask task task + WHERE + task.st_buss_devicestatus IN ( '02', '04' ) + OPTION 输入.device_id <> "" + task.device_id = 输入.device_id + ENDOPTION + ENDSELECT + ENDQUERY + ENDIF \ No newline at end of file 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 98be916..2d593f6 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 @@ -208,6 +208,7 @@ public class CallMaterialTask extends AbstractAcsTask { String pcsn = form.getString("pcsn"); String is_full = form.getString("is_full"); String workprocedure_id = form.getString("workprocedure_id"); + String group_device= form.getString("group_device"); WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task"); String iostorinv_id = form.getString("iostorinv_id"); if (StrUtil.isEmpty(next_point_code)) { @@ -256,7 +257,7 @@ public class CallMaterialTask extends AbstractAcsTask { } PointDto nextPoint = pointService.findByCode(next_point_code); - //如果没给终点,根据起点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位 + //如果没给起点,根据终点去找工序,找一个合适的仓位 并且生成入库单,并且锁定点位 if (StrUtil.isEmpty(start_point_code)) { if (StrUtil.isEmpty(workprocedure_id)) { JSONObject workInfo = WQL.getWO("QSTRUCT_RULE").addParam("flag", "1").addParam("code", next_point_code) @@ -313,6 +314,7 @@ public class CallMaterialTask extends AbstractAcsTask { param.put("area_type", startArea_type); param.put("workprocedure_id", ivt_workprocedure_id); param.put("is_full", is_full); + param.put("group_device",group_device); JSONObject outStructObj = StructFindUtil.getOutStruct(param); if (ObjectUtil.isEmpty(outStructObj)) { throw new BadRequestException("未找到合适的出库仓位!"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoFeedBackInfo.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoFeedBackInfo.java new file mode 100644 index 0000000..6124a81 --- /dev/null +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/task/AutoFeedBackInfo.java @@ -0,0 +1,60 @@ +package org.nl.wms.sch.task; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext.acs.service.impl.WmsToJnServiceImpl; +import org.nl.wql.core.bean.WQLObject; +import org.springframework.stereotype.Component; + +import java.lang.reflect.Method; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + + +/** + * @author geng by + * 自动回传失败的日志 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AutoFeedBackInfo { + + public void run() throws Exception { + String URL = "http://61.177.143.218:8888/ZQ_ZLGL_JsonFacade/ZQJT/MES/MES_ProductionFacade.asmx"; + int timeout = 3000; + log.info("开始自动开始回传嘉耐数据"); + WQLObject Table = WQLObject.getWQLObject("pdm_bi_feedbackrecord"); + JSONArray resultJSONArray = Table.query("status='0'").getResultJSONArray(0); + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject jo = resultJSONArray.getJSONObject(i); + String mehtod = jo.getString("method"); + JSONObject content = JSONObject.parseObject(jo.getString("content")); + try { + log.info("开始自动开始回传嘉耐数据入参{}", content.toString()); + String resultMsg = HttpRequest.post(URL + mehtod) + .body(String.valueOf(content)).timeout(timeout) + .execute().body(); + JSONObject result = JSONObject.parseObject(resultMsg); + String status = result.getString("status"); + log.info("自动开始回传嘉耐数据出参{}", content.toString()); + if (StrUtil.isNotEmpty(status) && status.equals("1")) { + log.info("回传成功!"); + jo.put("status", "1"); + jo.put("update_time", DateUtil.now()); + Table.update(jo); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + log.info("完成自动开始回传嘉耐数据"); + } + + +} 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 34e15a9..e1ae4e9 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/AutoWmsToJn.xml b/wms/hd/nladmin-system/src/main/resources/AutoWmsToJn.xml new file mode 100644 index 0000000..b2882d8 --- /dev/null +++ b/wms/hd/nladmin-system/src/main/resources/AutoWmsToJn.xml @@ -0,0 +1,28 @@ + + + + + + + + + ${LOG_HOME}/Autowmstojn/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 20GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + + + + + + + + + diff --git a/wms/hd/nladmin-system/src/main/resources/logback-spring.xml b/wms/hd/nladmin-system/src/main/resources/logback-spring.xml index 46a3bf8..6a57c26 100644 --- a/wms/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/wms/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -19,6 +19,7 @@ https://juejin.cn/post/6844903775631572999 +