diff --git a/cpte-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java b/cpte-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java index a07a8f0..ac22025 100644 --- a/cpte-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java +++ b/cpte-boot-base-core/src/main/java/org/jeecg/config/mybatis/MybatisPlusSaasConfig.java @@ -2,6 +2,7 @@ package org.jeecg.config.mybatis; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.parser.JsqlParserGlobal; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler; import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor; @@ -13,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import me.zhyd.oauth.log.Log; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.parser.CCJSqlParserUtil; import org.jeecg.common.config.TenantContext; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.TenantConstant; @@ -159,6 +161,9 @@ public class MybatisPlusSaasConfig { private DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor() { DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor(); dynamicTableNameInnerInterceptor.setTableNameHandler((sql, tableName) -> { + /* if (sql.contains("FOR UPDATE")) { + return tableName; + }*/ //获取需要动态解析的表名 String dynamicTableName = ThreadLocalDataHelper.get(CommonConstant.DYNAMIC_TABLE_NAME); //当dynamicTableName不为空时才走动态表名处理逻辑,否则返回原始表名 diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/agvTask/controller/AgvTaskController.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/agvTask/controller/AgvTaskController.java index 4ae5814..1a8eae3 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/agvTask/controller/AgvTaskController.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/agvTask/controller/AgvTaskController.java @@ -1,47 +1,20 @@ package org.cpte.modules.agvTask.controller; import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; - import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -import org.cpte.modules.agvTask.mapper.AgvTaskMapper; -import org.cpte.modules.constant.enums.AgvStatusEnum; -import org.cpte.modules.constant.enums.AgvVendorEnum; -import org.cpte.modules.hikAgv.service.IHikAgvService; -import org.cpte.modules.shipping.entity.Task; -import org.cpte.modules.tesAgv.service.ITesAgvService; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; -import org.jeecg.common.system.query.QueryRuleEnum; -import org.jeecg.common.util.oConvertUtils; import org.cpte.modules.agvTask.entity.AgvTask; import org.cpte.modules.agvTask.service.IAgvTaskService; - import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; - -import org.jeecg.config.shiro.IgnoreAuth; -import org.jeecgframework.poi.excel.ExcelImportUtil; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.entity.ImportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.jeecg.common.system.base.controller.JeecgController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import org.jeecg.common.aspect.annotation.AutoLog; diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/inventoryLog/service/impl/InventoryLogServiceImpl.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/inventoryLog/service/impl/InventoryLogServiceImpl.java index e264280..0e2be41 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/inventoryLog/service/impl/InventoryLogServiceImpl.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/inventoryLog/service/impl/InventoryLogServiceImpl.java @@ -66,8 +66,8 @@ public class InventoryLogServiceImpl extends ServiceImpl taskList = taskMapper.queryUnallocatedTask(); - iTaskService.generateAgvTask(taskList); + + iTaskService.generateAgvTask(); long endTime2 = System.currentTimeMillis(); log.info("生成AGV出库任务耗时:{}ms", endTime2 - startTime2); } diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/controller/PickController.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/controller/PickController.java index 4cf2599..de5a23a 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/controller/PickController.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/controller/PickController.java @@ -9,9 +9,7 @@ import java.util.Map; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; import org.cpte.modules.constant.GeneralConstant; -import org.cpte.modules.saiWms.request.InboundRequest; import org.cpte.modules.serialNumber.PickSerialNumberRule; import org.cpte.modules.shipping.entity.Task; import org.cpte.modules.shipping.mapper.PickMapper; @@ -290,8 +288,7 @@ public class PickController { public Result allocatedPick() { List pickList = pickMapper.queryUnallocatedPick(); pickService.allocatePick2(pickList); - List taskList = taskMapper.queryUnallocatedTask(); - taskService.generateAgvTask(taskList); + taskService.generateAgvTask(); return Result.OK("操作成功!"); } diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/TaskMapper.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/TaskMapper.java index 5a38f1f..12b4014 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/TaskMapper.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/TaskMapper.java @@ -6,6 +6,7 @@ import org.cpte.modules.shipping.entity.Pick; import org.cpte.modules.shipping.entity.Task; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import javax.persistence.LockModeType; import java.util.List; /** @@ -20,6 +21,6 @@ public interface TaskMapper extends BaseMapper { * * @return List */ - @Select("select * from data_task where agv_task_id is null order by create_time") + @Select("SELECT t.* FROM data_task t WHERE t.agv_task_id IS NULL ORDER BY t.create_time ASC FOR UPDATE ") List queryUnallocatedTask(); } diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/xml/TaskMapper.xml b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/xml/TaskMapper.xml index d97e630..386f213 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/xml/TaskMapper.xml +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/mapper/xml/TaskMapper.xml @@ -1,5 +1,4 @@ - \ No newline at end of file diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/ITaskService.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/ITaskService.java index 85fcd9a..e3617fc 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/ITaskService.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/ITaskService.java @@ -55,6 +55,6 @@ public interface ITaskService extends IService { /** * 根据Task集合生成AGV出库任务 */ - void generateAgvTask(List taskList); + void generateAgvTask(); } diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/TaskServiceImpl.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/TaskServiceImpl.java index e331480..211261a 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/TaskServiceImpl.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/TaskServiceImpl.java @@ -1,5 +1,7 @@ package org.cpte.modules.shipping.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.shiro.SecurityUtils; import org.cpte.modules.agvTask.entity.AgvTask; @@ -31,8 +33,12 @@ import java.util.stream.Collectors; * @Version: V1.0 */ @Service +@Slf4j public class TaskServiceImpl extends ServiceImpl implements ITaskService { + @Autowired + private TaskMapper taskMapper; + @Autowired private IAgvTaskService agvTaskService; @@ -110,7 +116,8 @@ public class TaskServiceImpl extends ServiceImpl implements IT @Override @Transactional(rollbackFor = Exception.class) - public void generateAgvTask(List taskList) { + public void generateAgvTask() { + List taskList = taskMapper.queryUnallocatedTask(); if (CollectionUtils.isEmpty(taskList)) { return; } @@ -128,10 +135,12 @@ public class TaskServiceImpl extends ServiceImpl implements IT Map groupToAgvTaskMap = new HashMap<>(); for (Map.Entry> entry : taskGroupMap.entrySet()) { TaskGroupKey key = entry.getKey(); - if(!groupToAgvTaskMap.containsKey(key)){ + log.info("任务分组:{}", key); + if (!groupToAgvTaskMap.containsKey(key)) { AgvTask agvTask = agvTaskService.bulidAgvTask(null, key.getStockCode(), key.getFromPointCode(), key.getToPointCode(), null, BusinessTypeEnum.OUTBOUND.getValue(), AgvVendorEnum.TES.getValue()); createToAgvTaskList.add(agvTask); groupToAgvTaskMap.put(key, agvTask); // 建立映射 + log.info("创建AGV任务:{}", agvTask); } } if (CollectionUtils.isNotEmpty(createToAgvTaskList)) {