From b641a95ec705f066d9a015bdb4638962c4c4dcfc Mon Sep 17 00:00:00 2001 From: zhangzq Date: Fri, 13 Dec 2024 10:43:48 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E8=BD=AC=E8=BF=90=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/utils/SpelUtil.java | 13 ++- .../task/handler/impl/TranforTask.java | 88 +++++++++++++++++++ 2 files changed, 97 insertions(+), 4 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TranforTask.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java index ce14004d..54658fc1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/utils/SpelUtil.java @@ -24,7 +24,7 @@ public class SpelUtil { private static SpelExpressionParser SPEL_PARSER = new SpelExpressionParser(); - public static void main(String[] args) { + public static void main2(String[] args) { JSONObject source = new JSONObject(); JSONObject model = new JSONObject(); JSONObject FBillType = new JSONObject(); @@ -136,11 +136,16 @@ public class SpelUtil { } } - public static void main2(String[] args) { - String a= "{\"item\":[{\"t\":{\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"task_code\":\"28510\",\"material_spec\":\"45CCL1 1/8\",\"form_data\":{},\"group_id\":\"1803264719126138880\",\"qty\":120,\"proc_inst_id\":\"1803320414961799168\",\"is_lock\":false,\"pcsn\":\"11\",\"material_id\":\"FMaterialId\",\"id\":\"1803264718849314816\",\"has_child\":false,\"frozen_qty\":0,\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"unit_id\":\"16\",\"material_name\":\"A345度等径承插口弯头45CCL1 1/8USNA0131010\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"create_name\":\"管理员\",\"material_code\":\"24001097S\"},\"form_id\":\"1803264718849314816\",\"form_type\":\"md_pb_vehicleMater\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}],\"t\":{\"code\":\"ZP20240619023\",\"stor_code\":\"FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"update_name\":\"管理员\",\"update_time\":\"2024-06-19 11:15:31\",\"form_data\":{},\"id\":\"1803264719126138880\",\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"struct_code\":\"L03-03-01\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"status\":\"10\",\"create_name\":\"管理员\"},\"form_id\":\"1803264719126138880\",\"form_type\":\"md_group_dick\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}"; + public static void main(String[] args) { + String a= "{\"item\":[{\"t\":{\"stor_code\":\"12322$FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"task_code\":\"28510\",\"material_spec\":\"45CCL1 1/8\",\"form_data\":{},\"group_id\":\"1803264719126138880\",\"qty\":120,\"proc_inst_id\":\"1803320414961799168\",\"is_lock\":false,\"pcsn\":\"11\",\"material_id\":\"FMaterialId\",\"id\":\"1803264718849314816\",\"has_child\":false,\"frozen_qty\":0,\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"unit_id\":\"16\",\"material_name\":\"A345度等径承插口弯头45CCL1 1/8USNA0131010\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"create_name\":\"管理员\",\"material_code\":\"24001097S\"},\"form_id\":\"1803264718849314816\",\"form_type\":\"md_pb_vehicleMater\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}],\"t\":{\"code\":\"ZP20240619023\",\"stor_code\":\"1234$FStockId\",\"create_time\":\"2024-06-19 11:13:06\",\"update_name\":\"管理员\",\"update_time\":\"2024-06-19 11:15:31\",\"form_data\":{},\"id\":\"1803264719126138880\",\"vehicle_code\":\"D00012\",\"source_form_id\":\"1803264490947612672\",\"struct_code\":\"L03-03-01\",\"source_form_type\":\"st_ivt_iostorinvdtl\",\"status\":\"10\",\"create_name\":\"管理员\"},\"form_id\":\"1803264719126138880\",\"form_type\":\"md_group_dick\",\"source_form_id\":\"1803264490947612672\",\"source_form_type\":\"st_ivt_iostorinvdtl\"}"; JSONObject jsonObject = JSONObject.parseObject(a); - String parse = SpelUtil.parse(jsonObject.getJSONObject("t"),"#M['stor_code'] == 'FStockId'", String.class); + String parse = SpelUtil.parse(jsonObject.getJSONObject("t"),"#M['stor_code']", String.class); + Object parse2 = SpelUtil.parse(jsonObject.getJSONObject("t"),"#M['stor_code'].split('\\$')[0]", Object.class); System.out.println(parse); + System.out.println(parse2); + String b = "1234FStockId"; + String[] $s = b.split("\\$"); + System.out.println($s[0]); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TranforTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TranforTask.java new file mode 100644 index 00000000..b2c0a081 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/TranforTask.java @@ -0,0 +1,88 @@ +package org.nl.wms.dispatch_manage.task.handler.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.dispatch_manage.task.handler.AbstractTask; +import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; +import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; +import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2024/5/6 14:34 + * 堆垛机入库任务 + */ +@Service +public class TranforTask extends AbstractTask { + + @Autowired + private ISchBaseTaskService iSchBaseTaskService; + + @Override + public JSONObject createTask(JSONObject from) { + // {"start":"1123","end":"1131",vehicle_code,"XXX"} + String start = from.getString("start"); + String end = from.getString("end"); + String vehicle_code = from.getString("vehicle_code"); + if (StringUtils.isEmpty(start) ||StringUtils.isEmpty(end)||StringUtils.isEmpty(vehicle_code)){ + throw new BadRequestException("创建任务失败:方法请求参数不能为空"); + } + List list = iSchBaseTaskService.list(new QueryWrapper() + .eq("point_code1", start) + .lt("status", StatusEnum.FORM_STATUS.code("完成"))); + if (!CollectionUtils.isEmpty(list)){ + throw new BadRequestException("起点位置存在正在执行任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); + } + SchBaseTask task = new SchBaseTask(); + task.setId(IdUtil.getStringId()); + task.setSource_form_id(from.getString("id")); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setStatus(StatusEnum.FORM_STATUS.code("生成")); + task.setHandle_class(this.getClass().getName()); + task.setAcs_type(StatusEnum.ACS_TYPE.code("立库")); + task.setCreate_time(DateUtil.now()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setTask_type(StatusEnum.OTHER_TASK_TYPE.code("转运")); + task.setVehicle_code(vehicle_code); + task.setPoint_code1(start); + task.setPoint_code2(end); + iSchBaseTaskService.create(task); + return (JSONObject) JSON.toJSON(task); + + } + + @Override + @Transactional + public void finish(JSONObject data) { + data.put("status",StatusEnum.FORM_STATUS.code("完成")); + this.updateTask(data); + } + + @Override + public void updateStatus(JSONObject data) { + this.updateTask(data); + } + + @Override + public void cancel(JSONObject data) { + this.updateTask(data); + } +}