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 2d21ac38..ae13a274 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 @@ -1,5 +1,8 @@ package org.nl.wms.dispatch_manage.task.service.impl; +import cn.hutool.http.HttpStatus; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -11,6 +14,8 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.poi.ss.formula.functions.T; +import org.nl.common.TableDataInfo; import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; @@ -23,6 +28,7 @@ import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper; import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.dispatch_manage.task.service.dto.SchBaseTaskQuery; +import org.nl.wms.external_system.acs.service.WmsToAcsService; import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler; import org.nl.wms.flow_manage.flow.service.execution.IActRuExecutionService; import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution; @@ -34,6 +40,7 @@ import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.*; import java.util.concurrent.atomic.AtomicReference; @@ -60,6 +67,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(SchBaseTaskQuery whereJson, PageQuery page) { List collect = ObjectUtil.isNotEmpty(whereJson.getMore_status()) @@ -76,11 +86,9 @@ public class SchBaseTaskServiceImpl extends ServiceImpl getByVehicle(String vehicle_code) { - if (StringUtils.isEmpty(vehicle_code)){ + if (StringUtils.isEmpty(vehicle_code)) { return new ArrayList<>(); } return this.baseMapper.getByVehicle(ListOf.of(vehicle_code.split(","))); @@ -122,40 +130,65 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("task_code", task_code)); - if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))){ + if (task.getStatus().equals(StatusEnum.FORM_STATUS.code("完成"))) { throw new BadRequestException("当前任务已完成"); } - if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("完成"))){ + if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("完成"))) { MdPbVehicleMater vehicleMater = iMdPbVehicleMaterService.getOne(new QueryWrapper() .eq("vehicle_code", task.getVehicle_code())); - if (vehicleMater!=null && !StringUtils.isEmpty(vehicleMater.getProc_inst_id())){ + if (vehicleMater != null && !StringUtils.isEmpty(vehicleMater.getProc_inst_id())) { FlowContinueEvent continueEvent = new FlowContinueEvent(vehicleMater.getProc_inst_id(), null, null); BussEventMulticaster.Publish(continueEvent); - }else { + } else { String handleClass = task.getHandle_class(); try { - AbstractTask bean = (AbstractTask)SpringContextHolder.getBean(Class.forName(handleClass)); + AbstractTask bean = (AbstractTask) SpringContextHolder.getBean(Class.forName(handleClass)); bean.finish(param); - }catch (Exception ex){ + } catch (Exception ex) { throw new BadRequestException(ex.getMessage()); } } - }else { - this.update(new UpdateWrapper() - .set("status",param.getString("status")) + } else if (param.getString("status").equals(StatusEnum.FORM_STATUS.code("下发"))) { + ArrayList list = ListOf.of(task); + if (!CollectionUtils.isEmpty(list)) { + List taskCodes = list.stream().map(SchBaseTask::getTask_code).collect(Collectors.toList()); + TableDataInfo response = wmsToAcsService.interationToExt(list, "createTask"); + if (!response.getCode().equals(String.valueOf(HttpStatus.HTTP_OK))) { + JSONArray results = (JSONArray) JSON.toJSON(response.getData()); + if (!CollectionUtils.isEmpty(results)) { + for (Object result : results) { + Map resultM = (Map) result; + taskCodes.remove(resultM.get("task_code")); + this.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("msg"))); + } + } + } + if (!CollectionUtils.isEmpty(taskCodes)) { + this.update(new UpdateWrapper() + .set("status", StatusEnum.FORM_STATUS.code("下发")) + .in("task_code", taskCodes)); + } + } + } else { + this.update(new UpdateWrapper() + .set("status", param.getString("status")) .eq("task_code", task_code)); } } /** - "type": - "rm" 入满 标记目标货位异常,重新分配货位;更新任务终点,反馈目的货位 - "rzd"入库阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;更新任务终点,反馈目的货位 - "ck"空出 修改目标货位为空位,任务直接取消,不扣件关联单据已出库数量 - "czd"取货阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;任务重新下发 + * "type": + * "rm" 入满 标记目标货位异常,重新分配货位;更新任务终点,反馈目的货位 + * "rzd"入库阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;更新任务终点,反馈目的货位 + * "ck"空出 修改目标货位为空位,任务直接取消,不扣件关联单据已出库数量 + * "czd"取货阻挡 异常位生成移库单,标记目标货位异常,后续人工处理;任务重新下发 + * * @return */ @Override @@ -165,33 +198,33 @@ public class SchBaseTaskServiceImpl extends ServiceImpl().eq("struct_code", struct_code)); SchBaseTask task = this.getOne(new QueryWrapper().eq("task_code", task_code)); - switch (type){ + switch (type) { case "ck": MdPbVehicleMater vehicleCode = iMdPbVehicleMaterService.getOne(new QueryWrapper().eq("vehicle_code", task.getVehicle_code())); iActRuExecutionService.update(new UpdateWrapper() - .set("status",StatusEnum.FLOW_STATUS.code("异常完成")) - .set("remark",task.getVehicle_code()+"载具空出:货位"+struct_code) - .eq("proc_inst_id",vehicleCode.getProc_inst_id())); + .set("status", StatusEnum.FLOW_STATUS.code("异常完成")) + .set("remark", task.getVehicle_code() + "载具空出:货位" + struct_code) + .eq("proc_inst_id", vehicleCode.getProc_inst_id())); iStIvtStructattrService.update(new UpdateWrapper() .set("update_time", DateUtil.now()) - .set("vehicle_code",null) - .set("remark",struct_code+"出库异常") + .set("vehicle_code", null) + .set("remark", struct_code + "出库异常") .eq("struct_code", struct_code)); this.update(new UpdateWrapper() - .set("status",StatusEnum.FORM_STATUS.code("取消")) - .set("remark",struct_code+"出库异常") - .set("update_time",DateUtil.now()) - .eq("task_code",task_code)); + .set("status", StatusEnum.FORM_STATUS.code("取消")) + .set("remark", struct_code + "出库异常") + .set("update_time", DateUtil.now()) + .eq("task_code", task_code)); break; case "rm": - return dicisionStruct(struct_code,stIvtStructattr, task); + return dicisionStruct(struct_code, stIvtStructattr, task); case "rzd": iStIvtStructattrService.update(new UpdateWrapper() .set("update_time", DateUtil.now()) - .set("vehicle_code",null) - .set("lock_type",StatusEnum.LOCK.code("无锁")) + .set("vehicle_code", null) + .set("lock_type", StatusEnum.LOCK.code("无锁")) .eq("struct_code", task.getPoint_code2())); - return dicisionStruct(struct_code,stIvtStructattr, task); + return dicisionStruct(struct_code, stIvtStructattr, task); case "czd": moveTask(task_code, struct_code, stIvtStructattr); break; @@ -203,15 +236,15 @@ public class SchBaseTaskServiceImpl extends ServiceImpl moveStruct = new AtomicReference<>(); this.update(new UpdateWrapper() - .set("status",StatusEnum.FORM_STATUS.code("生成")) - .set("remark",struct_code+"出库阻挡二次下发") - .set("update_time",DateUtil.now()) - .eq("task_code",task_code)); - RedissonUtils.lock(()->{ - System.out.println("---3--"+Thread.currentThread().getName()); + .set("status", StatusEnum.FORM_STATUS.code("生成")) + .set("remark", struct_code + "出库阻挡二次下发") + .set("update_time", DateUtil.now()) + .eq("task_code", task_code)); + RedissonUtils.lock(() -> { + System.out.println("---3--" + Thread.currentThread().getName()); Map process = SpringContextHolder.getBean(DecisionHandler.class).dispenseTransa(ListOf.of("nearby"), new JSONObject(MapOf.of("stor_code", stIvtStructattr.getStor_code()))); moveStruct.set(((Map) process.get("form_data")).get("end_struct_code")); - },"1"+ stIvtStructattr.getStor_code(),5); + }, "1" + stIvtStructattr.getStor_code(), 5); Map moveForm = MapOf.of("task_type", StatusEnum.IOBILL_TYPE_MOVE.code("异常位移库") , "is_send", false , "vehicle_code", "YCZJ" + task_code, "form_data", new JSONObject(MapOf.of("start_struct_code", struct_code, "end_struct_code", moveStruct.get()))); @@ -227,20 +260,20 @@ public class SchBaseTaskServiceImpl extends ServiceImpl) map.get("form_data")).get("end_struct_code"); iActRuExecutionService.update(new UpdateWrapper() - .set("remark", struct_code +"入满异常重新分配货位"+new_struct_code) - .eq("proc_inst_id",vehicleCode.getProc_inst_id())); + .set("remark", struct_code + "入满异常重新分配货位" + new_struct_code) + .eq("proc_inst_id", vehicleCode.getProc_inst_id())); this.update(new UpdateWrapper() - .set("point_code2",new_struct_code) - .set("remark", struct_code +"入满异常重新分配货位"+new_struct_code) + .set("point_code2", new_struct_code) + .set("remark", struct_code + "入满异常重新分配货位" + new_struct_code) .eq("task_code", task_code)); iStIvtStructattrService.update(new UpdateWrapper() .eq("struct_code", struct_code) - .set("lock_type",StatusEnum.LOCK.code("异常锁定")) - .set("update_time",DateUtil.now()) - .set("remark","入满异常:"+ task_code) - .set("vehicle_code","YCZJ"+ task_code)); + .set("lock_type", StatusEnum.LOCK.code("异常锁定")) + .set("update_time", DateUtil.now()) + .set("remark", "入满异常:" + task_code) + .set("vehicle_code", "YCZJ" + task_code)); JSONObject result = new JSONObject(); - result.put("point_code2",new_struct_code); + result.put("point_code2", new_struct_code); return result; } } 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 7be7dcf5..6811229f 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 @@ -135,9 +135,9 @@ - + @@ -164,8 +164,15 @@ - +