diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index b23c4aef9..56362d5ee 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1,5 +1,6 @@ package org.nl.wms.ext.acs.service.impl; +import cn.hutool.core.lang.Assert; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; @@ -166,7 +167,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override public JSONObject actionFinishRequest2(JSONObject param) { - return null; + String taskCode = param.getString("task_code"); + Assert.notBlank(taskCode, "任务编码不能为空"); + SchBaseTask task = taskService.getByCode(taskCode); + AbstractTask factoryTask = taskFactory.getTask(task.getConfig_code()); + factoryTask.agvPickUpCompleted(task); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "取货完成请求成功!"); + return result; } @Override diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java index e72ed1599..49f367fd2 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/RawFoilPdaServiceImpl.java @@ -202,6 +202,7 @@ public class RawFoilPdaServiceImpl implements RawFoilPdaService { param.put("device_code", pointCode); param.put("workorder_id", rawOrder.getWorkorder_id()); param.put("ext_code", sbPoint.getExt_code()); + param.put("vehicle_code2", sbPoint.getExt_code()); param.put("create_mode", GeneralDefinition.PDA_CREATION); // 判断是否呼叫空辊 if (GeneralDefinition.YES.equals(isCallEmpty)) { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java index 8da87a384..64ae7563b 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/mps/service/impl/SlitterPdaServiceImpl.java @@ -118,7 +118,6 @@ public class SlitterPdaServiceImpl implements SlitterPdaService { // 获取对应任务 SchBaseTask task = taskService.getTaskByPointCodeX(null, pointCode, null, null); if (ObjectUtil.isEmpty(task)) { - log.error("该点查不到任务!"); throw new BadRequestException("该点查不到任务!"); } //下发ACS,执行AGV动作 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/service/impl/PdmBiSlittingproductionplanServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/service/impl/PdmBiSlittingproductionplanServiceImpl.java index 2d742b342..1701ebfcc 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/service/impl/PdmBiSlittingproductionplanServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/bi/service/impl/PdmBiSlittingproductionplanServiceImpl.java @@ -56,7 +56,7 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl query(Map whereJson, PageQuery page) { - IPage resultPage = new Page<>(page.getPage(), page.getSize()); + IPage resultPage = new Page<>(page.getPage() + 1, page.getSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (whereJson.containsKey("order_type")) { queryWrapper.eq(PdmBiSlittingproductionplan::getOrder_type, whereJson.get("order_type")); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java index 7c456df89..44668cc5e 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/IstIvtHotpointivtService.java @@ -89,6 +89,24 @@ public interface IstIvtHotpointivtService extends IService { * @return / */ List getNeedBakingPoint(); + + /** + * 获取不需要烘烤的点位 + * @return + */ + List getNoBakingPoint(); + + /** + * 获取烘烤完毕的点 + * @return + */ + List getBakedFinishPoint(); + + /** + * 获取需要出烘箱到暂存的点位 + * @return + */ + List getUnionBakedFinishPoint(); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.java index 9c1fad8bd..be969dd6f 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.java @@ -20,4 +20,10 @@ public interface StIvtHotpointivtMapper extends BaseMapper { JSONArray getHotDeviceInfoForAcs(String productArea); List getNeedBakingPoint(); + + List getNoBakingPoint(); + + List getBakedFinishPoint(); + + List getUnionBakedFinishPoint(); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.xml index 0c65ca1e6..3864b94ce 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/dao/mapper/StIvtHotpointivtMapper.xml @@ -34,13 +34,42 @@ AND ivt.product_area = #{productArea} + + + diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java index ec455a13b..5d30a22bd 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/hot/service/impl/StIvtHotpointivtServiceImpl.java @@ -1,26 +1,27 @@ package org.nl.wms.pdm.ivt.hot.service.impl; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; import org.nl.wms.pdm.ivt.hot.service.dao.dto.StIvtHotpointivtParam; import org.nl.wms.pdm.ivt.hot.service.dao.mapper.StIvtHotpointivtMapper; -import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; import org.nl.wms.storage_manage.ios.enums.IOSEnum; import org.springframework.beans.BeanUtils; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.nl.common.domain.query.PageQuery; +import java.util.List; import java.util.Map; import java.util.Set; -import java.util.List; /** @@ -45,13 +46,23 @@ public class StIvtHotpointivtServiceImpl extends ServiceImpl query(Map whereJson, PageQuery page) { - IPage resultPage = new Page<>(page.getPage(), page.getSize()); + String pointCode = ObjectUtil.isNotEmpty(whereJson.get("point_code")) + ? (String) whereJson.get("point_code") : null; + String pointStatus = ObjectUtil.isNotEmpty(whereJson.get("point_status")) + ? (String) whereJson.get("point_status") : null; + String productArea = ObjectUtil.isNotEmpty(whereJson.get("product_area")) + ? (String) whereJson.get("product_area") : null; + String isUsed = ObjectUtil.isNotEmpty(whereJson.get("is_used")) + ? (String) whereJson.get("is_used") : null; + String pointLocation = ObjectUtil.isNotEmpty(whereJson.get("point_location")) + ? (String) whereJson.get("point_location") : null; + IPage resultPage = new Page<>(page.getPage() + 1, page.getSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - // if (whereJson.containsKey("name")) { - // queryWrapper.like(StIvtHotpointivt::getName, whereJson.get("name")); - // } - //queryWrapper.eq(StIvtHotpointivt::getIs_delete,IOSEnum.IS_NOTANDYES.code("否")); - //queryWrapper.orderByDesc(StIvtHotpointivt::getName); + queryWrapper.like(ObjectUtil.isNotEmpty(pointCode), StIvtHotpointivt::getPoint_code, pointCode) + .eq(ObjectUtil.isNotEmpty(pointStatus), StIvtHotpointivt::getPoint_status, pointStatus) + .eq(ObjectUtil.isNotEmpty(productArea), StIvtHotpointivt::getProduct_area, productArea) + .eq(ObjectUtil.isNotEmpty(isUsed), StIvtHotpointivt::getIs_used, isUsed) + .eq(ObjectUtil.isNotEmpty(pointLocation), StIvtHotpointivt::getPoint_location, pointLocation); return stIvtHotpointivtMapper.selectPage(resultPage, queryWrapper); } @@ -137,6 +148,21 @@ public class StIvtHotpointivtServiceImpl extends ServiceImpl getNoBakingPoint() { + return stIvtHotpointivtMapper.getNoBakingPoint(); + } + + @Override + public List getBakedFinishPoint() { + return stIvtHotpointivtMapper.getBakedFinishPoint(); + } + + @Override + public List getUnionBakedFinishPoint() { + return stIvtHotpointivtMapper.getUnionBakedFinishPoint(); + } + /** * 获取实体基础信息 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/dao/dto/StIvtSbpointivtParam.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/dao/dto/StIvtSbpointivtParam.java index d7f64ed06..2aaf293ae 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/dao/dto/StIvtSbpointivtParam.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/dao/dto/StIvtSbpointivtParam.java @@ -23,7 +23,7 @@ public class StIvtSbpointivtParam extends BaseQuery { /** * 点位标识 */ - private Long point_id; + private String point_id; /** * 点位编码 */ @@ -55,7 +55,7 @@ public class StIvtSbpointivtParam extends BaseQuery { /** * 创建人 */ - private Long create_id; + private String create_id; /** * 创建人 */ @@ -67,7 +67,7 @@ public class StIvtSbpointivtParam extends BaseQuery { /** * 修改人 */ - private Long update_optid; + private String update_optid; /** * 修改人 */ diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/impl/StIvtSbpointivtServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/impl/StIvtSbpointivtServiceImpl.java index f97f0733a..b511cd91a 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/impl/StIvtSbpointivtServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/ivt/raw/service/impl/StIvtSbpointivtServiceImpl.java @@ -45,7 +45,7 @@ public class StIvtSbpointivtServiceImpl extends ServiceImpl query(Map whereJson, PageQuery page) { - IPage resultPage = new Page<>(page.getPage(), page.getSize()); + IPage resultPage = new Page<>(page.getPage() + 1, page.getSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (whereJson.containsKey("point_code")) { queryWrapper.like(StIvtSbpointivt::getPoint_code, whereJson.get("point_code")); @@ -96,10 +96,6 @@ public class StIvtSbpointivtServiceImpl extends ServiceImpl collect2 = hotPoints.stream().map(item -> NeedBakingDto .builder() .point_code(item.getPoint_code()) + .vehicle_code(item.getFull_vehicle_code()) .workorder_id(item.getWorkorder_id()) .update_time(item.getUpdate_time()).build()).collect(Collectors.toList()); List combinedList = new ArrayList<>(); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java new file mode 100644 index 000000000..6daf7d4f2 --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCreateOutHotTask.java @@ -0,0 +1,50 @@ +package org.nl.wms.quartz; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; +import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; +import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.tasks.hot.InHotTrussTask; +import org.nl.wms.sch.task_manage.tasks.hot.OutHotTrussTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @Author: lyd + * @Description: 自动创建出烘箱任务 + *

目的是由于有些进入烘烤的母卷,出烘箱发现没有位置了,转而存放到未开启的烘箱中去暂存,此时还没有质检, + * 因此需要再次出烘箱到达烘箱暂存位进行暂存,等待质检 + * @see org.nl.wms.sch.task_manage.tasks.hot.OutHotTrussTask + * @Date: 2024/8/29 + */ +@Slf4j +@Component +public class AutoCreateOutHotTask { + @Autowired + private IstIvtHotpointivtService hotpointivtService; + @Autowired + private OutHotTrussTask outHotTrussTask; + @Transactional(rollbackFor = Exception.class) + public void run() { + log.info("自动创建出烘箱任务开始执行..."); + // 获取烘箱内部状态:烘烤完毕暂存中(04)、03但不需要烘烤的点位 + List hotPoints = hotpointivtService.getUnionBakedFinishPoint(); + for (StIvtHotpointivt hotPoint : hotPoints) { + JSONObject taskParam = new JSONObject(); + taskParam.put("pointType", "03".equals(hotPoint.getPoint_status()) ? "3" : "4"); + taskParam.put("order_code", hotPoint.getContainer_name()); + taskParam.put("up_task_code", "-"); + taskParam.put("device_code", hotPoint.getPoint_code()); + taskParam.put("config_code", "OutHotTrussTask"); + taskParam.put("create_mode", GeneralDefinition.AUTO_CREATION); + // 满卷的收卷辊编码放在AGV任务的载具2上 + taskParam.put("vehicle_code", hotPoint.getFull_vehicle_code()); + outHotTrussTask.apply(taskParam); + log.info("烘箱【{}】出箱任务创建完成", hotPoint.getPoint_code()); + } + } +} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/TaskRetryCreat.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/TaskRetryCreat.java new file mode 100644 index 000000000..f83181a86 --- /dev/null +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/TaskRetryCreat.java @@ -0,0 +1,43 @@ +//package org.nl.wms.quartz; +// +//import cn.hutool.core.util.ObjectUtil; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import lombok.extern.slf4j.Slf4j; +//import org.nl.system.service.param.ISysParamService; +//import org.nl.system.service.param.dao.Param; +//import org.nl.wms.sch.task.service.ISchBaseTaskService; +//import org.nl.wms.sch.task.service.dao.SchBaseTask; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Component; +// +//import java.util.Arrays; +//import java.util.List; +//import java.util.stream.Collectors; +// +///** +// * @Author: lyd +// * @Description: 任务补偿机制:用于再次触发追加任务 +// * @Date: 2024/8/29 +// */ +//@Slf4j +//@Component +//public class TaskRetryCreat { +// +// @Autowired +// private ISchBaseTaskService taskService; +// @Autowired +// private ISysParamService paramService; +// +// public void run() { +// // 获取系统参数中需要补偿的任务配置 +// Param param = paramService.findByCode("TASK-RETRY"); +// if (ObjectUtil.isEmpty(param) || ObjectUtil.isEmpty(param.getValue())) { +// log.warn("系统参数【TASK-RETRY】不存在!"); +// return; +// } +// List configs = Arrays.stream(param.getValue().split("[,,]")).collect(Collectors.toList()); +// LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); +// lam.in(SchBaseTask::getConfig_code, configs) +// .eq(SchBaseTask::get) +// } +//} diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/dto/NeedBakingDto.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/dto/NeedBakingDto.java index ddc5081c5..a7e63c2a1 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/dto/NeedBakingDto.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/dto/NeedBakingDto.java @@ -19,4 +19,5 @@ public class NeedBakingDto { private String point_code; private String workorder_id; private String update_time; + private String vehicle_code; } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java index df983b09d..4bd9ec5b4 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/ISchBaseTaskService.java @@ -131,6 +131,8 @@ public interface ISchBaseTaskService extends IService { /** * 根据点位获取对应的任务 + *

查询的任务状态是大于 {@link TaskStatus#SURE_END} 小于等于 {@link TaskStatus#PICK_UP_COMPLETED} + * 但是不等于 {@link TaskStatus#FINISHED}

* @param p1 取货点1 * @param p2 放货点1 * @param p3 取货点2 diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java index 81023518e..9987469c2 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/dao/mapper/SchBaseTaskMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dto.SchBaseTaskQuery; +import java.util.Collection; import java.util.List; /** @@ -13,7 +14,7 @@ import java.util.List; **/ public interface SchBaseTaskMapper extends BaseMapper { - IPage selectPageLeftJoin(IPage pages, SchBaseTaskQuery whereJson, List collect); + IPage selectPageLeftJoin(IPage pages, SchBaseTaskQuery whereJson, Collection collect); List checkHaveTask(String code); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java index eaca122c9..b2dc7f2f7 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -54,50 +54,24 @@ public class SchBaseTaskServiceImpl extends ServiceImpl queryAll(SchBaseTaskQuery whereJson, PageQuery page) { - List collect = ObjectUtil.isNotEmpty(whereJson.getMore_task_status()) - ? Arrays.stream(whereJson.getMore_task_status().split(",")).collect(Collectors.toList()) : null; + Set collect = ObjectUtil.isNotEmpty(whereJson.getMore_task_status()) + ? Arrays.stream(whereJson.getMore_task_status().split(",")).collect(Collectors.toSet()) : null; if (collect != null) { if (collect.contains(TaskStatus.UNFINISHED.getCode())) { - collect = null; - whereJson.setUnFinished(TaskStatus.EXECUTING.getCode()); + collect.removeIf(s -> (s.equals("07") || s.equals("08") || s.equals("09"))); + collect.add(TaskStatus.PICK_UP_COMPLETED.getCode()); + collect.add(TaskStatus.APPLY.getCode()); + collect.add(TaskStatus.CREATED.getCode()); + collect.add(TaskStatus.SURE_START.getCode()); + collect.add(TaskStatus.SURE_END.getCode()); + collect.add(TaskStatus.START_AND_POINT.getCode()); + collect.add(TaskStatus.ISSUE.getCode()); + collect.add(TaskStatus.EXECUTING.getCode()); } } IPage pages = new Page<>(page.getPage() + 1, page.getSize()); pages = schBaseTaskMapper.selectPageLeftJoin(pages, whereJson, collect); return pages; -// String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) -// ? whereJson.get("task_code").toString() : null; -// String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) -// ? whereJson.get("vehicle_code").toString() : null; -// String point_code = ObjectUtil.isNotEmpty(whereJson.get("point_code")) -// ? whereJson.get("point_code").toString() : null; -// String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) -// ? whereJson.get("begin_time").toString() : null; -// String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) -// ? whereJson.get("end_time").toString() : null; -// String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) -// ? whereJson.get("more_task_status").toString() : null; -// List collect = ObjectUtil.isNotEmpty(more_task_status) -// ? Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()) : null; -// String unFinished = null; -// if (collect != null) { -// if (collect.contains(TaskStatus.UNFINISHED.getCode())) { -// collect = null; -// unFinished = TaskStatus.EXECUTING.getCode(); -// } -// } -// LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); -// lam.eq(ObjectUtil.isNotEmpty(task_code), SchBaseTask::getTask_code, task_code) -// .eq(ObjectUtil.isNotEmpty(vehicle_code), SchBaseTask::getVehicle_code, vehicle_code) -// .eq(ObjectUtil.isNotEmpty(point_code), SchBaseTask::getPoint_code1, point_code) -// .ge(ObjectUtil.isNotEmpty(begin_time), SchBaseTask::getCreate_time, begin_time) -// .le(ObjectUtil.isNotEmpty(end_time), SchBaseTask::getCreate_time, end_time) -// .in(ObjectUtil.isNotEmpty(collect), SchBaseTask::getTask_status, collect) -// .le(ObjectUtil.isNotEmpty(unFinished), SchBaseTask::getTask_status, unFinished) -// .orderByDesc(SchBaseTask::getUpdate_time); -// IPage pages = new Page<>(page.getPage() + 1, page.getSize()); -// schBaseTaskMapper.selectPage(pages, lam); -// return pages; } @@ -226,7 +200,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl= Integer.parseInt(TaskStatus.FINISHED.getCode())) { + if (Integer.parseInt(taskOne.getTask_status()) >= Integer.parseInt(TaskStatus.FINISHED.getCode()) + && Integer.parseInt(taskOne.getTask_status()) != Integer.parseInt(TaskStatus.PICK_UP_COMPLETED.getCode())) { throw new BadRequestException(LangProcess.msg("task_statusWrong")); } // 根据配置去工厂类获得类对象 @@ -275,7 +250,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpltodo: 业务需求待定!!!

* @see OutHotTrussTask */ +@Deprecated @Slf4j @Component(value = "AutoOutHotTrussTask") public class AutoOutHotTrussTask extends AbstractTask { diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotTrussTask.java index ad522f5ff..a74fe6a10 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/hot/OutHotTrussTask.java @@ -1,8 +1,12 @@ package org.nl.wms.sch.task_manage.tasks.hot; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; +import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; +import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; import org.nl.wms.pdm.ivt.hot.service.IstIvtHotpointivtService; import org.nl.wms.pdm.ivt.hot.service.dao.StIvtHotpointivt; import org.nl.wms.sch.point.service.ISchBasePointService; @@ -13,6 +17,7 @@ import org.nl.wms.sch.task_manage.AbstractTask; import org.nl.wms.sch.task_manage.TaskStatus; import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; +import org.nl.wms.util.PointUtils; import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -20,8 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; -import static org.nl.wms.util.PointUtils.hotClearPoint; -import static org.nl.wms.util.PointUtils.setUpdateByType; +import static org.nl.wms.util.PointUtils.*; import static org.nl.wms.util.TaskUtils.checkTaskOptionStatus; import static org.nl.wms.util.TaskUtils.setUpdateByPC; import static org.nl.wms.util.TaskUtils.setUpdateByType; @@ -29,6 +33,7 @@ import static org.nl.wms.util.TaskUtils.setUpdateByType; /** * @Author: lyd * @Description: 创建出烘箱任务 + *

自动创建与ACS申请公用的任务类 * @Date: 2024/8/9 */ @Slf4j @@ -41,6 +46,8 @@ public class OutHotTrussTask extends AbstractTask { private IstIvtHotpointivtService hotpointivtService; @Autowired private ISchBaseTaskService taskService; + @Autowired + private IpdmBiRawfoilworkorderService rawfoilworkorderService; @Override public void create() throws BadRequestException { @@ -49,20 +56,39 @@ public class OutHotTrussTask extends AbstractTask { @Override public void createCompletion(SchBaseTask task) { TaskUtils.taskLock("A1-HXZC", () -> { - // 从烘箱暂存位找一个空位 - List hotDjwList = pointService.getHotNotTaskPoint("A1", "A1-HXZC", - "4", "1"); - if (hotDjwList.size() == 0) { - throw new BadRequestException("烘箱烘烤完毕的暂存位不够!"); - } String requestParam = task.getRequest_param(); JSONObject requestObj = JSONObject.parseObject(requestParam); String startPoint = task.getPoint_code1(); + String pointType = requestObj.getString("pointType"); + // 烘箱起点位置 StIvtHotpointivt hotPoint = hotpointivtService.getPointByCode(startPoint, false); + // 从烘箱暂存位找一个空位 + List hotDjwList = pointService.getHotNotTaskPoint("A1", "A1-HXZC", + ObjectUtil.isNotEmpty(pointType) ? pointType : "4", "1"); + if (hotDjwList.size() == 0) { + // 如果是在烘箱中的,那就不需要创建入其他未开启的烘箱 + if ("03".equals(hotPoint.getPoint_status()) || "04".equals(hotPoint.getPoint_status())) { + log.info("已经是在烘箱暂存中,无需创建到烘箱的点位"); + return; + } + requestObj.put("is_flag", "1"); + // 找一个没开启的烘箱??? + PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(hotPoint.getWorkorder_id()); + List notTaskHotOven = hotpointivtService.getNotTaskHotOven(order.getRoll_type(), + "0"); + // 没有位置,自然需要报错 + if (notTaskHotOven.size() == 0) { + throw new BadRequestException("烘箱烘烤完毕的暂存位不够!"); + } + StIvtHotpointivt point = notTaskHotOven.get(0); + task.setPoint_code2(point.getPoint_code()); + } else { + requestObj.put("is_flag", "0"); + SchBasePoint point = hotDjwList.get(0); + task.setPoint_code2(point.getPoint_code()); + } requestObj.put("workorder_id", hotPoint.getWorkorder_id()); - SchBasePoint point = hotDjwList.get(0); task.setVehicle_code(hotPoint.getFull_vehicle_code()); - task.setPoint_code2(point.getPoint_code()); task.setRequest_param(JSONObject.toJSONString(requestObj)); // 保存任务参数 task.setHandle_class(THIS_CLASS); @@ -76,17 +102,32 @@ public class OutHotTrussTask extends AbstractTask { @Transactional(rollbackFor = Exception.class) public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { checkTaskOptionStatus(taskObj); - // 出烘箱后,终点状态应改成4:待分切 + JSONObject request = JSONObject.parseObject(taskObj.getRequest_param()); + // 出烘箱后,判断工单,如果烘烤,终点状态应改成3:待质检;不烘烤,设置4:待分切 String startPointCode = taskObj.getPoint_code1(); String endPointCode = taskObj.getPoint_code2(); StIvtHotpointivt startPoint = hotpointivtService.getPointByCode(startPointCode, false); - SchBasePoint endPoint = pointService.getById(endPointCode); - // 终点设置值 - endPoint.setVehicle_code(startPoint.getFull_vehicle_code()); - endPoint.setSource_id(startPoint.getWorkorder_id()); - endPoint.setPoint_status("4"); - setUpdateByType(endPoint, taskFinishedType); - pointService.updateById(endPoint); + if ("0".equals(request.getString("is_flag"))) { + PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(request.getString("workorder_id")); + SchBasePoint endPoint = pointService.getById(endPointCode); + // 终点设置值 + endPoint.setVehicle_code(startPoint.getFull_vehicle_code()); + endPoint.setSource_id(ObjectUtil.isNotEmpty(startPoint.getWorkorder_id()) + ? startPoint.getWorkorder_id() + : request.getString("workorder_id")); + endPoint.setPoint_status("0".equals(order.getIs_baking()) ? "4" : "3"); + PointUtils.setUpdateByType(endPoint, taskFinishedType); + pointService.updateById(endPoint); + } else { + PdmBiRawfoilworkorder order = rawfoilworkorderService.getById(startPoint.getWorkorder_id()); + // 状态:04:烘烤完毕暂存 + StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(endPointCode, false); + hotpointivt.setPoint_status("04"); + hotpointivt.setContainer_name(order.getContainer_name()); + hotpointivt.setInstorage_time(DateUtil.now()); + setHxUpdateByType(hotpointivt, taskFinishedType); + hotpointivtService.updateById(hotpointivt); + } // 起点清空 hotClearPoint(startPoint, taskFinishedType); taskObj.setTask_status(TaskStatus.FINISHED.getCode()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java index 6ddaa1689..ec634f8f1 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/raw/RawDownAGVTask.java @@ -7,6 +7,8 @@ import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.pdm.bi.dao.PdmBiRawfoilworkorder; import org.nl.wms.pdm.bi.service.IpdmBiRawfoilworkorderService; +import org.nl.wms.pdm.ivt.raw.service.IstIvtSbpointivtService; +import org.nl.wms.pdm.ivt.raw.service.dao.StIvtSbpointivt; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task.service.ISchBaseTaskService; @@ -44,6 +46,8 @@ public class RawDownAGVTask extends AbstractTask { @Autowired private IpdmBiRawfoilworkorderService rawfoilworkorderService; @Autowired + private IstIvtSbpointivtService sbpointivtService; + @Autowired private RedissonClient redissonClient; @Override public void create() throws BadRequestException { @@ -70,6 +74,9 @@ public class RawDownAGVTask extends AbstractTask { SchBasePoint hxPoint = hxPoints.get(0); if ("1".equals(flag)) { // 创建四点任务:先去收卷辊出口在到生箔位,在从生箔到烘箱对接位 + StIvtSbpointivt pointCode = sbpointivtService.getByPointCode(deviceCode, false); + // 标记一下是哪个生箔机的收卷辊 + task.setVehicle_code2(pointCode.getExt_code()); task.setPoint_code1(startPointCode); task.setPoint_code2(deviceCode + "_K"); task.setPoint_code3(deviceCode + "_M"); diff --git a/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/hontPoint.vue b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/hontPoint.vue new file mode 100644 index 000000000..9f1501a04 --- /dev/null +++ b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/hontPoint.vue @@ -0,0 +1,687 @@ + + + + + diff --git a/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/index.vue b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/index.vue index 6a8e5de58..8604352f3 100644 --- a/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/index.vue +++ b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/index.vue @@ -2,11 +2,12 @@

- {{ $t('Hot.pan1.title') }} + {{ $t('Hot.pan1.title') }} - - + + {{ $t('Hot.pan2.title') }} +
@@ -15,9 +16,10 @@ diff --git a/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/locale/zh.js b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/locale/zh.js index 1c07f44a8..c8d6be9b8 100644 --- a/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/locale/zh.js +++ b/lms2/nladmin-ui/src/views/wms/pdm/ivt/hotpointivt/locale/zh.js @@ -39,7 +39,7 @@ export default { } }, 'pan2': { - 'title': '烘箱任务', + 'title': '烘箱暂存点位信息', 'table': { 'bill_code': '单据编码', 'container_name': '母卷号',