From 6a4a459876ea6ec258e9da86286aacd1f0d2b6d4 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Thu, 15 Jun 2023 14:17:37 +0800 Subject: [PATCH] =?UTF-8?q?rev:=20=E4=BF=AE=E6=94=B9=E4=B8=9A=E5=8A=A1=20a?= =?UTF-8?q?dd:=20=E6=B7=BB=E5=8A=A0=E5=AF=B9=E6=8E=A5=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/autotask/CleanLockPoint.java | 32 ++++++++++ .../nl/wms/autotask/wql/ExecuteTaskSql.wql | 59 +++++++++++++++++ .../wms/ext/mes/rest/MesToWmsController.java | 64 +++++++++++++++++++ .../wms/ext/mes/rest/WmsToMesController.java | 56 ++++++++++++++++ .../wms/ext/mes/service/MesToWmsService.java | 22 +++++++ .../wms/ext/mes/service/WmsToMesService.java | 24 +++++++ .../mes/service/impl/MesToWmsServiceImpl.java | 42 ++++++++++++ .../mes/service/impl/WmsToMesServiceImpl.java | 39 +++++++++++ .../org/nl/wms/sch/rest/PointController.java | 8 +++ .../org/nl/wms/sch/service/PointService.java | 6 ++ .../sch/service/impl/PointServiceImpl.java | 32 ++++++++++ .../autoTask/YqxhcqCallMaterialTask.java | 6 +- .../callEmpty/GjxCallEmpVehicleTask.java | 12 +--- .../wql/QSCH_yqxCallMAterial_01.wql | 3 + .../tasks/sendEmpty/HtSendEmpVehicleTask.java | 9 ++- .../sendMaterial/HtSendMaterialTask.java | 16 +++-- .../sendMaterial/YqxSendMaterialTask.java | 2 +- .../org/nl/wms/sch/wql/QSCH_BASE_POINT.wql | 4 ++ lms/nladmin-ui/src/api/wms/sch/point.js | 10 ++- .../src/views/wms/sch/point/index.vue | 34 +++++++++- .../src/views/wms/sch/task/index.vue | 10 +-- 21 files changed, 464 insertions(+), 26 deletions(-) create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLockPoint.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/autotask/wql/ExecuteTaskSql.wql create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToWmsController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/WmsToMesController.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToWmsService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java create mode 100644 lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLockPoint.java b/lms/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLockPoint.java new file mode 100644 index 0000000..e7c16b8 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLockPoint.java @@ -0,0 +1,32 @@ +package org.nl.wms.autotask; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.config.MapOf; +import org.nl.modules.wql.WQL; +import org.nl.modules.wql.core.bean.WQLObject; +import org.nl.modules.wql.core.engine.object.WO; +import org.springframework.stereotype.Component; + +/** + * @Author: lyd + * @Description: 清理非法锁定点 + * @Date: 2023/6/12 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class CleanLockPoint { + public void run(){ + WQLObject schBasePoint = WQLObject.getWQLObject("sch_base_point"); + JSONArray resultJSONArray = WQL.getWO("ExecuteTaskSql").addParamMap(MapOf.of("flag", "1")).process().getResultJSONArray(0); + for (int i = 0; i < resultJSONArray.size(); i++) { + JSONObject jsonObject = resultJSONArray.getJSONObject(i); + jsonObject.put("lock_type", "1"); + schBasePoint.update(jsonObject); + } + log.info("自动解锁点位[" + resultJSONArray.size() + "]个,执行成功...!"); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/autotask/wql/ExecuteTaskSql.wql b/lms/nladmin-system/src/main/java/org/nl/wms/autotask/wql/ExecuteTaskSql.wql new file mode 100644 index 0000000..75bbae2 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/autotask/wql/ExecuteTaskSql.wql @@ -0,0 +1,59 @@ +[交易说明] + 交易名: 基础点位分页查询 + 所属模块: + 功能简述: + 版权所有: + 表引用: + 版本经历: + +[数据库] + --指定数据库,为空采用默认值,默认为db.properties中列出的第一个库 + +[IO定义] + ################################################# + ## 表字段对应输入参数 + ################################################# + 输入.flag TYPEAS s_string + +[临时表] + --这边列出来的临时表就会在运行期动态创建 + +[临时变量] + --所有中间过程变量均可在此处定义 + +[业务过程] + + ########################################## + # 1、输入输出检查 # + ########################################## + + + ########################################## + # 2、主过程前处理 # + ########################################## + + + ########################################## + # 3、业务主过程 # + ########################################## + + IF 输入.flag = "1" + PAGEQUERY + SELECT p.* + FROM `sch_base_point` p + WHERE p.lock_type = '2' + AND NOT EXISTS ( + SELECT 1 + FROM sch_base_task t + WHERE t.task_status <> '7' + AND ( + t.point_code1 = p.point_code + OR t.point_code2 = p.point_code + ) + AND t.point_code1 <> '' + AND t.point_code1 IS NOT NULL + ) + AND p.region_code <> 'SSX01' + ENDSELECT + ENDPAGEQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToWmsController.java new file mode 100644 index 0000000..e0f7a36 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/MesToWmsController.java @@ -0,0 +1,64 @@ +package org.nl.wms.ext.mes.rest; + +import cn.dev33.satoken.annotation.SaIgnore; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.ext.mes.service.MesToWmsService; +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; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/6/7 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "mes请求wms") +@RequestMapping("/api/to/wms") +@Slf4j +@SaIgnore +public class MesToWmsController { + private final MesToWmsService mesToWmsService; + + @PostMapping("/workWorder") + @Log("mes下发工单") + @ApiOperation("mes下发工单") + @SaIgnore + public ResponseEntity issueWorkOrderForMes(@RequestBody JSONObject param) { + mesToWmsService.issueWorkOrderForMes(param); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/workWorder/finish") + @Log("mes获取工单反馈") + @ApiOperation("mes获取工单反馈") + @SaIgnore + public ResponseEntity feedbackWorkOrderToMes(@RequestBody JSONObject param) { + return new ResponseEntity<>(mesToWmsService.feedbackWorkOrderToMes(param), HttpStatus.OK); + } + + @PostMapping("/gjxDown") + @Log("供给线下料") + @ApiOperation("供给线下料") + @SaIgnore + public ResponseEntity gjxAutomaticForMes(@RequestBody JSONObject param) { + return new ResponseEntity<>(mesToWmsService.gjxAutomaticForMes(param), HttpStatus.OK); + } + + @PostMapping("/hkxDown") + @Log("豪凯自动线下料") + @ApiOperation("豪凯自动线下料") + @SaIgnore + public ResponseEntity hawKeAutomaticForMes(@RequestBody JSONObject param) { + return new ResponseEntity<>(mesToWmsService.hawKeAutomaticForMes(param), HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/WmsToMesController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/WmsToMesController.java new file mode 100644 index 0000000..ca4dc21 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/rest/WmsToMesController.java @@ -0,0 +1,56 @@ +package org.nl.wms.ext.mes.rest; + +import cn.dev33.satoken.annotation.SaIgnore; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.ext.mes.service.WmsToMesService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Author: lyd + * @Description: wms对接mes + * @Date: 2023/6/7 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "wms请求mes") +@RequestMapping("/api/to/wms") +@Slf4j +@SaIgnore +public class WmsToMesController { + private final WmsToMesService wmsToMesService; + + @PostMapping("/material") + @Log("从MES系统获取物料信息") + @ApiOperation("从MES系统获取物料信息") + @SaIgnore + public ResponseEntity getMaterialInfoForMes() { + wmsToMesService.getMaterialInfoForMes(); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/unit") + @Log("从MES系统获取物料计量单位") + @ApiOperation("从MES系统获取物料计量单位") + @SaIgnore + public ResponseEntity getUnitInfoForMes() { + wmsToMesService.getUnitInfoForMes(); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/device") + @Log("从MES系统获取设备基础信息") + @ApiOperation("从MES系统获取设备基础信息") + @SaIgnore + public ResponseEntity getDeviceInfoForMes() { + wmsToMesService.getDeviceInfoForMes(); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToWmsService.java new file mode 100644 index 0000000..898bb8a --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/MesToWmsService.java @@ -0,0 +1,22 @@ +package org.nl.wms.ext.mes.service; + +import com.alibaba.fastjson.JSONObject; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/6/7 + */ +public interface MesToWmsService { + + /** + * mes下发工单 + */ + void issueWorkOrderForMes(JSONObject param); + + JSONObject feedbackWorkOrderToMes(JSONObject param); + + JSONObject hawKeAutomaticForMes(JSONObject param); + + JSONObject gjxAutomaticForMes(JSONObject param); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java new file mode 100644 index 0000000..6b8cb9e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java @@ -0,0 +1,24 @@ +package org.nl.wms.ext.mes.service; + +/** + * @Author: lyd + * @Description: wms对接mes的业务层 + * @Date: 2023/6/7 + */ +public interface WmsToMesService { + + /** + * 从mes获取物料信息 wms请求mes + */ + void getMaterialInfoForMes(); + + /** + * 单位信息 + */ + void getUnitInfoForMes(); + + /** + * 设备 + */ + void getDeviceInfoForMes(); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java new file mode 100644 index 0000000..d3ed894 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToWmsServiceImpl.java @@ -0,0 +1,42 @@ +package org.nl.wms.ext.mes.service.impl; + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext.mes.service.MesToWmsService; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Description: + * @Date: 2023/6/7 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class MesToWmsServiceImpl implements MesToWmsService { + @Override + public void issueWorkOrderForMes(JSONObject param) { + // + } + + @Override + public JSONObject feedbackWorkOrderToMes(JSONObject param) { + return null; + } + + @Override + public JSONObject hawKeAutomaticForMes(JSONObject param) { + return null; + } + + @Override + public JSONObject gjxAutomaticForMes(JSONObject param) { + log.info("mes供给线下料参数:" + param); + JSONObject result = new JSONObject(); + result.put("status", 200); + result.put("message", "操作成功"); + result.put("data", param); + return result; + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java new file mode 100644 index 0000000..326d8fb --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java @@ -0,0 +1,39 @@ +package org.nl.wms.ext.mes.service.impl; + +import cn.hutool.http.HttpUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.ext.mes.service.WmsToMesService; +import org.springframework.stereotype.Service; + +/** + * @Author: lyd + * @Description: 具体实现 + * @Date: 2023/6/7 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class WmsToMesServiceImpl implements WmsToMesService { + final String http = "http://example.com/"; + @Override + public void getMaterialInfoForMes() { + String url = http + "api/material"; + String result = HttpUtil.post(url, ""); + System.out.println(result); + } + + @Override + public void getUnitInfoForMes() { + String url = http + "api/unit"; + String result = HttpUtil.post(url, ""); + System.out.println(result); + } + + @Override + public void getDeviceInfoForMes() { + String url = http + "api/device"; + String result = HttpUtil.post(url, ""); + System.out.println(result); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java index 87afafc..9247cc4 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/rest/PointController.java @@ -111,4 +111,12 @@ public class PointController { pointService.changeLock(jsonObject); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } + + @Log("清空点位") + @PostMapping("/clearPoint") + @ApiOperation("清空点位") + public ResponseEntity clearPoint(@RequestBody JSONObject jsonObject) { + pointService.clearPoint(jsonObject); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java index d4eec70..ef30e18 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/PointService.java @@ -96,4 +96,10 @@ public interface PointService { * @param jsonObject */ void changeLock(JSONObject jsonObject); + + /** + * 批量清空点位 + * @param jsonObject + */ + void clearPoint(JSONObject jsonObject); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index 8e6c4c6..dbb18db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -56,6 +56,7 @@ public class PointServiceImpl implements PointService { map.put("col_num", whereJson.get("col_num")); map.put("layer_num", whereJson.get("layer_num")); map.put("name", whereJson.get("name")); + map.put("material_id", whereJson.get("material_id")); JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc"); JSONArray content = json.getJSONArray("content"); JSONArray res = new JSONArray(); @@ -339,6 +340,37 @@ public class PointServiceImpl implements PointService { } } + @Override + @Transactional(rollbackFor = Exception.class) + public void clearPoint(JSONObject jsonObject) { + WQLObject wo = WQLObject.getWQLObject("sch_base_Point"); + JSONArray data = jsonObject.getJSONArray("data"); + JSONObject object = new JSONObject(); + object.put("point_status", "1"); + object.put("vehicle_type", ""); + object.put("vehicle_qty", "0"); + object.put("task_id", ""); + object.put("material_id", ""); + object.put("pcsn", ""); + object.put("ivt_qty", ""); + object.put("instorage_time", ""); + object.put("standing_time", ""); + object.put("update_optid", SecurityUtils.getCurrentUserId()); + object.put("update_optname", SecurityUtils.getCurrentNickName()); + object.put("update_time", DateUtil.now()); + String result = ""; + for (int i = 0; i < data.size(); i++) { + JSONObject obj = data.getJSONObject(i); + String pointId = obj.getString("point_id"); + result += "'" + pointId + "',"; + } + // 去除末尾的逗号 + if (!result.isEmpty()) { + result = result.substring(0, result.length() - 1); + } + wo.update(object, "point_id IN (" + result + ")"); + } + //根据重量返回最大的 级数 public String getLoadSeriesByqty(Double qty) { JSONArray dictArr = WQLObject.getWQLObject("sys_dict_detail").query("dict_id ='108'", "label").getResultJSONArray(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/YqxhcqCallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/YqxhcqCallMaterialTask.java index 7e6a2ed..e9852b6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/YqxhcqCallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/autoTask/YqxhcqCallMaterialTask.java @@ -217,7 +217,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask { // 2.1、获取当前快排列的等待点 row:排 JSONObject waitPoint = WQL.getWO("QSCH_yqxCallMAterial_01") .addParamMap(MapOf.of("flag", "2", "block_num", materialPoint.getString("block_num"), - "row_num", materialPoint.getString("row_num"))).process() + "row_num", materialPoint.getString("row_num"), + "region_code", "YSQA01")).process() .uniqueResult(0); if (ObjectUtil.isEmpty(waitPoint)) throw new BadRequestException("油漆线缓存区判断等待点异常!"); // 2.2、判断等待点 @@ -228,7 +229,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask { "AND col_num = '" + waitPoint.getString("waitcol") + "' " + "AND is_used = '1' " + "AND is_delete = '0' " + - "AND lock_type = '1'").uniqueResult(0); + "AND lock_type = '1' " + + "AND region_code = 'YSQA01'").uniqueResult(0); if (ObjectUtil.isEmpty(waitPoints)) { taskObj.put("remark", "等待点已被占用"); taskObj.put("update_time", DateUtil.now()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java index dcc9d82..1955215 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callEmpty/GjxCallEmpVehicleTask.java @@ -114,12 +114,6 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { * 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态 * 2.终点为供给线,更新起点载数量 */ - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("update_optid", SecurityUtils.getCurrentUserId()); - jsonTask.put("update_optname", SecurityUtils.getCurrentUsername()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); - // 判断终点在哪里 String point_code1 = jsonTask.getString("point_code1"); String point_code2 = jsonTask.getString("point_code2"); @@ -179,6 +173,9 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { jsonStart.put("update_time", DateUtil.now()); pointTab.update(jsonStart); } + jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); + jsonTask.put("update_time", DateUtil.now()); + taskTab.update(jsonTask); } } @@ -365,9 +362,6 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask { JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务"); - - - String point_code2 = form.getString("point_code2"); String sub_device_code = point_code2.substring(0, point_code2.indexOf("_")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/wql/QSCH_yqxCallMAterial_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/wql/QSCH_yqxCallMAterial_01.wql index f9d59ca..5cbe9de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/wql/QSCH_yqxCallMAterial_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/callMaterial/wql/QSCH_yqxCallMAterial_01.wql @@ -85,6 +85,9 @@ OPTION 输入.row_num <> "" p.row_num = 输入.row_num ENDOPTION + OPTION 输入.region_code <> "" + p.region_code = 输入.region_code + ENDOPTION AND p.is_used = '1' AND p.is_delete = '0' ENDSELECT diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java index 94ee399..0891f3a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendEmpty/HtSendEmpVehicleTask.java @@ -208,6 +208,13 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0); for (int i = 0; i < taskArr.size(); i++) { JSONObject jsonTask = taskArr.getJSONObject(i); + String pointCode1 = jsonTask.getString("point_code1"); + JSONObject jsonObject = pointTab.query("point_code = '" + pointCode1 + "'").uniqueResult(0); + if (jsonObject.getString("lock_type").equals("2")) { // 查看是否被锁住 + jsonTask.put("remark", "货梯已被锁住!"); + taskTab.update(jsonTask); + continue; + } String point_code_ht = ""; // 查找组盘信息 JSONObject groupObj = groupTab.query("vehicle_code = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0); @@ -298,7 +305,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask { jsonEnd.put("lock_type", "2"); pointTab.update(jsonEnd); // 锁住送当前货梯所有点 - String allPre = jsonTask.getString("point_code1").substring(0, 5); + String allPre = pointCode1.substring(0, 5); JSONObject param2 = new JSONObject(); param2.put("lock_type", "2"); param2.put("task_id", jsonTask.getString("task_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java index d439c42..9a1eb29 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/HtSendMaterialTask.java @@ -34,6 +34,7 @@ import java.util.List; @Slf4j public class HtSendMaterialTask extends AbstractAcsTask { private final String THIS_CLASS = HtSendMaterialTask.class.getName(); + @Override public List addTask() { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); @@ -128,13 +129,16 @@ public class HtSendMaterialTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public String createTask(JSONObject form) { WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); + WQLObject vehicleInfoTab = WQLObject.getWQLObject("md_pb_vehicle"); String startPointCode = form.getString("point_code1"); String taskId = form.getString("task_id"); String vehicleCode = form.getString("vehicle_code"); //判断当前点是否有未完成的任务 JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + startPointCode + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + startPointCode + "存在未完成的任务"); + if (ObjectUtil.isNotEmpty(taskObj)) + throw new BadRequestException("当前点位" + startPointCode + "存在未完成的任务"); JSONObject task = taskTab.query("task_id = '" + taskId + "'").uniqueResult(0); + JSONObject vehicleObj = vehicleInfoTab.query("vehicle_code = '" + vehicleCode + "'").uniqueResult(0); // 创建任务 SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) .task_code(CodeUtil.getNewCode("TASK_CODE")) @@ -143,9 +147,9 @@ public class HtSendMaterialTask extends AbstractAcsTask { .task_name("货梯物料入库") .task_status(TaskStatusEnum.SURE_START.getCode()) .point_code1(startPointCode) - .priority("1") + .priority("5") .material_id(task.getLong("material_id")) - .vehicle_type(task.getString("vehicle_type")) + .vehicle_type(ObjectUtil.isNotEmpty(vehicleObj) ? vehicleObj.getString("vehicle_type") : task.getString("vehicle_type")) .vehicle_code(vehicleCode) .vehicle_qty(1) .material_qty(task.getString("material_qty")) @@ -177,14 +181,14 @@ public class HtSendMaterialTask extends AbstractAcsTask { param1.put("flag", "1"); param1.put("material_id", material_id); param1.put("region_code", "YSQB01"); - param1.put("vehicle_type", vehicle_type ); + param1.put("vehicle_type", vehicle_type); JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0); if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位 Integer block_num = json1.getInteger("block_num"); Integer col_num = json1.getInteger("col_num"); // 列 Integer row_num = json1.getInteger("row_num"); // 排 // 因为找到的是对应相同的物料点,所以是下一个位置 - JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "'and col_num = '" + (col_num - 1) +"' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0' and region_code = 'YSQB01'").uniqueResult(0); + JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "'and col_num = '" + (col_num - 1) + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0' and region_code = 'YSQB01'").uniqueResult(0); if (ObjectUtil.isNotEmpty(firstRow)) { taskObj.put("point_code2", firstRow.getString("point_code")); taskObj.put("update_time", DateUtil.now()); @@ -207,7 +211,7 @@ public class HtSendMaterialTask extends AbstractAcsTask { JSONObject param2 = new JSONObject(); param2.put("flag", "2"); param2.put("region_code", "YSQB01"); - param2.put("vehicle_type",vehicle_type); + param2.put("vehicle_type", vehicle_type); //1、查找整列为空的货位 JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0); if (ObjectUtil.isEmpty(json2)) { diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java index 55c34ac..b103e3f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/sendMaterial/YqxSendMaterialTask.java @@ -96,7 +96,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask { param2.put("lock_type", "1"); param2.put("task_id", ""); pointTab.update(param2, "point_code like '" + allPre + "%' " + - "AND point_code <> '" + allPre + "' " + + "AND point_code like '" + allPre + "%' " + "AND point_code <> '" + point_code2 + "'"); } param.put("point_status", "3"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql index 5a35f1d..f7b547e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_BASE_POINT.wql @@ -19,6 +19,7 @@ 输入.name TYPEAS s_string 输入.point_type TYPEAS s_string 输入.point_status TYPEAS s_string + 输入.material_id TYPEAS s_string 输入.block_num TYPEAS s_string 输入.row_num TYPEAS s_string 输入.col_num TYPEAS s_string @@ -97,6 +98,9 @@ OPTION 输入.layer_num <> "" point.layer_num = 输入.layer_num ENDOPTION + OPTION 输入.material_id <> "" + point.material_id = 输入.material_id + ENDOPTION OPTION 输入.name <> "" ( point.point_code like "%" 输入.name "%" or point.point_name like "%" 输入.name "%" ) ENDOPTION diff --git a/lms/nladmin-ui/src/api/wms/sch/point.js b/lms/nladmin-ui/src/api/wms/sch/point.js index 7a78111..e13bbed 100644 --- a/lms/nladmin-ui/src/api/wms/sch/point.js +++ b/lms/nladmin-ui/src/api/wms/sch/point.js @@ -68,4 +68,12 @@ export function changeLock(data) { }) } -export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock } +export function clearPoint(data) { + return request({ + url: 'api/point/clearPoint', + method: 'post', + data: data + }) +} + +export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock, clearPoint } diff --git a/lms/nladmin-ui/src/views/wms/sch/point/index.vue b/lms/nladmin-ui/src/views/wms/sch/point/index.vue index a2eee59..9854bee 100644 --- a/lms/nladmin-ui/src/views/wms/sch/point/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/point/index.vue @@ -69,6 +69,9 @@ /> + + + 解锁 + + 清空点位 + - + + @@ -443,6 +458,7 @@ export default { syncLoading: false, materialDialog: false, workOrderDialog: false, + materialDialogQuery: false, choose: '物料', invtypelist: [], pointStatusList: [], @@ -573,9 +589,25 @@ export default { this.workOrderDialog = true } }, + getMaterialQuery() { + this.materialDialogQuery = true + }, tableChanged(row) { this.form.material_name = row.material_name this.form.material_id = row.material_id + }, + tableChanged2(row) { + this.query.material_id = row.material_id + this.query.material_code = row.material_code + }, + clearPoint(data) { + console.log(data) + const param = {} + param.data = data + crudPoint.clearPoint(param).then(res => { + this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.crud.toQuery() + }) } } } diff --git a/lms/nladmin-ui/src/views/wms/sch/task/index.vue b/lms/nladmin-ui/src/views/wms/sch/task/index.vue index f928907..ccdedf5 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -151,11 +151,11 @@ align="center" >