diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/TableDataInfo.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/TableDataInfo.java index 8401872b..9be6f89a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/TableDataInfo.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/TableDataInfo.java @@ -33,6 +33,11 @@ public class TableDataInfo implements Serializable { */ private List content; + /** + * 反馈数据 + */ + private Object data; + /** * 消息状态码 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java index 1a08d232..0cb9ef5a 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/controller/SchBaseTaskController.java @@ -6,6 +6,7 @@ import org.nl.common.TableDataInfo; import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.exception.BadRequestException; import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; +import org.nl.wms.dispatch_manage.task.service.TaskScheduleService; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -16,7 +17,6 @@ import org.springframework.web.bind.annotation.*; import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery; -import java.util.Map; import java.util.Set; /** @@ -31,7 +31,9 @@ import java.util.Set; @RequestMapping("api/schBaseTask") public class SchBaseTaskController { @Autowired - private ISchBaseTaskService schBaseTaskService; + private ISchBaseTaskService iSchBaseTaskService; + @Autowired + private TaskScheduleService taskScheduleService; @@ -40,37 +42,43 @@ public class SchBaseTaskController { if (CollectionUtils.isEmpty(param)){ throw new BadRequestException("参数不能为空"); } - return new ResponseEntity<>(schBaseTaskService.getByVehicle(param.getString("vehicle_code")), HttpStatus.OK); + return new ResponseEntity<>(iSchBaseTaskService.getByVehicle(param.getString("vehicle_code")), HttpStatus.OK); } @GetMapping public ResponseEntity query(SchBaseTaskQuery whereJson, PageQuery page){ - return new ResponseEntity<>(TableDataInfo.build(schBaseTaskService.queryAll(whereJson,page)), HttpStatus.OK); + return new ResponseEntity<>(TableDataInfo.build(iSchBaseTaskService.queryAll(whereJson,page)), HttpStatus.OK); } @PostMapping public ResponseEntity create(@Validated @RequestBody SchBaseTask entity){ - schBaseTaskService.create(entity); + iSchBaseTaskService.create(entity); return new ResponseEntity<>(HttpStatus.OK); } @PutMapping public ResponseEntity update(@Validated @RequestBody SchBaseTask entity){ - schBaseTaskService.update(entity); + iSchBaseTaskService.update(entity); return new ResponseEntity<>(HttpStatus.OK); } @DeleteMapping public ResponseEntity delete(@RequestBody Set ids) { - schBaseTaskService.deleteAll(ids); + iSchBaseTaskService.deleteAll(ids); return new ResponseEntity<>(HttpStatus.OK); } @PutMapping("/operation") public ResponseEntity update(@RequestBody JSONObject map) { - schBaseTaskService.operation(map); + iSchBaseTaskService.operation(map); + return new ResponseEntity<>(HttpStatus.OK); + } + + @GetMapping("/taskSchedule") + public ResponseEntity taskSchedule() { + taskScheduleService.taskPublish(); return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java index ddf77846..742f691b 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/TaskScheduleService.java @@ -1,9 +1,16 @@ package org.nl.wms.dispatch_manage.task.service; +import cn.hutool.core.date.DateUtil; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; import org.nl.common.enums.StatusEnum; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.nl.wms.external_system.acs.service.WmsToAcsService; @@ -42,11 +49,23 @@ public class TaskScheduleService { List list = taskService.list(new QueryWrapper().eq("is_send", true) .eq("status", StatusEnum.FORM_STATUS.code("生成"))); if (!CollectionUtils.isEmpty(list)){ - wmsToAcsService.interationToExt(list,"createTask"); + TableDataInfo response = wmsToAcsService.interationToExt(list, "createTask"); + if (response.getCode().equals(String.valueOf(HttpStatus.HTTP_BAD_REQUEST))){ + JSONArray results = (JSONArray)JSON.toJSON(response.getData()); + if (!CollectionUtils.isEmpty(results)){ + for (Object result : results) { + Map resultM = (Map) result; + taskService.update(new UpdateWrapper() + .eq("task_code",resultM.get("task_code")) + .set("status",StatusEnum.FORM_STATUS.code("暂停")) + .set("update_time", DateUtil.now()).set("remark",resultM.get("error"))); + } + } + } } } }finally { - if (islock){ + if (lock.isLocked() && lock.isHeldByCurrentThread()){ lock.unlock(); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java index bbf124cb..14ad6d85 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java @@ -107,13 +107,13 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_code", task_code)); if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){ throw new BadRequestException("当前任务已完成"); } this.update(new UpdateWrapper() - .set("status",param.getString("method_name")) + .set("status",param.getString("status")) .eq("task_code", task_code)); if (param.getString("method_name").equals(StatusEnum.FORM_STATUS.code("完成"))){ MdPbVehicleMater vehicleMater = iMdPbVehicleMaterService.getOne(new QueryWrapper() diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/GateWayService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/GateWayService.java index aacf7365..d246b939 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/GateWayService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/GateWayService.java @@ -1,5 +1,8 @@ package org.nl.wms.external_system; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import org.nl.wms.external_system.acs.service.AcsToWmsService; import org.nl.wms.external_system.dto.InteracteDto; import org.springframework.beans.factory.annotation.Autowired; @@ -15,17 +18,20 @@ public class GateWayService { @Autowired private AcsToWmsService acsToWmsService; + @Autowired + private ISchBaseTaskService iSchBaseTaskService; + public void apply(InteracteDto param){ //处理日志相关 String service = param.getService(); String type = param.getType(); //根据服务拆分不同的业务 - acsToWmsService.applyTask(param.getService(), type, param.getData()); - + if (service.equals("InStorage")){ + acsToWmsService.applyTask(param.getService(), type, (JSONObject) JSON.toJSON(param.getData())); + } + if (service.equals("Task")){ + iSchBaseTaskService.operation((JSONObject) JSON.toJSON(param.getData())); + } } - - - - } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java new file mode 100644 index 00000000..421d2e5b --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/acs/service/AcsToWmsService.java @@ -0,0 +1,68 @@ +package org.nl.wms.external_system.acs.service; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.InterationUtil; +import org.nl.common.utils.SpringContextHolder; +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.external_system.dto.InteracteDto; +import org.nl.wms.flow_manage.flow.framework.process.nodeType.source.impl.MappingSourceDataTypeHandler; +import org.nl.wms.sync_manage.service.form_mapping.ISyncFormMappingService; +import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping; +import org.slf4j.MDC; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/* + * @author ZZQ + * @Date 2024/5/6 14:53 + */ +@Service +public class AcsToWmsService { + + + @Autowired + private Map applyTaskMap; + @Autowired + private ISchBaseTaskService iSchBaseTaskService; + + public void applyTask(String service,String type,JSONObject data){ + if (service.equals("InStorage")){ + /* + { + "service": "ZPInStorage", + "ip": "ip_7va9w", + "request_time": "request_time_pbi5u", + "trace_id": "trace_id_xl8dk", + "data": { + "D00018": "start001" + } + } + * */ + applyTaskMap.get(type).createTask(data); + } + + + } + public void updateTAsk(String type,JSONObject data){ + String task_code = data.getString("task_code"); + SchBaseTask task = iSchBaseTaskService.getOne(new QueryWrapper().eq("task_code", task_code) + .lt("status", StatusEnum.FORM_STATUS.code("完成"))); + if (task == null){ + throw new BadRequestException("更新失败:当前执行中的任务不存在"); + } + applyTaskMap.get(task.getTask_type()).updateStatus(data); + } + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/dto/InteracteDto.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/dto/InteracteDto.java index 0794fc23..5f5b2e00 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/dto/InteracteDto.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/external_system/dto/InteracteDto.java @@ -3,6 +3,7 @@ package org.nl.wms.external_system.dto; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @@ -17,15 +18,16 @@ import java.util.List; @Data @Builder @NoArgsConstructor +@AllArgsConstructor public class InteracteDto { - String service; - String type; - String ip = IPUtil.getLocalIp(); - String request_time = DateUtil.now(); - String trace_id; + private String service; + private String type; + private String ip; + private String request_time; + private String trace_id; /** * 要么JSONArray要么JSONObject */ - Object data; + private Object data; } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/ExecuteFlowActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/ExecuteFlowActivityBehavior.java index 40d5a66f..6f28efc9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/ExecuteFlowActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/ExecuteFlowActivityBehavior.java @@ -36,7 +36,7 @@ public class ExecuteFlowActivityBehavior extends FlowNodeActivityBehavior() .eq("activity_id", source_data) .eq("proc_inst_id", entity.getProc_inst_id())); - executeFlow.getDataSource() + executeFlow.getDataSource(); //处理流程线:将结果值封装 super.execute(entity); } diff --git a/wms_pro/qd/src/views/wms/dispatch_manage/task/index.vue b/wms_pro/qd/src/views/wms/dispatch_manage/task/index.vue index 9ff4ec58..309cd6dc 100644 --- a/wms_pro/qd/src/views/wms/dispatch_manage/task/index.vue +++ b/wms_pro/qd/src/views/wms/dispatch_manage/task/index.vue @@ -74,6 +74,15 @@ + + 未完成数: + + 任务调度 +