Version 1.1

This commit is contained in:
张江玮
2022-11-13 22:32:51 +08:00
parent 0ba4f7a410
commit a50db49d7d
24 changed files with 357 additions and 633 deletions

Binary file not shown.

View File

@@ -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": ""
}
]
}

View File

@@ -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<Object> 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<Object> 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<Object> 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<Object> againApply(@RequestBody String task_id) {
return new ResponseEntity<>(acsToWmsService.againApply(task_id), HttpStatus.OK);
}

View File

@@ -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("只有终点为交接区才能生成出库任务");
}

View File

@@ -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;

View File

@@ -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<AcsTaskDTO> taskList = this.schedule();
if (ObjectUtil.isNotEmpty(taskList)) {
public JSONObject immediateNotifyAcs(String taskId) {
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
JSONArray tasks = taskTable
.query("task_id = " + taskId)
.getResultJSONArray(0);
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(taskList));
return AcsUtils.notifyAcs("api/wms/task", arr);
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;
}
/**

View File

@@ -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");

View File

@@ -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());

View File

@@ -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"));

View File

@@ -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());

View File

@@ -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

View File

@@ -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

View File

@@ -27,7 +27,7 @@ public class TaskUtils {
public static List<AcsTaskDTO> 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<AcsTaskDTO> acsTasks = new ArrayList<>();

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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
# 最小连接数