From fc521f7580e1d3bca338da8c408609c848b272f9 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Wed, 29 May 2024 13:15:50 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E5=87=BA=E5=85=A5=E5=BA=93=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/StatusEnum.java | 1 + .../java/org/nl/common/utils/SpelUtil.java | 50 ++++++++++++++++++- .../service/dao/MdPbVehicleMater.java | 5 ++ .../handler/impl/base/FIFORuleHandler.java | 12 ++--- .../handler/impl/base/NearbyRuleHandler.java | 4 +- .../handler/impl/StackingTaskHandler.java | 10 ++-- .../converter/node/impl/FormConverter.java | 1 + .../behavior/impl/FormActivityBehavior.java | 18 ++++++- .../entity/node/impl/task/ExecuteTask.java | 9 ++++ .../entity/node/impl/task/impl/Form.java | 1 + .../entity/node/impl/task/impl/StrucForm.java | 4 -- .../nodeType/excess/impl/DecisionHandler.java | 38 ++++++++++---- .../nodeType/excess/impl/MappingHandler.java | 30 ++++++----- .../controller/MdGruopDickController.java | 3 ++ .../group_dick/service/dao/MdGruopDtl.java | 13 +++-- .../dao/mapper/xml/MdGruopDickMapper.xml | 2 +- .../group_dick/service/dto/MdGruopDtlDto.java | 13 +++-- .../service/impl/MdGruopDickServiceImpl.java | 2 +- .../form_data/service/IPmFormDataService.java | 2 + .../service/dao/mapper/PmFormDataMapper.java | 3 ++ .../service/impl/PmFormDataServiceImpl.java | 7 +++ .../impl/StIvtStructattrServiceImpl.java | 2 +- .../wms/flow_manage/act/execution/index.vue | 4 +- .../wms/md_manage/group_dick/AddDialog.vue | 8 +++ .../wms/md_manage/group_dick/ViewDialog.vue | 2 + 25 files changed, 184 insertions(+), 60 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java index 77ec225e..2133566d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java @@ -40,6 +40,7 @@ public enum StatusEnum { * 点位锁类型 */ LOCK(MapOf.of("无","00","入","10","出","20")), + STRATEGY_TYPE(MapOf.of("入库", "1", "出库", "2", "出入库", "3")), ; private Map code; 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 287e3809..f89961ff 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 @@ -3,13 +3,17 @@ package org.nl.common.utils; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import lombok.Data; +import org.apache.poi.ss.formula.functions.T; import org.nl.common.domain.exception.BadRequestException; import org.springframework.expression.Expression; import org.springframework.expression.spel.SpelEvaluationException; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.expression.spel.support.StandardEvaluationContext; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import java.util.HashMap; import java.util.Map; @@ -23,7 +27,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(); @@ -87,6 +91,50 @@ public class SpelUtil { } return result; } + public static Z parse(JSONObject sourceData, String skip, Class target){ + StandardEvaluationContext context = new StandardEvaluationContext(); + context.setVariable("M",sourceData); + Expression expression = SpelUtil.SPEL_PARSER.parseExpression(skip); + try { + return expression.getValue(context, target); + }catch (SpelEvaluationException ex){ + throw new BadRequestException("当前业务数据没有映射 对应的数据"+skip); + } + } + + public static void main(String[] args) { + TypeReference> typeRef = new TypeReference>() {}; + ParameterizedType type = (ParameterizedType) typeRef.getType(); + Type type1 = type.getActualTypeArguments()[0]; + Class aClass = (Class) type1; + String a="{\n" + + "\t\"code\": \"REC10022\",\n" + + "\t\"t\": {\n" + + "\t\t\"form_data\": {\n" + + "\t\t\t\"stor_code\": \"\",\n" + + "\t\t\t\"struct_code\": \"\",\n" + + "\t\t\t\"order\": \"\"\n" + + "\t\t},\n" + + "\t\t\"stor_code\": \"FStockId\",\n" + + "\t\t\"pcsn\": \"werwe\",\n" + + "\t\t\"material_id\": \"FMaterialId\",\n" + + "\t\t\"biz_id\": \"1793594766324273152\",\n" + + "\t\t\"order\": \"FMoBillNo\"\n" + + "\t},\n" + + "\t\"create_time\": \"2024-05-23 18:48:31\",\n" + + "\t\"form_id\": \"\",\n" + + "\t\"id\": \"1793594856053018624\",\n" + + "\t\"form_type\": \"PRD_FeedMtrl\",\n" + + "\t\"source_form_id\": \"1793594766324273152\",\n" + + "\t\"source_form_type\": \"st_ivt_iostorinvdtl_in\",\n" + + "\t\"status\": \"10\",\n" + + "\t\"create_name\": \"管理员\"\n" + + "}"; + Object o = JSONObject.parseObject(a, aClass); + System.out.println(o.toString()); + } + + } @Data class DemoJSON{ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dao/MdPbVehicleMater.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dao/MdPbVehicleMater.java index eed5c738..9947ca97 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dao/MdPbVehicleMater.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dao/MdPbVehicleMater.java @@ -96,4 +96,9 @@ public class MdPbVehicleMater implements Serializable { */ private String remark; + /** + * 关联实例id + */ + private String proc_inst_id; + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java index b23cf6da..af226ea7 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java @@ -35,7 +35,7 @@ import java.util.stream.Collectors; * 先进先出策略 */ @Service("fifo") -public class FIFORuleHandler extends Decisioner { +public class FIFORuleHandler extends Decisioner { /** * 出入库明细服务 @@ -57,17 +57,17 @@ public class FIFORuleHandler extends Decisioner :仓位集合 */ @Override - public List handler(List list, StIvtIostorinvdtl param) { + public List handler(List list, JSONObject param) { // 判断仓位是否为空 if (ObjectUtil.isEmpty(list)) { throw new BadRequestException("仓位集合为空!"); } //分配数量 - int plan_qty = param.getPlan_qty().intValue(); + int plan_qty = param.getInteger("plan_qty"); //当前条件只有id,批次 - List vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", param.getMaterial_id() - , "pcsn", param.getPcsn() - , "stor_code", param.getStor_code() + List vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", param.getString("material_id") + , "pcsn", param.getString("pcsn") + , "stor_code", param.getString("stor_code") , "order_by", "update_time asc") ); List need = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList()); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java index 0139b644..6742e835 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java @@ -24,7 +24,7 @@ import java.util.List; * 就近放置策略:根据物料ABC类区分 */ @Service("nearby") -public class NearbyRuleHandler extends Decisioner { +public class NearbyRuleHandler extends Decisioner { //每个策略的配置信息 private static StStrategyConfig stStrategyConfig; /** @@ -49,7 +49,7 @@ public class NearbyRuleHandler extends Decisioner :仓位集合 */ @Override - public List handler(List list, StIvtIostorinvdtl param) { + public List handler(List list, JSONObject param) { if (CollectionUtils.isEmpty(list)){ throw new BadRequestException("当前分配策略无可用货位"); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java index 25267186..e165c395 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/StackingTaskHandler.java @@ -39,9 +39,9 @@ public class StackingTaskHandler implements TaskHandler { public JSONObject process(JSONObject from, JSONObject param) { //区分出库还是入库 String vehicle_code = from.getString("vehicle_code"); - String point_code1 = from.getString("struct_code"); - String point_code2 = param.getString("start_point"); - if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(point_code1)||StringUtils.isEmpty(point_code2)){ + String struct_code = from.getString("struct_code"); + String start_point = param.getString("start_point"); + if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(start_point)||StringUtils.isEmpty(struct_code)){ throw new BadRequestException("创建任务失败:StackingTaskHandler#process()方法请求参数不能为空"); } List list = taskService.list(new QueryWrapper().eq("vehicle_code", vehicle_code) @@ -59,8 +59,8 @@ public class StackingTaskHandler implements TaskHandler { task.setCreate_name(SecurityUtils.getCurrentNickName()); task.setTask_type(param.getString("task_type")); task.setVehicle_code(vehicle_code); - task.setPoint_code1(point_code1); - task.setPoint_code2(point_code2); + task.setPoint_code1(start_point); + task.setPoint_code2(struct_code); taskService.create(task); Boolean isSend = param.getBoolean("is_send"); if (isSend){ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/converter/node/impl/FormConverter.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/converter/node/impl/FormConverter.java index 749d10e6..f02af32b 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/converter/node/impl/FormConverter.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/converter/node/impl/FormConverter.java @@ -24,6 +24,7 @@ public class FormConverter extends BaseNodeConverter { form.setId(node.getString("id")); form.setType(node.getString("type")); form.setForm_type(properties.getString("form_type")); + form.setSource_data(properties.getString("sourceData")); form.setName(properties.getString("name")); form.setCategory(properties.getString("category")); form.setDocumentation(properties.getString("documentation")); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/FormActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/FormActivityBehavior.java index 067b8007..b3691928 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/FormActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/FormActivityBehavior.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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; @@ -16,6 +17,8 @@ import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity; import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement; import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.Form; import org.nl.wms.flow_manage.flow.framework.process.nodeType.TypeHandler; +import org.nl.wms.flow_manage.flow.service.history.IActHiExecutionService; +import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.stor_manage.io.service.in.iostor.IStIvtIostorinvInService; import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn; @@ -45,6 +48,9 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior { @Autowired IPmFormDataService iPmFormDataService; + @Autowired + private IActHiExecutionService actHiExecutionService; + @Override public void execute(ExecutionEntity entity) { FlowElement flowElement = entity.getCurrentFlowElement(); @@ -60,6 +66,16 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior { // } //TEST:这部分数据放在框架中,每个节点都需要 entity.setForm_struc(sourceStruc); + //怕断是否指定数据源: + JSONObject sourceData = entity.getT(); + + String dataConfig = currentNode.getSource_data(); + if (StringUtils.isNotEmpty(dataConfig)){ + ActHiExecution one = actHiExecutionService.getOne(new QueryWrapper() + .eq("activity_id", dataConfig) + .eq("proc_inst_id", entity.getProc_inst_id())); + sourceData = one.getForm_data(); + } //处理自定义参数: if (currentNode.getSkipExpression()!=null || currentNode.getSkipExpression().size()>0){ @@ -67,7 +83,7 @@ public class FormActivityBehavior extends FlowNodeActivityBehavior { if (typeHandler==null){ throw new BadRequestException("【flow】当前节点处理类型未定义"); } - JSONObject handler = typeHandler.handler(currentNode.getSkipExpression(), entity.getT() , targetStruc); + JSONObject handler = typeHandler.handler(currentNode.getSkipExpression(), sourceData , targetStruc); //该参数里包含三部分:主数据基础字段,组数据自定义及明细, //明细:基础字段,组数据自定义及参数: diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/ExecuteTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/ExecuteTask.java index 8d9c370f..08033e69 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/ExecuteTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/ExecuteTask.java @@ -1,10 +1,19 @@ package org.nl.wms.flow_manage.flow.framework.entity.node.impl.task; +import lombok.Data; import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowNode; /* * @author ZZQ * @Date 2024/3/18 11:28 */ +@Data public class ExecuteTask extends FlowNode { + + + /** + * 指定数据来源:从节点中获取 + */ + private String source_data; + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/Form.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/Form.java index 71e1eebd..a87ef460 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/Form.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/Form.java @@ -23,6 +23,7 @@ public class Form extends ExecuteTask { * 表单处理类别 */ private String category; + /** * 处理表达式 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/StrucForm.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/StrucForm.java index 2db14d6a..a05a6b49 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/StrucForm.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/entity/node/impl/task/impl/StrucForm.java @@ -18,10 +18,6 @@ public class StrucForm extends ExecuteTask { */ private String form_type; - /** - * 指定数据来源:从节点中获取 - */ - private String source_data; /** * 表单处理类别 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java index 527d8c78..72bb0d3a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java @@ -8,6 +8,9 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.utils.ListOf; import org.nl.common.utils.RedissonUtils; import org.nl.common.utils.SpringContextHolder; +import org.nl.wms.flow_manage.flow.framework.entity.node.base.impl.FlowElement; +import org.nl.wms.flow_manage.flow.framework.entity.node.impl.task.impl.ServerTask; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc; @@ -41,6 +44,8 @@ public class DecisionHandler extends TypeHandler decisionHandlerMap; @@ -57,26 +62,37 @@ public class DecisionHandler extends TypeHandler list = SpringContextHolder.getBean(DecisionHandler.class).dispense(params, iostorinvdtl); + ServerTask flow = (ServerTask)entity.getCurrentFlowElement(); + List list = SpringContextHolder.getBean(DecisionHandler.class).dispense(params, item_json); //更新仓位,更新数据 String collect = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.joining(",")); - System.out.println("更新明细id"+iostorinvdtl.getId()); - stIvtIostorinvdtlInService.update(new UpdateWrapper() - .set("struct_code",collect) - .eq("id",iostorinvdtl.getId())); + System.out.println("更新明细id"+item_json.getString("id")); + StringBuffer sql = new StringBuffer(); + sql.append("update ") + .append(flow.getForm_type()) + .append(" set struct_code = ") + .append("'"+collect+"'") + .append(" where id = ") + .append("'"+item_json.getString("id")+"'"); + iPmFormDataService.dynamicSql(sql.toString()); item_json.put("struct_code",collect); return t; } @Transactional(propagation= Propagation.REQUIRES_NEW) - public List dispense(List params, StIvtIostorinvdtl iostorinvdtl) { + public List dispense(List params, JSONObject iostorinvdtl) { + Decisioner oneDecisioner = decisionHandlerMap.get(params.get(0)); + //判断是出库还是入库 + String stor_code = iostorinvdtl.getString("stor_code"); + + String strategy_type = oneDecisioner.strategyConfig.getStrategy_type(); + boolean in_storage = StatusEnum.STRATEGY_TYPE.code("入库").equals(strategy_type); AtomicReference> structCode = new AtomicReference<>(); RedissonUtils.lock(()->{ QueryWrapper query = new QueryWrapper() .eq("is_used", true) .eq("lock_type", StatusEnum.LOCK.code("无")) - .eq("stor_code", iostorinvdtl.getStor_code()); - if (iostorinvdtl.getIn_storage()){ + .eq("stor_code", iostorinvdtl.getString("stor_code")); + if (in_storage){ query.eq("vehicle_code",""); }else { query.ne("vehicle_code",""); @@ -97,14 +113,14 @@ public class DecisionHandler extends TypeHandler() // .set("vehicle_code", iostorinvdtl.getVehicle_code()) - .set("lock_type", StatusEnum.LOCK.code(iostorinvdtl.getIn_storage()?"入":"出")) + .set("lock_type", StatusEnum.LOCK.code(in_storage?"入":"出")) .in("struct_code", list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList()))); System.out.println("货位绑定成功"); },"入",2); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/MappingHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/MappingHandler.java index fe9d7ecc..c23bad02 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/MappingHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/MappingHandler.java @@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.utils.ListOf; +import org.nl.common.utils.SpelUtil; import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService; import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc; import org.nl.wms.flow_manage.flow.framework.entity.ExecutionEntity; @@ -33,9 +35,8 @@ public class MappingHandler extends TypeHandler { JSONObject resultT = new JSONObject(); JSONObject mapping = JSONObject.parseObject(param.size()==1?param.get(0):param.remove(0)); - - //数据平铺 JSONObject sourceFormData = new JSONObject(data.getJSONObject("t")); + //数据平铺 String souceFromId = data.getString("form_id"); String souceFromType = data.getString("form_type"); JSONObject forms = sourceFormData.getJSONObject("form_data"); @@ -44,16 +45,7 @@ public class MappingHandler extends TypeHandler { } //数据字段列表+自定义的字段:不从配置表获取 Object formDataMapping = mapping.remove("form_data"); -// List fields = ListOf.of(form_struc.getBiz_code() -// , form_struc.getBiz_id() -// , form_struc.getBiz_code() -// , form_struc.getBiz_status() -// , form_struc.getBiz_form_type() -// , form_struc.getMaterial_id() -// , form_struc.getPcsn() -// , form_struc.getVehicle_code() -// , form_struc.getUnit_id() -// , form_struc.getQty()); + JSONObject t = new JSONObject(); //查询目标表字段 //基础字段映射:如果只有一个就不迭代 @@ -80,11 +72,17 @@ public class MappingHandler extends TypeHandler { } t.put("form_data",form_data); } - JSONArray item = data.getJSONArray("item"); + Object itemSkip = param.remove("skipExpression"); + JSONArray item = new JSONArray(); + if (data.getJSONArray("item") == null){ + item.add(data); + }else { + item = data.getJSONArray("item"); + } BmFormStruc item_struc = iBmFormStrucService.getOne(new QueryWrapper().eq("parent_id",form_struc.getId())); - if (item!=null){ - //暂定:强制校验 - if (item_struc == null){ + if (item_struc != null){ + if (item==null){ + //暂定:强制校验 throw new BadRequestException("当前数据存在明细且目标单据:"+form_struc.getForm_type()+" 未配置明细表"); } JSONArray itemList = new JSONArray(); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/controller/MdGruopDickController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/controller/MdGruopDickController.java index 2dfc1e2a..f93e4838 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/controller/MdGruopDickController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/controller/MdGruopDickController.java @@ -15,6 +15,7 @@ import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService; import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick; import org.nl.wms.md_manage.group_dick.service.dto.GroupDickQuery; import org.nl.wms.md_manage.group_dick.service.dto.MdGruopDtlDto; +import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -43,6 +44,8 @@ public class MdGruopDickController { @Autowired private IMdGruopDickService iMdGruopDickService; + @Autowired + private IPmFormDataService iPmFormDataService; @GetMapping @Log("查询组盘表") diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/MdGruopDtl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/MdGruopDtl.java index a10e1641..a4b363f3 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/MdGruopDtl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/MdGruopDtl.java @@ -29,15 +29,20 @@ public class MdGruopDtl implements Serializable { * 主表id */ private String dick_id; - /** - * 实例id - */ - private String proc_inst_id; /** * 载具 */ private String vehicle_code; + /** + * 仓位 + */ + private String struct_code; + /** + /** + * 仓库 + */ + private String stor_code; /** * 载具 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/mapper/xml/MdGruopDickMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/mapper/xml/MdGruopDickMapper.xml index 9f9671c1..7ac1e8fd 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/mapper/xml/MdGruopDickMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/dao/mapper/xml/MdGruopDickMapper.xml @@ -47,7 +47,7 @@