代码更新

This commit is contained in:
梁州 2024-07-17 17:11:49 +08:00
parent d3b1445cda
commit 4fc4a7e0aa
23 changed files with 377 additions and 38 deletions

View File

@ -20,6 +20,11 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import static com.wms.utils.StringUtils.convertJsonString; import static com.wms.utils.StringUtils.convertJsonString;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -72,7 +77,14 @@ public class JobComponent {
* 执行备料任务的轮询处理站台任务 * 执行备料任务的轮询处理站台任务
*/ */
// @Scheduled(fixedDelay = 2000) // @Scheduled(fixedDelay = 2000)
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
public void checkForOrders() { public void checkForOrders() {
try {
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
// 轮询工作站台判断是否需要下发任务 // 轮询工作站台判断是否需要下发任务
List<Stand> stands = standService.list(new LambdaQueryWrapper<Stand>() List<Stand> stands = standService.list(new LambdaQueryWrapper<Stand>()
.eq(Stand::getStandType, 2)); .eq(Stand::getStandType, 2));

View File

@ -0,0 +1,28 @@
package com.wms.entity.app.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 工单工位Dto
*/
@Data
public class WorkCenterAndOrderDto {
/**
* 工单
*/
@JsonProperty("workOrder")
private String workOrder;
/**
* 小工位
*/
@JsonProperty("workCenter")
private String workCenter;
/**
* 开工日期
*/
@JsonProperty("startDate")
private LocalDateTime startDate;
}

View File

@ -1,6 +1,7 @@
package com.wms.entity.table; package com.wms.entity.table;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -10,6 +11,11 @@ import lombok.Data;
@Data @Data
@TableName(value = "tbl_app_e_location_config", autoResultMap = true) @TableName(value = "tbl_app_e_location_config", autoResultMap = true)
public class ELocationConfig { public class ELocationConfig {
/**
* 电子标签库位
*/
@TableId("e_location_id")
private String eLocationId;
/** /**
* 工站 * 工站
*/ */
@ -26,8 +32,8 @@ public class ELocationConfig {
@TableField("work_center") @TableField("work_center")
private String workCenter; private String workCenter;
/** /**
* 电子标签库位 * 盒子号
*/ */
@TableField("e_location_id") @TableField("order_box_no")
private String eLocationId; private String orderBoxNo;
} }

View File

@ -30,6 +30,8 @@ public class ETagLocation {
private Integer sequenceId; private Integer sequenceId;
/** /**
* 电子标签状态 * 电子标签状态
* 0可用
* 1不可用
*/ */
@TableField("e_location_status") @TableField("e_location_status")
private Integer eLocationStatus; private Integer eLocationStatus;

View File

@ -76,9 +76,10 @@ public class KateOrders {
/** /**
* 工单状态 * 工单状态
* 0未开始 * 0未开始
* 1已呼叫料箱 * 1已生成任务
* 2正在拣选 * 2已呼叫料箱
* 3拣选完成 * 3正在拣选
* 4拣选完成
*/ */
@TableField("order_status") @TableField("order_status")
private Integer orderStatus; private Integer orderStatus;

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* 工作站台-工单-工位的工作流 * 工作站台-工单-工位的工作流
@ -18,6 +19,11 @@ public class WorkFlow {
*/ */
@TableId("work_flow_id") @TableId("work_flow_id")
private String workFlowId; private String workFlowId;
/**
* 外键工单表id
*/
@TableField("order_id")
private String orderId;
/** /**
* 工作站台 * 工作站台
*/ */
@ -64,4 +70,14 @@ public class WorkFlow {
*/ */
@TableField("work_status") @TableField("work_status")
private Integer workStatus; private Integer workStatus;
/**
* 任务创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 任务完成时间
*/
@TableField("finish_time")
private LocalDateTime finishTime;
} }

View File

@ -8,13 +8,13 @@ public interface IWorkService {
* 创建工作 * 创建工作
* @param workStation 工作站台 * @param workStation 工作站台
*/ */
void createWork(String workStation); void createWork(String workStation) throws Exception;
/** /**
* 执行工作 * 执行工作
* @param workStation 工作站台 * @param workStation 工作站台
*/ */
void doWork(String workStation); void doWork(String workStation) throws Exception;
/** /**
* 完成工作 * 完成工作

View File

@ -1,15 +1,23 @@
package com.wms.service.business.serviceImplements; package com.wms.service.business.serviceImplements;
import com.wms.entity.table.WorkStationConfig; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wms.service.WorkFlowService; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.wms.service.WorkStationConfigService; import com.wms.entity.app.dto.WorkCenterAndOrderDto;
import com.wms.entity.table.*;
import com.wms.service.*;
import com.wms.service.business.IWorkService; import com.wms.service.business.IWorkService;
import com.wms.utils.StringUtils;
import com.wms.utils.WmsUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.math.BigDecimal;
import java.util.List; import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.wms.config.InitLocalConfig.configMap;
/** /**
* 工作服务接口的实现 * 工作服务接口的实现
@ -19,47 +27,268 @@ import java.util.List;
public class WorkServiceImplements implements IWorkService { public class WorkServiceImplements implements IWorkService {
private final WorkStationConfigService workStationConfigService;// 工作站配置服务 private final WorkStationConfigService workStationConfigService;// 工作站配置服务
private final WorkFlowService workFlowService;// 工作流服务 private final WorkFlowService workFlowService;// 工作流服务
private final KateDBSService kateDBSService;// DBS服务
private final KateOrdersService kateOrdersService;// 工单服务
private final ETagLocationService eTagLocationService;// 电子标签服务
private final ELocationConfigService eLocationConfigService;// 电子标签配置服务
private final GoodsToStationService goodsToStationService;// 站台要料服务
private final OutsideVehiclesService outsideVehiclesService;// 流转中的箱子服务
private final List<String> workCreatingStations = new ArrayList<>();// 当前正在创建任务的站台
private final List<String> workDoingStations = new ArrayList<>();// 当前正在执行任务的站台
@Override @Override
public void createWork(String workStation) { public void createWork(String workStation) throws Exception {
// 当前站台分配的工位 if (workCreatingStations.contains(workStation)) {
List<WorkStationConfig> currentStationWorkConfigs = new ArrayList<>(); // 当前站台正在创建任务
// 先找NWL机型
findNwl(workStation, currentStationWorkConfigs);
if (currentStationWorkConfigs.isEmpty()) {
// 找非NWL机型
findNotNwl(workStation, currentStationWorkConfigs);
}
// 然后判断是否还是为空
if (currentStationWorkConfigs.isEmpty()) {
return; return;
} else {
// 添加站台
workCreatingStations.add(workStation);
}
if (StringUtils.isEmpty(workStation)) {
// 站台号为空
return;
}
try {
// 先查看当前站台已经生成的工作流是否为空
List<WorkFlow> currentWorkFlowList = workFlowService.list(new LambdaQueryWrapper<WorkFlow>()
.eq(WorkFlow::getWorkStation, workStation));
// 当前站台的工作流中还存在其他任务
if (currentWorkFlowList != null && !currentWorkFlowList.isEmpty()) {
return;
}
// 当前站台分配的工位
List<WorkFlow> currentStationWorkFlows = new ArrayList<>();
// 先找NWL机型
findWorks(workStation, currentStationWorkFlows, "NWL");
if (currentStationWorkFlows.isEmpty()) {
// 找非NWL机型
findWorks(workStation, currentStationWorkFlows, "NOT_NWL");
}
// 如果当前站台有任务
if (!currentStationWorkFlows.isEmpty()) {
// 将工作流列表添加进数据库
workFlowService.saveBatch(currentStationWorkFlows);
// 获得工单列表
List<String> workOrderList = new ArrayList<>();
// 获得工单以及小工位列表
List<String> boxNoList = new ArrayList<>();
// 要料Map
Map<String, BigDecimal> needGoodsMap = new HashMap<>();
for (WorkFlow tempWorkflow : currentStationWorkFlows) {
// 添加工单
if (!workOrderList.contains(tempWorkflow.getWorkOrder())) {
workOrderList.add(tempWorkflow.getWorkOrder());
}
// 添加盒子配置
String boxNo = tempWorkflow.getWorkOrder() + "-" + tempWorkflow.getWorkCenter();
if (!boxNoList.contains(boxNo)) {
boxNoList.add(boxNo);
}
// 添加要料信息
if (!needGoodsMap.containsKey(tempWorkflow.getGoodsId())) {
// 添加物料信息
needGoodsMap.put(tempWorkflow.getGoodsId(), tempWorkflow.getNeedNum());
} else {
// 增加需求数量
needGoodsMap.replace(tempWorkflow.getGoodsId(), needGoodsMap.get(tempWorkflow.getGoodsId()).add(tempWorkflow.getNeedNum()));
}
}
// 站台要料
List<GoodsToStation> goodsToStationList = new ArrayList<>();
for (String goodsId : needGoodsMap.keySet()) {
GoodsToStation goodsToStation = new GoodsToStation();
goodsToStation.setGoodsId(goodsId);
goodsToStation.setWorkStation(workStation);
goodsToStation.setDistributeStatus(0);
goodsToStation.setTotalNum(needGoodsMap.get(goodsId));
goodsToStationList.add(goodsToStation);
}
// 将站台要料列表存进数据库
goodsToStationService.saveBatch(goodsToStationList);
// 更新工单表
List<String> orderIds = currentStationWorkFlows.stream().map(WorkFlow::getOrderId).toList();
kateOrdersService.update(new LambdaUpdateWrapper<KateOrders>()
.set(KateOrders::getOrderStatus, 1)
.in(KateOrders::getOrderId, orderIds)
.eq(KateOrders::getOrderStatus, 0));
// 更新dbs表
kateDBSService.update(new LambdaUpdateWrapper<KateDBS>()
.set(KateDBS::getDbsStatus, 1)
.in(KateDBS::getWorkOrder, workOrderList)
.eq(KateDBS::getDbsStatus, 0));
// 电子标签库位配置
List<ELocationConfig> eLocationConfigList = new ArrayList<>();
// 查找到当前站台所有可用的电子标签
List<ETagLocation> eTagLocationList = eTagLocationService.list(new LambdaQueryWrapper<ETagLocation>()
.eq(ETagLocation::getWorkStation, workStation)
.eq(ETagLocation::getELocationStatus, 0)
.orderByAsc(ETagLocation::getSequenceId));
if (eTagLocationList.isEmpty() || eTagLocationList.size() < boxNoList.size()) {
throw new Exception("站台:" + workStation + "没有足够可用的电子标签位!");
}
for (ETagLocation eTagLocation : eTagLocationList) {
if (!boxNoList.isEmpty()) {
String tempBoxNo = boxNoList.get(0);
ELocationConfig eLocationConfig = new ELocationConfig();
eLocationConfig.setWorkOrder(tempBoxNo.split("-")[0]);
eLocationConfig.setWorkCenter(tempBoxNo.split("-")[1]);
eLocationConfig.setWorkStation(workStation);
eLocationConfig.setELocationId(eTagLocation.getELocationId());
eLocationConfig.setOrderBoxNo(tempBoxNo);
// 添加配置
eLocationConfigList.add(eLocationConfig);
// 移除已经分配的盒子
boxNoList.remove(tempBoxNo);
}
}
// 将电子标签库位配置存进数据库
eLocationConfigService.saveBatch(eLocationConfigList);
}
} catch (Exception e) {
throw new Exception("创建站台:" + workStation + "工作发生异常!");
} finally {
// 当前站台创建任务完成
workCreatingStations.remove(workStation);
} }
} }
@Override @Override
public void doWork(String workStation) { public void doWork(String workStation) throws Exception {
if (workDoingStations.contains(workStation)) {
// 当前站台正在创建任务
return;
} else {
// 添加站台
workDoingStations.add(workStation);
}
try {
// 查找当前站台未开始的工作流
List<WorkFlow> currentWorkFlowList = workFlowService.list(new LambdaQueryWrapper<WorkFlow>()
.eq(WorkFlow::getWorkStation, workStation)
.eq(WorkFlow::getWorkStatus, 0));
// 没有可做的任务
if (currentWorkFlowList == null || currentWorkFlowList.isEmpty()) {
return;
}
// 查站台要料表---未分配以及分配但未完全分配
List<GoodsToStation> goodsToStationList = goodsToStationService.list(new LambdaQueryWrapper<GoodsToStation>()
.eq(GoodsToStation::getWorkStation, workStation)
.eq(GoodsToStation::getDistributeStatus, 0)
.or().eq(GoodsToStation::getDistributeStatus, 1));
for (GoodsToStation goodsToStation : goodsToStationList) {
// 判断当前物料是否在流转中
List<OutsideVehicles> outsideVehiclesList = outsideVehiclesService.list(new LambdaQueryWrapper<OutsideVehicles>()
.eq(OutsideVehicles::getGoodsId, goodsToStation.getGoodsId())
.gt(OutsideVehicles::getRemainNum, 0));
}
// 查流转中的箱子和物料表
// 判断是否需要生成出库任务
// 生成拣货任务
// 修改状态
} catch (Exception e) {
throw new Exception("执行站台:" + workStation + "工作发生异常!");
} finally {
// 当前站台创建任务完成
workDoingStations.remove(workStation);
}
} }
@Override @Override
public void finishWork(String workStation) { public void finishWork(String workStation) {
// TODO
} }
/** /**
* 先找到MWL的小工位的配置 * 先找到MWL的小工位的配置
* @param workStation 工站 * @param workStation 工站
* @param workConfigs 工位配置 * @param workFlows 工作流/工作任务
* @param model 机型
*/ */
private void findNwl(String workStation, List<WorkStationConfig> workConfigs) { private void findWorks(String workStation, List<WorkFlow> workFlows, String model) {
workConfigs.add(new WorkStationConfig()); // 查到当前站台所有的小工位
} List<WorkStationConfig> currentStationConfigsOfNwl = workStationConfigService.list(new LambdaQueryWrapper<WorkStationConfig>()
.eq(WorkStationConfig::getWorkStation, workStation)
/** .eq(Objects.equals(model, "NWL"), WorkStationConfig::getModel, model)
* 先找到非MWL的小工位的配置 .ne(!Objects.equals(model, "NWL"), WorkStationConfig::getModel, "NWL"));
* @param workStation 工站 // 当前站台未分配库位
* @param workConfigs 工位配置 if (currentStationConfigsOfNwl == null || currentStationConfigsOfNwl.isEmpty()) {
*/ return;
private void findNotNwl(String workStation, List<WorkStationConfig> workConfigs) { }
workConfigs.add(new WorkStationConfig()); // 今日开工的工单和小工位
Map<String, WorkCenterAndOrderDto> tasksOfTodayMap = new HashMap<>();
// 防止重复查询
Map<String, KateDBS> ordersAndDBSMap = new HashMap<>();
// 根据所有小工位查到对应的任务
for (WorkStationConfig workConfig : currentStationConfigsOfNwl) {
// 查询当前小工位是否已经判断过开工日期
if (StringUtils.isEmpty(workConfig.getSmallBox()) || tasksOfTodayMap.containsKey(workConfig.getSmallBox())) {
continue;
}
// 通过工单表查询到对应的工单
List<KateOrders> kateWorkOrders = kateOrdersService.list(new LambdaQueryWrapper<KateOrders>()
.eq(KateOrders::getSupplyArea, workConfig.getSmallBox())
.eq(KateOrders::getOrderStatus, 0)
.eq(KateOrders::getSLoc, configMap.get("SLOC_FILTER_STRING")));
// 当前工位没有未完成的工单
if (kateWorkOrders == null || kateWorkOrders.isEmpty()) {
continue;
}
for (KateOrders kateWorkOrder : kateWorkOrders) {
KateDBS kateDBS;
if (!ordersAndDBSMap.containsKey(kateWorkOrder.getWorkOrder())) {
kateDBS = ordersAndDBSMap.get(kateWorkOrder.getWorkOrder());
} else {
// 从DBS表查询对应的工单以及开工时间
kateDBS = kateDBSService.getOne(new LambdaQueryWrapper<KateDBS>()
.eq(KateDBS::getWorkOrder, kateWorkOrder.getWorkOrder())
.ne(KateDBS::getDbsStatus, 2)
.orderByAsc(KateDBS::getWorkSequence));
}
if (kateDBS == null || StringUtils.isEmpty(kateDBS.getWorkOrder())) {// 不存在对应的工单计划
continue;
}
// 判断是否是当天开工
if (kateDBS.getPlanStartDate().plusDays(workConfig.getStartDateAdjust()).toLocalDate().isEqual(LocalDateTime.now().toLocalDate())) {
// 已经查询过的为了不重复查询添加map
ordersAndDBSMap.put(kateWorkOrder.getWorkOrder(), kateDBS);
// 添加工作计划
WorkCenterAndOrderDto wcoDto = new WorkCenterAndOrderDto();
wcoDto.setWorkCenter(workConfig.getSmallBox());
wcoDto.setWorkOrder(kateWorkOrder.getWorkOrder());
wcoDto.setStartDate(LocalDateTime.now().toLocalDate().atStartOfDay());
// 减少后续重复查询数据库
tasksOfTodayMap.put(workConfig.getSmallBox(), wcoDto);
}
}
}
// 判断是否有今天开工的工单和小工位
if (!tasksOfTodayMap.isEmpty()) {
for (String smallBoxKey : tasksOfTodayMap.keySet()) {
WorkCenterAndOrderDto currentWorkCenterAndOrderDto = tasksOfTodayMap.get(smallBoxKey);
// 通过工单表查询到对应的工单
List<KateOrders> kateWorkOrderList = kateOrdersService.list(new LambdaQueryWrapper<KateOrders>()
.eq(KateOrders::getWorkOrder, currentWorkCenterAndOrderDto.getWorkOrder())
.eq(KateOrders::getSupplyArea, currentWorkCenterAndOrderDto.getWorkCenter())
.eq(KateOrders::getOrderStatus, 0)
.eq(KateOrders::getSLoc, configMap.get("SLOC_FILTER_STRING")));
for (KateOrders tempOrder : kateWorkOrderList) {
// 生成workFlow
WorkFlow tempWorkFlow = new WorkFlow();
tempWorkFlow.setWorkFlowId(WmsUtils.generateId("WORKFLOW_"));
tempWorkFlow.setOrderId(tempOrder.getOrderId());
tempWorkFlow.setWorkStation(workStation);
tempWorkFlow.setWorkOrder(tempOrder.getWorkOrder());
tempWorkFlow.setWorkCenter(tempOrder.getSupplyArea());
tempWorkFlow.setGoodsId(tempOrder.getGoodsId());
tempWorkFlow.setNeedNum(tempOrder.getRequirementQuantity());
tempWorkFlow.setCreateTime(LocalDateTime.now());
tempWorkFlow.setWorkStatus(0);
tempWorkFlow.setLightStatus(0);
tempWorkFlow.setPickedNum(BigDecimal.ZERO);
workFlows.add(tempWorkFlow);
}
}
}
} }
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.ELocationConfig; import com.wms.entity.table.ELocationConfig;
import com.wms.mapper.ELocationConfigMapper; import com.wms.mapper.ELocationConfigMapper;
import com.wms.service.ELocationConfigService; import com.wms.service.ELocationConfigService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 电子标签库位配置服务实现 * 电子标签库位配置服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ELocationConfigServiceImpl extends ServiceImpl<ELocationConfigMapper, ELocationConfig> implements ELocationConfigService { public class ELocationConfigServiceImpl extends ServiceImpl<ELocationConfigMapper, ELocationConfig> implements ELocationConfigService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.ETagLocation; import com.wms.entity.table.ETagLocation;
import com.wms.mapper.ETagLocationMapper; import com.wms.mapper.ETagLocationMapper;
import com.wms.service.ETagLocationService; import com.wms.service.ETagLocationService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 电子标签服务实现 * 电子标签服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class ETagLocationServiceImpl extends ServiceImpl<ETagLocationMapper, ETagLocation> implements ETagLocationService { public class ETagLocationServiceImpl extends ServiceImpl<ETagLocationMapper, ETagLocation> implements ETagLocationService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.GoodsToStation; import com.wms.entity.table.GoodsToStation;
import com.wms.mapper.GoodsToStationMapper; import com.wms.mapper.GoodsToStationMapper;
import com.wms.service.GoodsToStationService; import com.wms.service.GoodsToStationService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 站台要料服务实现 * 站台要料服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class GoodsToStationServiceImpl extends ServiceImpl<GoodsToStationMapper, GoodsToStation> implements GoodsToStationService { public class GoodsToStationServiceImpl extends ServiceImpl<GoodsToStationMapper, GoodsToStation> implements GoodsToStationService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateDBSHistory; import com.wms.entity.table.KateDBSHistory;
import com.wms.mapper.KateDBSHistoryMapper; import com.wms.mapper.KateDBSHistoryMapper;
import com.wms.service.KateDBSHistoryService; import com.wms.service.KateDBSHistoryService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 卡特DBS历史记录服务实现 * 卡特DBS历史记录服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateDBSHistoryServiceImpl extends ServiceImpl<KateDBSHistoryMapper, KateDBSHistory> implements KateDBSHistoryService { public class KateDBSHistoryServiceImpl extends ServiceImpl<KateDBSHistoryMapper, KateDBSHistory> implements KateDBSHistoryService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateDBSLast; import com.wms.entity.table.KateDBSLast;
import com.wms.mapper.KateDBSLastMapper; import com.wms.mapper.KateDBSLastMapper;
import com.wms.service.KateDBSLastService; import com.wms.service.KateDBSLastService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 上一次卡特DBS服务接口 * 上一次卡特DBS服务接口
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateDBSLastServiceImpl extends ServiceImpl<KateDBSLastMapper, KateDBSLast> implements KateDBSLastService { public class KateDBSLastServiceImpl extends ServiceImpl<KateDBSLastMapper, KateDBSLast> implements KateDBSLastService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateDBS; import com.wms.entity.table.KateDBS;
import com.wms.mapper.KateDBSMapper; import com.wms.mapper.KateDBSMapper;
import com.wms.service.KateDBSService; import com.wms.service.KateDBSService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 卡特DBS服务实现 * 卡特DBS服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateDBSServiceImpl extends ServiceImpl<KateDBSMapper, KateDBS> implements KateDBSService { public class KateDBSServiceImpl extends ServiceImpl<KateDBSMapper, KateDBS> implements KateDBSService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateOrdersHistory; import com.wms.entity.table.KateOrdersHistory;
import com.wms.mapper.KateOrdersHistoryMapper; import com.wms.mapper.KateOrdersHistoryMapper;
import com.wms.service.KateOrdersHistoryService; import com.wms.service.KateOrdersHistoryService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 卡特历史工单服务实现 * 卡特历史工单服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateOrdersHistoryServiceImpl extends ServiceImpl<KateOrdersHistoryMapper, KateOrdersHistory> implements KateOrdersHistoryService { public class KateOrdersHistoryServiceImpl extends ServiceImpl<KateOrdersHistoryMapper, KateOrdersHistory> implements KateOrdersHistoryService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateOrdersLast; import com.wms.entity.table.KateOrdersLast;
import com.wms.mapper.KateOrdersLastMapper; import com.wms.mapper.KateOrdersLastMapper;
import com.wms.service.KateOrdersLastService; import com.wms.service.KateOrdersLastService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 上一次导入的卡特工单服务实现 * 上一次导入的卡特工单服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateOrdersLastServiceImpl extends ServiceImpl<KateOrdersLastMapper, KateOrdersLast> implements KateOrdersLastService { public class KateOrdersLastServiceImpl extends ServiceImpl<KateOrdersLastMapper, KateOrdersLast> implements KateOrdersLastService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.KateOrders; import com.wms.entity.table.KateOrders;
import com.wms.mapper.KateOrdersMapper; import com.wms.mapper.KateOrdersMapper;
import com.wms.service.KateOrdersService; import com.wms.service.KateOrdersService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 卡特工单服务实现 * 卡特工单服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class KateOrdersServiceImpl extends ServiceImpl<KateOrdersMapper, KateOrders> implements KateOrdersService { public class KateOrdersServiceImpl extends ServiceImpl<KateOrdersMapper, KateOrders> implements KateOrdersService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.OutsideVehicles; import com.wms.entity.table.OutsideVehicles;
import com.wms.mapper.OutsideVehiclesMapper; import com.wms.mapper.OutsideVehiclesMapper;
import com.wms.service.OutsideVehiclesService; import com.wms.service.OutsideVehiclesService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 流转中的载具物料服务实现 * 流转中的载具物料服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class OutsideVehiclesServiceImpl extends ServiceImpl<OutsideVehiclesMapper, OutsideVehicles> implements OutsideVehiclesService { public class OutsideVehiclesServiceImpl extends ServiceImpl<OutsideVehiclesMapper, OutsideVehicles> implements OutsideVehiclesService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.PickTaskRecord; import com.wms.entity.table.PickTaskRecord;
import com.wms.mapper.PickTaskRecordMapper; import com.wms.mapper.PickTaskRecordMapper;
import com.wms.service.PickTaskRecordService; import com.wms.service.PickTaskRecordService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 拣货任务记录服务实现 * 拣货任务记录服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class PickTaskRecordServiceImpl extends ServiceImpl<PickTaskRecordMapper, PickTaskRecord> implements PickTaskRecordService { public class PickTaskRecordServiceImpl extends ServiceImpl<PickTaskRecordMapper, PickTaskRecord> implements PickTaskRecordService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.PickTask; import com.wms.entity.table.PickTask;
import com.wms.mapper.PickTaskMapper; import com.wms.mapper.PickTaskMapper;
import com.wms.service.PickTaskService; import com.wms.service.PickTaskService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 拣货任务服务实现类 * 拣货任务服务实现类
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class PickTaskServiceImpl extends ServiceImpl<PickTaskMapper, PickTask> implements PickTaskService { public class PickTaskServiceImpl extends ServiceImpl<PickTaskMapper, PickTask> implements PickTaskService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.WorkFlow; import com.wms.entity.table.WorkFlow;
import com.wms.mapper.WorkFlowMapper; import com.wms.mapper.WorkFlowMapper;
import com.wms.service.WorkFlowService; import com.wms.service.WorkFlowService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 工作流服务实现 * 工作流服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class WorkFlowServiceImpl extends ServiceImpl<WorkFlowMapper, WorkFlow> implements WorkFlowService { public class WorkFlowServiceImpl extends ServiceImpl<WorkFlowMapper, WorkFlow> implements WorkFlowService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.WorkStationConfig; import com.wms.entity.table.WorkStationConfig;
import com.wms.mapper.WorkStationConfigMapper; import com.wms.mapper.WorkStationConfigMapper;
import com.wms.service.WorkStationConfigService; import com.wms.service.WorkStationConfigService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 工站配置服务实现类 * 工站配置服务实现类
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class WorkStationConfigServiceImpl extends ServiceImpl<WorkStationConfigMapper, WorkStationConfig> implements WorkStationConfigService { public class WorkStationConfigServiceImpl extends ServiceImpl<WorkStationConfigMapper, WorkStationConfig> implements WorkStationConfigService {
} }

View File

@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wms.entity.table.WorkSummary; import com.wms.entity.table.WorkSummary;
import com.wms.mapper.WorkSummaryMapper; import com.wms.mapper.WorkSummaryMapper;
import com.wms.service.WorkSummaryService; import com.wms.service.WorkSummaryService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
* 工作总结服务实现 * 工作总结服务实现
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class WorkSummaryServiceImpl extends ServiceImpl<WorkSummaryMapper, WorkSummary> implements WorkSummaryService { public class WorkSummaryServiceImpl extends ServiceImpl<WorkSummaryMapper, WorkSummary> implements WorkSummaryService {
} }