diff --git a/acs/nladmin-system/src/main/resources/config/application-prod.yml b/acs/nladmin-system/src/main/resources/config/application-prod.yml index 3dc4585..14fab3e 100644 --- a/acs/nladmin-system/src/main/resources/config/application-prod.yml +++ b/acs/nladmin-system/src/main/resources/config/application-prod.yml @@ -6,11 +6,9 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:ndxy3_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true - # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:ndxy3_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:nmd_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} - password: ${DB_PWD:P@ssw0rd} - # password: ${DB_PWD:Root.123456} + password: ${DB_PWD:123456} # 初始连接数 initial-size: 5 # 最小连接数 diff --git a/lms/nladmin-system/doc/sch2.xls b/lms/nladmin-system/doc/sch2.xls deleted file mode 100644 index 4085eed..0000000 Binary files a/lms/nladmin-system/doc/sch2.xls and /dev/null differ diff --git a/lms/nladmin-system/doc/永裕家居LMS系统.postman_collection.json b/lms/nladmin-system/doc/永裕家居LMS系统.postman_collection.json deleted file mode 100644 index 0c91cb5..0000000 --- a/lms/nladmin-system/doc/永裕家居LMS系统.postman_collection.json +++ /dev/null @@ -1,489 +0,0 @@ -{ - "info": { - "_postman_id": "584232a7-9ae4-4ca2-b4e5-d9e66870957e", - "name": "永裕家居LMS系统", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - }, - "item": [ - { - "name": "示例", - "description": "", - "item": [ - { - "name": "LMS登录", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "56672d9d-9bac-4f23-b77e-809647ef5df4", - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "id": "48d9e766-7014-4243-80de-81d63be07da5", - "type": "text/javascript", - "exec": [ - "//postman使用:https://blog.csdn.net/wangyiyan315/article/details/122441791", - "", - "var JsonData = JSON.parse(responseBody); //定义一个变量,并且将请求返回的内容赋给该变量", - "pm.globals.set(\"lms_token\", JsonData.token.slice(7)); //7代表去掉token前面的Bearer加空格", - "" - ] - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n\t\n\t\"username\":\"admin\",\n\t\"password\":\"uefvHbyUCADkudW1MV+/yw9XBWR2Z+KDyq+dqQ+ozr1loClUgqm4XQPsUl87IsXetYBWRDLo7HC++20VHlW80g==\"\n}" - }, - "url": { - "raw": "{{lms_url}}/mobile/auth/login", - "host": [ - "{{lms_url}}" - ], - "path": [ - "mobile", - "auth", - "login" - ] - }, - "description": "LMS登录并设置返回的token" - }, - "response": [] - }, - { - "name": "系统参数分页查询-示例", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "GET", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "/api/param" - }, - "url": { - "raw": "{{lms_url}}/api/param?sort=id,desc&size=10&page=0", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param" - ], - "query": [ - { - "key": "sort", - "value": "id,desc" - }, - { - "key": "size", - "value": "10" - }, - { - "key": "page", - "value": "0" - }, - { - "key": null, - "value": null - }, - { - "key": null, - "value": null - } - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - }, - { - "name": "根据编码获取值-示例", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "IS_CONNECT_ACS" - }, - "url": { - "raw": "{{lms_url}}/api/param/getValueByCode", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param", - "getValueByCode" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - }, - { - "name": "删除参数-示例", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "DELETE", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "[\"0c1d96d335cd4dd6aa0a4bee4b1c45fe\"]" - }, - "url": { - "raw": "{{lms_url}}/api/param", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - }, - { - "name": "新增参数-示例", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"code\":\"test22\",\"is_active\":\"1\",\"remark\":\"test11\",\"name\":\"test11\",\"value\":\"test11\"}" - }, - "url": { - "raw": "{{lms_url}}/api/param", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - }, - { - "name": "修改参数-示例", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "PUT", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"code\":\"test22\",\"is_active\":\"8\",\"create_time\":\"2022-10-14 13:33:52\",\"remark\":\"888\",\"update_time\":\"2022-10-14 13:33:52\",\"update_optname\":\"管理员\",\"create_id\":1,\"name\":\"888\",\"id\":\"3f1901b5814d40908bad602854b22aa6\",\"value\":\"8888\",\"update_optid\":1,\"create_name\":\"管理员\"}" - }, - "url": { - "raw": "{{lms_url}}/api/param", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - } - ] - }, - { - "name": "ACS请求LMS", - "description": "", - "item": [ - { - "name": "共挤线申请空盘", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"type\":\"1\",\"point_code\":\"GJX01_K\",\"vehicle_code\":\"001\",\"qty\":\"100\",\"vehicle_type\":\"01\",\"vehicle_num\":\"1\"}" - }, - "url": { - "raw": "{{lms_url}}/api/wms/task/apply", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "wms", - "task", - "apply" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - }, - { - "name": "油漆线空盘入库", - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4f07b550-ab9c-41a4-8dbf-f889ae50b246", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "request": { - "auth": { - "type": "bearer", - "bearer": [ - { - "key": "token", - "value": "{{lms_token}}", - "type": "string" - } - ] - }, - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\"code\":\"test22\",\"is_active\":\"1\",\"remark\":\"test11\",\"name\":\"test11\",\"value\":\"test11\"}" - }, - "url": { - "raw": "{{lms_url}}/api/param", - "host": [ - "{{lms_url}}" - ], - "path": [ - "api", - "param" - ] - }, - "description": "求方法参数:{\"whereJson\":{\"sort\":\"id,desc\",\"size\":\"10\",\"page\":\"0\"}}" - }, - "response": [] - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "32f60779-6a66-4d77-80e3-1bc0040e7650", - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "id": "fb339152-4984-49bb-8955-3e24baac67ae", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "id": "9b318f5e-373b-4f36-93a5-d131f4f76446", - "key": "lms_url", - "value": "http://localhost:8010", - "type": "string", - "description": "" - }, - { - "id": "5557e8ff-f6ac-45b0-a950-4a8c139d1ae0", - "key": "acs_url", - "value": "http://localhost:8010", - "type": "string", - "description": "" - } - ] -} \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index 0fe289f..a4b7807 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -3,6 +3,7 @@ package org.nl.wms.ext.acs.rest; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,6 +33,7 @@ public class AcsToWmsController { @PostMapping("/status") @Log("ACS给WMS反馈任务状态") @ApiOperation("ACS给WMS反馈任务状态") + @SaIgnore public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); } @@ -39,6 +41,7 @@ public class AcsToWmsController { @PostMapping("/orderFinish") @Log("ACS给WMS下发工单完成状态") @ApiOperation("ACS给WMS下发工单完成状态") + @SaIgnore public ResponseEntity orderFinish(@RequestBody String string) { return new ResponseEntity<>(acsToWmsService.orderFinish(string), HttpStatus.OK); } @@ -46,7 +49,8 @@ public class AcsToWmsController { @PostMapping("/apply") @Log("申请任务") @ApiOperation("申请任务") - @SaCheckPermission("menu:list") +// @SaCheckPermission("menu:list") + @SaIgnore public ResponseEntity apply(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.apply(whereJson), HttpStatus.OK); } @@ -54,7 +58,8 @@ public class AcsToWmsController { @PostMapping("/againApply") @Log("二次申请任务") @ApiOperation("二次申请任务") - @SaCheckPermission("menu:list") +// @SaCheckPermission("menu:list") + @SaIgnore public ResponseEntity againApply(@RequestBody String task_id) { return new ResponseEntity<>(acsToWmsService.againApply(task_id), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 3cc92cc..5c97145 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -20,11 +20,13 @@ import org.nl.wms.sch.task.CallEmptyVehicleTask; import org.nl.wms.sch.task.CallMaterialTask; import org.nl.wms.sch.task.SendFullVehicleTask; import org.nl.wms.sch.task.SendResiduesMaterialTask; -import org.nl.wms.sch.task.wql.SendEmptyVehicleTask; +import org.nl.wms.sch.task.SendEmptyVehicleTask; import org.nl.wms.util.CommonUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.concurrent.locks.Lock; + /** * @author 张江玮 * @date 2022/11/04 18:25 @@ -60,7 +62,7 @@ public class PdaServiceImpl implements PdaService { for (int i = 0; i < points.size(); i++) { JSONObject point = points.getJSONObject(i); if (StrUtil.equals(point.getString("lock_type"), LockType.TASK_LOCKED.getCode())) { - point.put("status", "3"); + point.put("status", "2"); } } // for (Object o : points) { @@ -78,7 +80,7 @@ public class PdaServiceImpl implements PdaService { JSONObject point = WQLObject .getWQLObject("sch_base_point") - .query("point_id = '" + pointId + "'") + .query("point_id = " + pointId) .uniqueResult(0); if (StrUtil.equals(point.getString("point_status"), PointStatus.HAS_VEHICLE.getCode())) { @@ -93,7 +95,6 @@ public class PdaServiceImpl implements PdaService { .getResultJSONArray(0); result.put("detail", detail); } else { - String vehicleCode = point.getString("vehicle_code"); result.put("vehicle_code", ""); result.put("detail", new JSONArray()); } @@ -318,10 +319,13 @@ public class PdaServiceImpl implements PdaService { if (ObjectUtil.isEmpty(point)) { throw new BadRequestException("该点位不存在"); } + if (StrUtil.equals(point.getString("lock_type"), LockType.TASK_LOCKED.getCode())) { + throw new BadRequestException("该点位存在任务"); + } if (StrUtil.equals(point.getString("point_status"), PointStatus.HAS_VEHICLE.getCode())) { throw new BadRequestException("该点位上有载具"); } - if (!StrUtil.equals(point.getString("region_id"), RegionEnum.JL.getCode())) { + if (!StrUtil.equals(point.getString("region_id"), RegionEnum.JL.getId())) { throw new BadRequestException("只有接料区可以呼叫空载具"); } @@ -336,10 +340,13 @@ public class PdaServiceImpl implements PdaService { if (ObjectUtil.isEmpty(point)) { throw new BadRequestException("该点位不存在"); } + if (StrUtil.equals(point.getString("lock_type"), LockType.TASK_LOCKED.getCode())) { + throw new BadRequestException("该点位存在任务"); + } if (StrUtil.equals(point.getString("point_status"), PointStatus.EMPTY.getCode())) { throw new BadRequestException("该点位为空位"); } - if (StrUtil.equals(point.getString("region_id"), RegionEnum.ZC.getCode())) { + if (StrUtil.equals(point.getString("region_id"), RegionEnum.ZC.getId())) { throw new BadRequestException("暂存区不能生成入库任务"); } @@ -354,10 +361,10 @@ public class PdaServiceImpl implements PdaService { } if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.HAS_MATERIAL.getCode())) { String regionId = point.getString("region_id"); - if (StrUtil.equals(regionId, RegionEnum.JL.getCode())) { + if (StrUtil.equals(regionId, RegionEnum.JL.getId())) { sendFullVehicleTask.createTask(param); } - if (StrUtil.equals(regionId, RegionEnum.JJ.getCode())) { + if (StrUtil.equals(regionId, RegionEnum.JJ.getId())) { sendResiduesMaterialTask.createTask(param); } } @@ -370,6 +377,9 @@ public class PdaServiceImpl implements PdaService { if (ObjectUtil.isEmpty(startPoint)) { throw new BadRequestException("起点不存在"); } + if (StrUtil.equals(startPoint.getString("lock_type"), LockType.TASK_LOCKED.getCode())) { + throw new BadRequestException("起点存在任务"); + } if (StrUtil.equals(startPoint.getString("point_status"), PointStatus.EMPTY.getCode())) { throw new BadRequestException("起点为空位"); } @@ -389,10 +399,13 @@ public class PdaServiceImpl implements PdaService { if (ObjectUtil.isEmpty(nextPoint)) { throw new BadRequestException("终点不存在"); } + if (StrUtil.equals(nextPoint.getString("lock_type"), LockType.TASK_LOCKED.getCode())) { + throw new BadRequestException("终点存在任务"); + } if (StrUtil.equals(nextPoint.getString("point_status"), PointStatus.HAS_VEHICLE.getCode())) { throw new BadRequestException("终点有载具"); } - if (StrUtil.equals(nextPoint.getString("region_id"), RegionEnum.JJ.getCode())) { + if (StrUtil.equals(nextPoint.getString("region_id"), RegionEnum.JJ.getId())) { throw new BadRequestException("只有终点为交接区才能生成出库任务"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/base/point/PointStatus.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/base/point/PointStatus.java index dff3089..c140764 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/base/point/PointStatus.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/base/point/PointStatus.java @@ -11,8 +11,8 @@ import lombok.Getter; @Getter public enum PointStatus { - EMPTY("1", "空位"), - HAS_VEHICLE("2", "有载具"); + EMPTY("0", "空位"), + HAS_VEHICLE("1", "有载具"); private final String code; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java index a0bfd2d..c2ffa3b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java @@ -1,10 +1,15 @@ package org.nl.wms.sch.manage; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.AcsUtils; +import org.nl.wms.sch.task.TaskStatus; import org.nl.wms.sch.task.dto.AcsTaskDTO; import java.util.List; @@ -107,15 +112,60 @@ public abstract class AbstractAcsTask { /** * */ - public JSONObject immediateNotifyAcs() { - List taskList = this.schedule(); - if (ObjectUtil.isNotEmpty(taskList)) { - - JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList)); - return AcsUtils.notifyAcs("api/wms/task", arr); + public JSONObject immediateNotifyAcs(String taskId) { + WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); + JSONArray tasks = taskTable + .query("task_id = " + taskId) + .getResultJSONArray(0); + + if (ObjectUtil.isNotEmpty(tasks)) { + String taskStatus = ((JSONObject) tasks.get(0)).getString("task_status"); + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) { + throw new BadRequestException("只能下发已确认起点和终点的任务"); + } + + JSONObject result = AcsUtils.notifyAcs("api/wms/task", tasks); + + String status = result.getString("status"); + String message = result.getString("message"); + //发送失败的任务JSON集合:task_id,message + JSONArray errArr = result.getJSONArray("errArr"); + + //任务下发以后,更新任务状态 + //成功 + if ("200".equals(status)) { + tasks.forEach(item -> { + JSONObject taskObj = new JSONObject(); + taskObj.put("task_id", ((JSONObject) item).getString("task_id")); + taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode()); + taskObj.put("remark", "下发成功"); + taskObj.put("update_time", DateUtil.now()); + taskTable.update(taskObj); + }); + } else {//下发失败 + tasks.forEach(item -> { + JSONObject taskObj = new JSONObject(); + taskObj.put("task_id", ((JSONObject) item).getString("task_id")); +// taskObj.put("task_status", TaskStatusEnum.ISSUE.getCode()); + taskObj.put("remark", "下发失败:" + message); + taskObj.put("update_time", DateUtil.now()); + taskTable.update(taskObj); + }); + } + //处理下发错误的任务 + if (ObjectUtil.isNotEmpty(errArr)) { + //处理下发失败的任务 + for (int i = 0; i < errArr.size(); i++) { + JSONObject taskObj = errArr.getJSONObject(i); + taskObj.put("remark", "下发失败:"+taskObj.getString("message")); + taskObj.put("update_time", DateUtil.now()); + taskTable.update(taskObj); + } + } + + return result; } return null; - } /** diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java index db45d9e..44be68c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/manage/AutoCreateTask.java @@ -31,7 +31,7 @@ public class AutoCreateTask { @SneakyThrows public void run() { if (ObjectUtil.isNull(subTypes) || subTypes.isEmpty()) { - Reflections reflections = new Reflections("org.nl.wms.sch.tasks"); + Reflections reflections = new Reflections("org.nl.wms.sch.task"); subTypes = reflections.getSubTypesOf(AbstractAcsTask.class); } if (ObjectUtil.isNull(taskTab)) taskTab = WQLObject.getWQLObject("sch_base_task"); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallEmptyVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallEmptyVehicleTask.java index d09b5a0..0b76408 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallEmptyVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallEmptyVehicleTask.java @@ -20,7 +20,6 @@ import org.nl.wms.util.CommonUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; /** @@ -57,7 +56,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); String taskCode = taskJSON.getString("task_code"); JSONObject task = taskTable - .query("task_code = " + taskCode) + .query("task_code = '" + taskCode + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(task)) { throw new BadRequestException("未找到任务号为" + taskCode + "的任务"); @@ -126,6 +125,10 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { .getWQLObject("sch_base_task") .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(task, TaskFinishedType.MANUAL); } @@ -141,22 +144,35 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { JSONObject task = taskTable .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("已完成的任务不能取消"); + } + taskTable.delete(task); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) - .uniqueResult(0); - JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) - .uniqueResult(0); + String startPointCode = task.getString("point_code1"); + if (StrUtil.isNotEmpty(startPointCode)) { + JSONObject startPoint = pointTable + .query("point_code = '" + startPointCode + "'") + .uniqueResult(0); + startPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(startPoint); + pointTable.update(startPoint); + } - startPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(startPoint); - pointTable.update(startPoint); - nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(nextPoint); - pointTable.update(nextPoint); + String nextPointCode = task.getString("point_code2"); + if (StrUtil.isNotEmpty(nextPointCode)) { + JSONObject nextPoint = pointTable + .query("point_code = '" + nextPointCode + "'") + .uniqueResult(0); + nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(nextPoint); + pointTable.update(nextPoint); + } } /** @@ -167,7 +183,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { public void findStartPoint() { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); JSONArray tasks = taskTable - .query("task_status = " + TaskStatus.SURE_END.getCode() + " AND handle_class = " + THIS_CLASS_NAME) + .query("task_status = " + TaskStatus.SURE_END.getCode() + " AND handle_class = '" + THIS_CLASS_NAME + "'") .getResultJSONArray(0); for (Object o : tasks) { @@ -195,6 +211,15 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) { + String taskStatus = task.getString("task_status"); + if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成"); + } + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode()) + && !StrUtil.equals(taskStatus, TaskStatus.ISSUE.getCode())) { + throw new BadRequestException("只有已确认起点和终点的任务可以手动完成"); + } + task.put("finished_type", taskFinishedType.getCode()); task.put("task_status", TaskStatus.FINISHED.getCode()); CommonUtils.addAdminUpdateColum(task); @@ -202,10 +227,10 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) + .query("point_code = '" + task.getString("point_code1") + "'") .uniqueResult(0); JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) + .query("point_code = '" + task.getString("point_code2") + "'") .uniqueResult(0); nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java index 6cf62e2..667ba95 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/CallMaterialTask.java @@ -57,7 +57,7 @@ public class CallMaterialTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); String taskCode = taskJSON.getString("task_code"); JSONObject task = taskTable - .query("task_code = " + taskCode) + .query("task_code = '" + taskCode + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(task)) { throw new BadRequestException("未找到任务号为" + taskCode + "的任务"); @@ -137,6 +137,10 @@ public class CallMaterialTask extends AbstractAcsTask { .getWQLObject("sch_base_task") .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(task, TaskFinishedType.MANUAL); } @@ -151,26 +155,48 @@ public class CallMaterialTask extends AbstractAcsTask { JSONObject task = taskTable .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("已完成的任务不能取消"); + } + taskTable.delete(task); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) - .uniqueResult(0); - JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) - .uniqueResult(0); + String startPointCode = task.getString("point_code1"); + if (StrUtil.isNotEmpty(startPointCode)) { + JSONObject startPoint = pointTable + .query("point_code = '" + startPointCode + "'") + .uniqueResult(0); + startPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(startPoint); + pointTable.update(startPoint); + } - startPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(startPoint); - pointTable.update(startPoint); - nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(nextPoint); - pointTable.update(nextPoint); + String nextPointCode = task.getString("point_code2"); + if (StrUtil.isNotEmpty(nextPointCode)) { + JSONObject nextPoint = pointTable + .query("point_code = '" + nextPointCode + "'") + .uniqueResult(0); + nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(nextPoint); + pointTable.update(nextPoint); + } } @Transactional(rollbackFor = Exception.class) public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) { + String taskStatus = task.getString("task_status"); + if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成"); + } + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode()) + && !StrUtil.equals(taskStatus, TaskStatus.ISSUE.getCode())) { + throw new BadRequestException("只有已确认起点和终点的任务可以手动完成"); + } + task.put("finished_type", taskFinishedType.getCode()); task.put("task_status", TaskStatus.FINISHED.getCode()); CommonUtils.addAdminUpdateColum(task); @@ -178,16 +204,16 @@ public class CallMaterialTask extends AbstractAcsTask { WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) + .query("point_code = '" + task.getString("point_code1") + "'") .uniqueResult(0); JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) + .query("point_code = '" + task.getString("point_code2") + "'") .uniqueResult(0); if (StrUtil.equals(startPoint.getString("point_type"), PointType.STORAGE_LOCATION.getCode())) { JSONObject vehicle = WQLObject .getWQLObject("md_pb_vehicle") - .query("vehicle_code = " + startPoint.getString("vehicle_code")) + .query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'") .uniqueResult(0); WQLObject.getWQLObject("st_ivt_structivt").delete("vehicle_id = " + vehicle.getString("vehicle_id")); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/SendEmptyVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendEmptyVehicleTask.java similarity index 78% rename from lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/SendEmptyVehicleTask.java rename to lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendEmptyVehicleTask.java index af24851..b8ae4db 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/SendEmptyVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendEmptyVehicleTask.java @@ -1,4 +1,4 @@ -package org.nl.wms.sch.task.wql; +package org.nl.wms.sch.task; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -13,9 +13,7 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.sch.base.point.LockType; import org.nl.wms.sch.base.point.PointStatus; -import org.nl.wms.sch.base.point.PointType; import org.nl.wms.sch.manage.AbstractAcsTask; -import org.nl.wms.sch.task.*; import org.nl.wms.sch.task.dto.AcsTaskDTO; import org.nl.wms.sch.task.util.TaskUtils; import org.nl.wms.util.CommonUtils; @@ -60,7 +58,7 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); String taskCode = taskJSON.getString("task_code"); JSONObject task = taskTable - .query("task_code = " + taskCode) + .query("task_code = '" + taskCode + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(task)) { throw new BadRequestException("未找到任务号为" + taskCode + "的任务"); @@ -130,6 +128,10 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { .getWQLObject("sch_base_task") .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(task, TaskFinishedType.MANUAL); } @@ -145,22 +147,35 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { JSONObject task = taskTable .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("已完成的任务不能取消"); + } + taskTable.delete(task); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) - .uniqueResult(0); - JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) - .uniqueResult(0); + String startPointCode = task.getString("point_code1"); + if (StrUtil.isNotEmpty(startPointCode)) { + JSONObject startPoint = pointTable + .query("point_code = '" + startPointCode + "'") + .uniqueResult(0); + startPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(startPoint); + pointTable.update(startPoint); + } - startPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(startPoint); - pointTable.update(startPoint); - nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(nextPoint); - pointTable.update(nextPoint); + String nextPointCode = task.getString("point_code2"); + if (StrUtil.isNotEmpty(nextPointCode)) { + JSONObject nextPoint = pointTable + .query("point_code = '" + nextPointCode + "'") + .uniqueResult(0); + nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(nextPoint); + pointTable.update(nextPoint); + } } /** @@ -174,7 +189,7 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { public void findNextPoint() { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); JSONArray tasks = taskTable - .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = " + THIS_CLASS_NAME) + .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = '" + THIS_CLASS_NAME + "'") .getResultJSONArray(0); for (Object o : tasks) { @@ -201,6 +216,15 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) { + String taskStatus = task.getString("task_status"); + if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成"); + } + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode()) + && !StrUtil.equals(taskStatus, TaskStatus.ISSUE.getCode())) { + throw new BadRequestException("只有已确认起点和终点的任务可以手动完成"); + } + task.put("finished_type", taskFinishedType.getCode()); task.put("task_status", TaskStatus.FINISHED.getCode()); CommonUtils.addAdminUpdateColum(task); @@ -208,10 +232,10 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) + .query("point_code = '" + task.getString("point_code1") + "'") .uniqueResult(0); JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) + .query("point_code = '" + task.getString("point_code2") + "'") .uniqueResult(0); nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode()); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendFullVehicleTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendFullVehicleTask.java index 44364dc..50078fe 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendFullVehicleTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendFullVehicleTask.java @@ -59,7 +59,7 @@ public class SendFullVehicleTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); String taskCode = taskJSON.getString("task_code"); JSONObject task = taskTable - .query("task_code = " + taskCode) + .query("task_code = '" + taskCode + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(task)) { throw new BadRequestException("未找到任务号为" + taskCode + "的任务"); @@ -129,6 +129,10 @@ public class SendFullVehicleTask extends AbstractAcsTask { .getWQLObject("sch_base_task") .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(task, TaskFinishedType.MANUAL); } @@ -144,22 +148,35 @@ public class SendFullVehicleTask extends AbstractAcsTask { JSONObject task = taskTable .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("已完成的任务不能取消"); + } + taskTable.delete(task); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) - .uniqueResult(0); - JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) - .uniqueResult(0); + String startPointCode = task.getString("point_code1"); + if (StrUtil.isNotEmpty(startPointCode)) { + JSONObject startPoint = pointTable + .query("point_code = '" + startPointCode + "'") + .uniqueResult(0); + startPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(startPoint); + pointTable.update(startPoint); + } - startPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(startPoint); - pointTable.update(startPoint); - nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(nextPoint); - pointTable.update(nextPoint); + String nextPointCode = task.getString("point_code2"); + if (StrUtil.isNotEmpty(nextPointCode)) { + JSONObject nextPoint = pointTable + .query("point_code = '" + nextPointCode + "'") + .uniqueResult(0); + nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(nextPoint); + pointTable.update(nextPoint); + } } /** @@ -173,7 +190,7 @@ public class SendFullVehicleTask extends AbstractAcsTask { public void findNextPoint() { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); JSONArray tasks = taskTable - .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = " + THIS_CLASS_NAME) + .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = '" + THIS_CLASS_NAME + "'") .getResultJSONArray(0); for (Object o : tasks) { @@ -200,6 +217,15 @@ public class SendFullVehicleTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) { + String taskStatus = task.getString("task_status"); + if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成"); + } + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode()) + && !StrUtil.equals(taskStatus, TaskStatus.ISSUE.getCode())) { + throw new BadRequestException("只有已确认起点和终点的任务可以手动完成"); + } + task.put("finished_type", taskFinishedType.getCode()); task.put("task_status", TaskStatus.FINISHED.getCode()); CommonUtils.addAdminUpdateColum(task); @@ -207,17 +233,17 @@ public class SendFullVehicleTask extends AbstractAcsTask { WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) + .query("point_code = '" + task.getString("point_code1") + "'") .uniqueResult(0); JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) + .query("point_code = '" + task.getString("point_code2") + "'") .uniqueResult(0); if (StrUtil.equals(nextPoint.getString("point_type"), PointType.STORAGE_LOCATION.getCode())) { JSONObject vehicle = WQLObject .getWQLObject("md_pb_vehicle") - .query("vehicle_code = " + startPoint.getString("vehicle_code")) + .query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'") .uniqueResult(0); JSONObject vm = WQLObject diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendResiduesMaterialTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendResiduesMaterialTask.java index 4ba66f1..9f03806 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendResiduesMaterialTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/SendResiduesMaterialTask.java @@ -59,7 +59,7 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); String taskCode = taskJSON.getString("task_code"); JSONObject task = taskTable - .query("task_code = " + taskCode) + .query("task_code = '" + taskCode + "'") .uniqueResult(0); if (ObjectUtil.isEmpty(task)) { throw new BadRequestException("未找到任务号为" + taskCode + "的任务"); @@ -129,6 +129,10 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { .getWQLObject("sch_base_task") .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(task, TaskFinishedType.MANUAL); } @@ -144,22 +148,35 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { JSONObject task = taskTable .query("task_id = " + taskId) .uniqueResult(0); + if (ObjectUtil.isEmpty(task)) { + throw new BadRequestException("该任务不存在"); + } + if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("已完成的任务不能取消"); + } + taskTable.delete(task); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) - .uniqueResult(0); - JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) - .uniqueResult(0); + String startPointCode = task.getString("point_code1"); + if (StrUtil.isNotEmpty(startPointCode)) { + JSONObject startPoint = pointTable + .query("point_code = '" + startPointCode + "'") + .uniqueResult(0); + startPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(startPoint); + pointTable.update(startPoint); + } - startPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(startPoint); - pointTable.update(startPoint); - nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); - CommonUtils.addAdminUpdateColum(nextPoint); - pointTable.update(nextPoint); + String nextPointCode = task.getString("point_code2"); + if (StrUtil.isNotEmpty(nextPointCode)) { + JSONObject nextPoint = pointTable + .query("point_code = '" + nextPointCode + "'") + .uniqueResult(0); + nextPoint.put("lock_type", LockType.UNLOCKED.getCode()); + CommonUtils.addAdminUpdateColum(nextPoint); + pointTable.update(nextPoint); + } } /** @@ -173,7 +190,7 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { public void findNextPoint() { WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); JSONArray tasks = taskTable - .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = " + THIS_CLASS_NAME) + .query("task_status = " + TaskStatus.SURE_START.getCode() + " AND handle_class = '" + THIS_CLASS_NAME + "'") .getResultJSONArray(0); for (Object o : tasks) { @@ -200,6 +217,15 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { @Transactional(rollbackFor = Exception.class) public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) { + String taskStatus = task.getString("task_status"); + if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成"); + } + if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode()) + && !StrUtil.equals(taskStatus, TaskStatus.ISSUE.getCode())) { + throw new BadRequestException("只有已确认起点和终点的任务可以手动完成"); + } + task.put("finished_type", taskFinishedType.getCode()); task.put("task_status", TaskStatus.FINISHED.getCode()); CommonUtils.addAdminUpdateColum(task); @@ -207,17 +233,17 @@ public class SendResiduesMaterialTask extends AbstractAcsTask { WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); JSONObject startPoint = pointTable - .query("task_code = " + task.getString("point_code1")) + .query("point_code = '" + task.getString("point_code1") + "'") .uniqueResult(0); JSONObject nextPoint = pointTable - .query("task_code = " + task.getString("point_code2")) + .query("point_code = '" + task.getString("point_code2") + "'") .uniqueResult(0); if (StrUtil.equals(nextPoint.getString("point_type"), PointType.STORAGE_LOCATION.getCode())) { JSONObject vehicle = WQLObject .getWQLObject("md_pb_vehicle") - .query("vehicle_code = " + startPoint.getString("vehicle_code")) + .query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'") .uniqueResult(0); JSONObject vm = WQLObject diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java index fa1db10..0bdcdc3 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/util/TaskUtils.java @@ -27,7 +27,7 @@ public class TaskUtils { public static List addTask(String handleClassName) { JSONArray tasks = WQLObject .getWQLObject("sch_base_task") - .query("task_status = " + TaskStatus.START_AND_END.getCode() + " AND handle_class = " + handleClassName) + .query("task_status = " + TaskStatus.START_AND_END.getCode() + " AND handle_class = '" + handleClassName + "'") .getResultJSONArray(0); ArrayList acsTasks = new ArrayList<>(); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/TASK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/TASK.wql index c1649ed..89abc04 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/TASK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/task/wql/TASK.wql @@ -50,13 +50,13 @@ point.is_used = '1' AND point.lock_type = '1' AND point.region_id = 1585921595338264576 - AND point.point_status = '2' + AND point.point_status = '1' AND vehicle.vehicle_status = '1' ENDSELECT ENDQUERY ENDIF - IF 输入.flag = "1" + IF 输入.flag = "2" QUERY SELECT point_id, @@ -67,7 +67,7 @@ is_used = '1' AND lock_type = '1' AND region_id = 1585921595338264576 - AND point_status = '1' + AND point_status = '0' ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql index 729b8ca..f4b82d0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/QSCH_TASK_01.wql @@ -51,8 +51,8 @@ PAGEQUERY SELECT task.*, - md.class_name task_type_name, - dict.label task_status_name + md.class_name AS task_type_name, + dict.label AS task_status_name FROM sch_base_task task LEFT JOIN md_pb_classstandard md ON task.task_type = md.class_code @@ -72,7 +72,7 @@ task.create_time <= 输入.end_time ENDOPTION OPTION 输入.unFinish <> "" - task.task_status <> '07' + task.task_status <> '7' ENDOPTION OPTION 输入.task_status <> "" find_in_set( task.task_status, 输入.task_status) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/sch.xls b/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/sch.xls deleted file mode 100644 index 6efd924..0000000 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/sch/wql/sch.xls and /dev/null differ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/structivt/wql/ST_IVT_STRUCTIVT.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/structivt/wql/ST_IVT_STRUCTIVT.wql index 8b6eace..e2928a9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/structivt/wql/ST_IVT_STRUCTIVT.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/structivt/wql/ST_IVT_STRUCTIVT.wql @@ -47,12 +47,12 @@ PAGEQUERY SELECT ivt.stockrecord_id, - region.region_name, - point.point_name, - vehicle.vehicle_id, - vehicle.vehicle_code, + ANY_VALUE( region.region_name ) AS region_name, + ANY_VALUE( point.point_name ) AS point_name, + ANY_VALUE( vehicle.vehicle_id ) AS vehicle_id, + ANY_VALUE( vehicle.vehicle_code ) AS vehicle_code, SUM( vm.material_qty ) AS qty, - ivt.instorage_time + ANY_VALUE( ivt.instorage_time ) AS instorage_time FROM st_ivt_structivt ivt LEFT JOIN sch_base_point point ON ivt.point_id = point.point_id @@ -77,7 +77,7 @@ ivt.instorage_time <= 输入.end_time ENDOPTION GROUP BY - ivt.stockrecord_id + ivt.stockrecord_id ENDSELECT ENDPAGEQUERY ENDIF \ No newline at end of file diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/vm/wql/ST_IVT_VEHICLE_MATERIAL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/vm/wql/ST_IVT_VEHICLE_MATERIAL.wql index 3796f96..5667cf6 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/vm/wql/ST_IVT_VEHICLE_MATERIAL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/vm/wql/ST_IVT_VEHICLE_MATERIAL.wql @@ -42,22 +42,22 @@ IF 输入.flag = "1" PAGEQUERY SELECT - vm.vm_id, vehicle.vehicle_id, - vehicle.vehicle_code, + ANY_VALUE( vm.vm_id ) AS vm_id, + ANY_VALUE( vehicle.vehicle_code) AS vehicle_code, SUM( vm.material_qty ) AS qty, - vm.create_name, - vm.create_time + ANY_VALUE( vm.create_name ) AS create_name, + ANY_VALUE( vm.create_time ) AS create_time FROM - st_ivt_vehicle_material vm - LEFT JOIN md_pb_vehicle vehicle ON vm.vehicle_id = vehicle.vehicle_id + md_pb_vehicle vehicle + LEFT JOIN st_ivt_vehicle_material vm ON vehicle.vehicle_id = vm.vehicle_id WHERE - 1 = 1 + vehicle.vehicle_status = '2' OPTION 输入.vehicle_code <> "" vehicle.vehicle_code LIKE CONCAT( '%', 输入.vehicle_code, '%' ) ENDOPTION GROUP BY - vm.vehicle_id + vehicle.vehicle_id ENDSELECT ENDPAGEQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls index 2d5f1ff..e9cc296 100644 Binary files a/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls and b/lms/nladmin-system/src/main/java/org/nl/wms/wms.xls differ diff --git a/lms/nladmin-system/src/main/resources/config/application-prod.yml b/lms/nladmin-system/src/main/resources/config/application-prod.yml index e03c00e..39cc5e9 100644 --- a/lms/nladmin-system/src/main/resources/config/application-prod.yml +++ b/lms/nladmin-system/src/main/resources/config/application-prod.yml @@ -1,14 +1,14 @@ server: - port: 8010 + port: 8011 #配置数据源 spring: datasource: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:ndxy3_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:nmd_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} - password: ${DB_PWD:P@ssw0rd} + password: ${DB_PWD:123456} # 初始连接数 initial-size: 5 # 最小连接数 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 b0ebe74..1fd5c4c 100644 --- a/lms/nladmin-ui/src/views/wms/sch/task/index.vue +++ b/lms/nladmin-ui/src/views/wms/sch/task/index.vue @@ -79,7 +79,7 @@ /> - + + + + + + - + @@ -116,14 +136,14 @@ - + - + @@ -205,7 +225,7 @@ import crudClassstandard from '@/api/wms/basedata/classstandard' export default { name: 'Task', - dicts: ['acs_task_type', 'vehicle_type'], + dicts: ['acs_task_type', 'vehicle_type', 'task_status'], components: { pagination, crudOperation, rrOperation, Treeselect, udOperation }, @@ -218,7 +238,7 @@ export default { sort: 'task_id,desc', crudMethod: { ...crudTask }, query: { - task_code: '', vehicle_code: '', start_point_code: '', next_point_code: '', task_type: '', finished_type: '', task_status: '' + task_code: '', vehicle_code: '', start_point_code: '', next_point_code: '', task_type: '', finished_type: '', task_status: '-1' }, optShow: { add: false, @@ -254,7 +274,7 @@ export default { crudTask.getFinishType().then(data => { this.finishTypeList = data }) - this.crud.query.task_status = ['-1'] + // this.crud.query.task_status = ['-1'] this.crud.toQuery() }, methods: { diff --git a/lms/nladmin-ui/src/views/wms/st/ysa/index.vue b/lms/nladmin-ui/src/views/wms/st/ysa/index.vue index d2760ab..3f1815d 100644 --- a/lms/nladmin-ui/src/views/wms/st/ysa/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/ysa/index.vue @@ -7,10 +7,10 @@ - + - + diff --git a/lms/nladmin-ui/src/views/wms/st/ysa/inventory.vue b/lms/nladmin-ui/src/views/wms/st/ysa/inventory.vue index 6e6fc2e..ea8f483 100644 --- a/lms/nladmin-ui/src/views/wms/st/ysa/inventory.vue +++ b/lms/nladmin-ui/src/views/wms/st/ysa/inventory.vue @@ -391,7 +391,7 @@ export default { } }, created() { - this.getPointStatusList('1557539288307077120') + // this.getPointStatusList('1557539288307077120') }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据