From 3b561d5372036eb81d9faed49c9bee612b59e067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=B1=9F=E7=8E=AE?= Date: Fri, 13 Oct 2023 14:27:01 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=89=8B=E6=8C=81=E7=82=B9=E4=BD=8D?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/impl/XianGongAgvServiceImpl.java | 2 +- .../nl/hand/amb/rest/HFHandController.java | 56 +++-- .../nl/hand/amb/service/HFHandService.java | 6 + .../amb/service/impl/HFHandServiceImpl.java | 236 +++++++++--------- .../java/org/nl/hand/amb/wql/QJN_QUERY001.wql | 10 +- .../java/org/nl/modules/system/wql/sys.xls | Bin 223744 -> 227328 bytes .../nl/modules/wql/core/bean/ResultBean.java | 2 +- .../src/views/acs/instruction/index.vue | 2 +- 8 files changed, 174 insertions(+), 140 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index f393f11..e4b84ba 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -461,7 +461,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } public JSONArray createBlocksData(Instruction inst) { - String ip = paramService.findByCode("local_ip").getValue(); + String ip = paramService.findByCode("local_host").getValue(); String addr = ip + port; JSONArray blocks = new JSONArray(); diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/rest/HFHandController.java b/acs/nladmin-system/src/main/java/org/nl/hand/amb/rest/HFHandController.java index a9fde4c..d230a28 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/rest/HFHandController.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/rest/HFHandController.java @@ -3,7 +3,7 @@ package org.nl.hand.amb.rest; import cn.dev33.satoken.annotation.SaIgnore; -import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; @@ -29,15 +29,15 @@ import java.util.Map; @RequestMapping("/api/hand") @Slf4j public class HFHandController { - private final HFHandService HandService; + private final HFHandService handService; - @PostMapping("/area") + @PostMapping("/region") @Log("查询区域") @ApiOperation("查询区域") @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity query() { - return new ResponseEntity<>(HandService.queryArea(null), HttpStatus.OK); + return new ResponseEntity<>(handService.queryArea(null), HttpStatus.OK); } @PostMapping("/point") @@ -47,8 +47,8 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") //@RequestBody JSONObject json public ResponseEntity queryPoint(@RequestBody Map whereJson) { - String region = (String) whereJson.get("region"); - return new ResponseEntity<>(HandService.queryPointByArea(region), HttpStatus.OK); + String region = whereJson.get("region_code"); + return new ResponseEntity<>(handService.queryPointByArea(region), HttpStatus.OK); } @PostMapping("/point/storage") @@ -58,7 +58,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") //@RequestBody JSONObject json public ResponseEntity queryDeviceAugmentabilityByCode(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.queryDeviceAugmentabilityByCode(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.queryDeviceAugmentabilityByCode(whereJson), HttpStatus.OK); } @PostMapping("/task_type") @@ -68,7 +68,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") //@RequestBody JSONObject json public ResponseEntity queryTaskType() { - return new ResponseEntity<>(HandService.queryTaskType(), HttpStatus.OK); + return new ResponseEntity<>(handService.queryTaskType(), HttpStatus.OK); } @PostMapping("/tasks") @@ -78,7 +78,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") public ResponseEntity queryTask(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.queryTask(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.queryTask(whereJson), HttpStatus.OK); } @PostMapping("/insts") @@ -88,7 +88,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") public ResponseEntity queryInst(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.queryInst(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.queryInst(whereJson), HttpStatus.OK); } @PostMapping("/routeplan_type") @@ -97,7 +97,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity queryRouteplanType() { - return new ResponseEntity<>(HandService.queryRouteplanType(), HttpStatus.OK); + return new ResponseEntity<>(handService.queryRouteplanType(), HttpStatus.OK); } @PostMapping("/task") @@ -106,7 +106,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity createTask(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.createTask(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.createTask(whereJson), HttpStatus.OK); } @PostMapping("/inst") @@ -115,7 +115,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity Instoperation(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.Instoperation(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.Instoperation(whereJson), HttpStatus.OK); } @PostMapping("/taskoperation") @@ -124,7 +124,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity Taskoperation(@RequestBody Map whereJson) throws Exception { - return new ResponseEntity<>(HandService.Taskoperation(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.Taskoperation(whereJson), HttpStatus.OK); } @PostMapping("/deviceStatus") @@ -134,7 +134,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") public ResponseEntity updateDeviceStatus(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.updateDeviceStatus(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.updateDeviceStatus(whereJson), HttpStatus.OK); } @PostMapping("/handlogin") @@ -144,7 +144,7 @@ public class HFHandController { //@PreAuthorize("@el.check('sect:list')") public ResponseEntity handlogin(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.handleLogin(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.handleLogin(whereJson), HttpStatus.OK); } @PostMapping("/matrial") @@ -153,7 +153,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity queryMaterial() { - return new ResponseEntity<>(HandService.queryMaterial(), HttpStatus.OK); + return new ResponseEntity<>(handService.queryMaterial(), HttpStatus.OK); } @PostMapping("/task2") @@ -162,7 +162,7 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity createTask2(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.createTask2(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.createTask2(whereJson), HttpStatus.OK); } @PostMapping("/createChargingTask") @@ -171,7 +171,25 @@ public class HFHandController { @SaIgnore //@PreAuthorize("@el.check('sect:list')") public ResponseEntity createChargingTask(@RequestBody Map whereJson) { - return new ResponseEntity<>(HandService.createChargingTask(whereJson), HttpStatus.OK); + return new ResponseEntity<>(handService.createChargingTask(whereJson), HttpStatus.OK); + } + + @PostMapping("/material") + @Log("查询物料") + @ApiOperation("查询物料") + @SaIgnore + //@PreAuthorize("@el.check('sect:list')") + public ResponseEntity material() { + return new ResponseEntity<>(handService.material(), HttpStatus.OK); + } + + @PostMapping("/pointOpt") + @Log("点位操作") + @ApiOperation("点位操作") + @SaIgnore + //@PreAuthorize("@el.check('sect:list')") + public ResponseEntity pointOpt(@RequestBody JSONObject param) { + return new ResponseEntity<>(handService.pointOpt(param), HttpStatus.OK); } } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/HFHandService.java b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/HFHandService.java index 7ad1bc1..a8630de 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/HFHandService.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/HFHandService.java @@ -2,6 +2,8 @@ package org.nl.hand.amb.service; +import com.alibaba.fastjson.JSONObject; + import java.util.Map; /** @@ -119,4 +121,8 @@ public interface HFHandService { * @return */ Map createChargingTask(Map whereJson); + + JSONObject material(); + + JSONObject pointOpt(JSONObject param); } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java index d787c43..596bd0f 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/service/impl/HFHandServiceImpl.java @@ -35,6 +35,7 @@ import org.nl.hand.amb.service.HFHandService; import org.nl.modules.common.config.RsaProperties; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RsaUtils; +import org.nl.modules.system.service.DictService; import org.nl.modules.system.service.UserService; import org.nl.modules.system.service.dto.UserDto; import org.nl.modules.system.util.CodeUtil; @@ -59,6 +60,7 @@ public class HFHandServiceImpl implements HFHandService { private final UserService userService; private final DeviceService deviceService; private final DeviceAppService deviceAppService; + private final DictService dictService; InstructionService instructionService = null; @@ -73,123 +75,41 @@ public class HFHandServiceImpl implements HFHandService { } @Override - public Map queryPointByArea(String dict_id) { - JSONArray resultArr = new JSONArray(); - JSONObject resultJson = new JSONObject(); - JSONObject jo = new JSONObject(); + public Map queryPointByArea(String region) { - if (StrUtil.isEmpty(dict_id)) { - throw new BadRequestException("区域id不能为空!"); - } - String value = ""; - String move = ""; - String status = ""; - String input_material = "0"; - String allow_update = ""; - String material = ""; - String batch = ""; - - //再字典中查询出value - //JSONObject valuejo = WQLObject.getWQLObject("sys_dict_detail").query("detail_id='" + dict_id + "'").uniqueResult(0); - JSONObject valuejo = WQL.getWO("QJN_QUERY001").addParam("flag", "3").addParam("detail_id", dict_id).process().uniqueResult(0); - if (!ObjectUtil.isEmpty(valuejo)) { - value = valuejo.getString("value"); - } - //根据value值去查所有的设备 - JSONArray acs_deviceja = WQLObject.getWQLObject("ACS_DEVICE").query("region='" + value + "' and device_type='conveyor' and is_config='true' ", "seq_num,device_name").getResultJSONArray(0); - for (int i = 0; i < acs_deviceja.size(); i++) { - JSONObject devicejo = acs_deviceja.getJSONObject(i); - String device_code = devicejo.getString("device_code"); - DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class); - Device device = appService.findDeviceByCode(device_code); - //无光电普通站点 - StandardOrdinarySiteDeviceDriver standardOrdinarySiteDeviceDriver; - //检测站点 - StandardInspectSiteDeviceDriver standardInspectSiteDeviceDriver; - - if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { - standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver) device.getDeviceDriver(); - if (StrUtil.equals(device.getIslock(), "true")) { - status = "3"; - move = "有任务"; - } else { - if (standardOrdinarySiteDeviceDriver.getHasGoods() == 0) { - status = "0"; - move = "无货"; - } else if (standardOrdinarySiteDeviceDriver.getHasGoods() == 1) { - status = "1"; - move = "有托盘"; - } else if (standardOrdinarySiteDeviceDriver.getHasGoods() == 2) { - status = "2"; - move = "有托盘有货"; - } - } + if (StrUtil.isEmpty(region)) { + throw new BadRequestException("区域不能为空!"); + } - material = device.getMaterial_type(); - //material = standardOrdinarySiteDeviceDriver.getMaterial(); - if (StrUtil.isNullOrUndefined(material)) { - material = ""; - } - batch = device.getBatch(); - //batch = standardOrdinarySiteDeviceDriver.getBatch(); - if (StrUtil.isNullOrUndefined(batch)) { - batch = ""; - } - String input_materialflag = (String) device.getExtraValue().get("input_material"); - if (!StrUtil.isEmpty(input_materialflag) && input_materialflag.equals("false")) { - input_material = "0"; - } - if (!StrUtil.isEmpty(input_materialflag) && input_materialflag.equals("true")) { - input_material = "1"; - } - jo.put("material_type", material); - jo.put("batch", batch); - jo.put("islock", device.getIslock()); - jo.put("status_name", move); - jo.put("status", status); - jo.put("device_id", devicejo.getString("device_id")); - jo.put("device_code", devicejo.getString("device_code")); - jo.put("device_name", devicejo.getString("device_name")); - jo.put("allow_update", "1"); - jo.put("input_material", input_material); - // 特殊驱动 - } - //检测站点 - else if (device.getDeviceDriver() instanceof StandardInspectSiteDeviceDriver) { - standardInspectSiteDeviceDriver = (StandardInspectSiteDeviceDriver) device.getDeviceDriver(); - - if (StrUtil.equals(device.getIslock(), "true")) { - status = "3"; - move = "有任务"; - } else { - if (standardInspectSiteDeviceDriver.getHasGoods() == 0) { - status = "0"; - move = "无货"; - } else if (standardInspectSiteDeviceDriver.getHasGoods() == 1) { - status = "1"; - move = "有托盘"; - } else if (standardInspectSiteDeviceDriver.getHasGoods() == 2) { - status = "2"; - move = "有托盘有货"; - } + JSONArray devices = WQLObject.getWQLObject("acs_device").query("region = '" + region + "' AND device_type = 'station' AND is_config = 'true' ", "seq_num").getResultJSONArray(0); + JSONArray resultArr = new JSONArray(); + for (int i = 0; i < devices.size(); i++) { + JSONObject device = devices.getJSONObject(i); + String deviceCode = device.getString("device_code"); + Device deviceCache = this.deviceAppService.findDeviceByCode(deviceCode); + + JSONObject row = new JSONObject(); + row.put("device_code", deviceCode); + row.put("device_name", device.getString("device_name")); + String status = "0"; + if ("true".equals(deviceCache.getExtraValue().get("station_manager"))) { + if ("1".equals(deviceCache.getIslock())) { + status = "2"; + } else if (1 == deviceCache.getHas_goods()) { + status = "1"; } - jo.put("material_type", standardInspectSiteDeviceDriver.getMaterial()); - jo.put("status_name", move); - jo.put("status", status); - jo.put("device_id", devicejo.getString("device_id")); - jo.put("device_code", devicejo.getString("device_code")); - jo.put("device_name", devicejo.getString("device_name")); - jo.put("allow_update", "1"); - jo.put("batch", standardInspectSiteDeviceDriver.getBatch()); - jo.put("input_material", input_material); - + row.put("material_type", deviceCache.getMaterial_type()); + row.put("qty", deviceCache.getBatch()); } - resultArr.add(jo); + row.put("status", status); + resultArr.add(row); } - resultJson.put("code", "1"); - resultJson.put("desc", "查询成功"); - resultJson.put("result", resultArr); - return resultJson; + + JSONObject result = new JSONObject(); + result.put("code", "1"); + result.put("desc", "查询成功"); + result.put("result", resultArr); + return result; } @Override @@ -778,4 +698,96 @@ public class HFHandServiceImpl implements HFHandService { jo.put("desc", "操作成功!"); return jo; } + + @Override + public JSONObject material() { + JSONArray materialType = WQLObject.getWQLObject("sys_dict_detail").query("`name` = 'material_type'").getResultJSONArray(0); + + JSONObject result = new JSONObject(); + result.put("code", "1"); + result.put("desc", "查询成功"); + result.put("result", materialType); + return result; + } + + @Override + public JSONObject pointOpt(JSONObject param) { + JSONObject result = new JSONObject(); + + String type = param.getString("type"); + if (StrUtil.isBlank(type)) { + result.put("code", "0"); + result.put("desc", "未知操作!"); + return result; + } + String deviceCode = param.getString("device_code"); + if (StrUtil.isBlank(deviceCode)) { + result.put("code", "0"); + result.put("desc", "未知点位!"); + return result; + } + Device device = this.deviceAppService.findDeviceByCode(deviceCode); + if ("1".equals(device.getIslock())) { + result.put("code", "0"); + result.put("desc", "当前点位有正在执行的任务,禁止操作!"); + return result; + } + + if ("1".equals(type)) { + // 确认 + String materialType = param.getString("material_type"); + if (StrUtil.isBlank(materialType) || "0".equals(materialType)) { + result.put("code", "0"); + result.put("desc", "物料不能为空!"); + return result; + } + int qty = param.getIntValue("qty"); + if (qty <= 0) { + result.put("code", "0"); + result.put("desc", "数量必须大于零!"); + return result; + } + + if ("true".equals(device.getExtraValue().get("station_manager"))) { + device.setHas_goods(1); + device.setMaterial_type(materialType); + device.setBatch(String.valueOf(qty)); + + JSONObject rpUpdate = new JSONObject(); + rpUpdate.put("hasgoods", "1"); + rpUpdate.put("material_type", materialType); + rpUpdate.put("batch", qty); + rpUpdate.put("update_by", "sc"); + rpUpdate.put("update_time", DateUtil.now()); + WQLObject.getWQLObject("acs_device_runpoint").update(rpUpdate, "device_code = '" + deviceCode + "'"); + } else { + result.put("code", "0"); + result.put("desc", "此点位在设备配置中未开启点位管理,无法保存物料等信息!"); + return result; + } + } else if ("2".equals(type)) { + // 清空 + if ("true".equals(device.getExtraValue().get("station_manager"))) { + device.setHas_goods(0); + device.setMaterial_type("0"); + device.setBatch("0"); + + JSONObject rpUpdate = new JSONObject(); + rpUpdate.put("hasgoods", "0"); + rpUpdate.put("material_type", "0"); + rpUpdate.put("batch", "0"); + rpUpdate.put("update_by", "sc"); + rpUpdate.put("update_time", DateUtil.now()); + WQLObject.getWQLObject("acs_device_runpoint").update(rpUpdate, "device_code = '" + deviceCode + "'"); + } + } else { + result.put("code", "0"); + result.put("desc", "未知操作!"); + return result; + } + + result.put("code", "1"); + result.put("desc", "操作成功!"); + return result; + } } diff --git a/acs/nladmin-system/src/main/java/org/nl/hand/amb/wql/QJN_QUERY001.wql b/acs/nladmin-system/src/main/java/org/nl/hand/amb/wql/QJN_QUERY001.wql index 2f2e235..475c96d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/hand/amb/wql/QJN_QUERY001.wql +++ b/acs/nladmin-system/src/main/java/org/nl/hand/amb/wql/QJN_QUERY001.wql @@ -46,14 +46,12 @@ IF 输入.flag = "1" QUERY SELECT - dtl.detail_id as region_id, - dtl.label as region_name, - dtl.value as region_code + label, + `value` FROM - sys_dict sys - LEFT JOIN sys_dict_detail dtl ON dtl.dict_id = sys.dict_id + sys_dict_detail WHERE - sys.NAME = "region_type" + `name` = 'region' ENDSELECT ENDQUERY ENDIF diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls b/acs/nladmin-system/src/main/java/org/nl/modules/system/wql/sys.xls index a73514e742fd336ef67fc966b2897443e62d08c3..7a0bb0921e3b7c9db8603e1967fccfae0aa7df10 100644 GIT binary patch delta 41890 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 diff --git a/acs/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java b/acs/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java index 62bb50f..7a09c65 100644 --- a/acs/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java +++ b/acs/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java @@ -230,7 +230,7 @@ public class ResultBean implements Serializable, Cloneable { rows = new ArrayList(); } JSONArray jrows = this.rows2jsonarray(rows); - JSONObject jrow = null; + JSONObject jrow = new JSONObject(); if (jrows.size() > 0) { jrow = jrows.getJSONObject(0); } diff --git a/acs/nladmin-ui/src/views/acs/instruction/index.vue b/acs/nladmin-ui/src/views/acs/instruction/index.vue index 2c06f93..ec573e8 100644 --- a/acs/nladmin-ui/src/views/acs/instruction/index.vue +++ b/acs/nladmin-ui/src/views/acs/instruction/index.vue @@ -172,7 +172,7 @@ - + 完成 取消 下发