no message
parent
da421426d0
commit
6d64ca5662
|
|
@ -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不为空时才走动态表名处理逻辑,否则返回原始表名
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -66,8 +66,8 @@ public class InventoryLogServiceImpl extends ServiceImpl<InventoryLogMapper, Inv
|
|||
//出库分配
|
||||
inventoryLog.setLogType(InventoryLogEnum.ALLOC.getValue());
|
||||
//实际数量不变
|
||||
inventoryLog.setBeforeAllocatedQty(BigDecimalUtil.subtract(inventory.getQueuedQty(), AllocatedQty, 0));
|
||||
inventoryLog.setAfterAllocatedQty(inventory.getQueuedQty());
|
||||
inventoryLog.setBeforeAllocatedQty(inventory.getQuantity());
|
||||
inventoryLog.setAfterAllocatedQty(AllocatedQty);
|
||||
addInventoryLog(inventoryLog);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,8 +81,8 @@ public class AllocateJob implements Job {
|
|||
|
||||
//生成出库AGV出库任务
|
||||
long startTime2 = System.currentTimeMillis();
|
||||
List<Task> taskList = taskMapper.queryUnallocatedTask();
|
||||
iTaskService.generateAgvTask(taskList);
|
||||
|
||||
iTaskService.generateAgvTask();
|
||||
long endTime2 = System.currentTimeMillis();
|
||||
log.info("生成AGV出库任务耗时:{}ms", endTime2 - startTime2);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<String> allocatedPick() {
|
||||
List<Long> pickList = pickMapper.queryUnallocatedPick();
|
||||
pickService.allocatePick2(pickList);
|
||||
List<Task> taskList = taskMapper.queryUnallocatedTask();
|
||||
taskService.generateAgvTask(taskList);
|
||||
taskService.generateAgvTask();
|
||||
return Result.OK("操作成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<Task> {
|
|||
*
|
||||
* @return List<Pick>
|
||||
*/
|
||||
@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<Task> queryUnallocatedTask();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.cpte.modules.shipping.mapper.TaskMapper">
|
||||
|
||||
</mapper>
|
||||
|
|
@ -55,6 +55,6 @@ public interface ITaskService extends IService<Task> {
|
|||
/**
|
||||
* 根据Task集合生成AGV出库任务
|
||||
*/
|
||||
void generateAgvTask(List<Task> taskList);
|
||||
void generateAgvTask();
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<TaskMapper, Task> implements ITaskService {
|
||||
|
||||
@Autowired
|
||||
private TaskMapper taskMapper;
|
||||
|
||||
@Autowired
|
||||
private IAgvTaskService agvTaskService;
|
||||
|
||||
|
|
@ -110,7 +116,8 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void generateAgvTask(List<Task> taskList) {
|
||||
public void generateAgvTask() {
|
||||
List<Task> taskList = taskMapper.queryUnallocatedTask();
|
||||
if (CollectionUtils.isEmpty(taskList)) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -128,10 +135,12 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements IT
|
|||
Map<TaskGroupKey, AgvTask> groupToAgvTaskMap = new HashMap<>();
|
||||
for (Map.Entry<TaskGroupKey, List<Task>> entry : taskGroupMap.entrySet()) {
|
||||
TaskGroupKey key = entry.getKey();
|
||||
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)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue