代码更新
This commit is contained in:
parent
d3b1445cda
commit
4fc4a7e0aa
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 完成工作
|
* 完成工作
|
||||||
|
|
|
||||||
|
|
@ -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机型
|
return;
|
||||||
findNwl(workStation, currentStationWorkConfigs);
|
} else {
|
||||||
if (currentStationWorkConfigs.isEmpty()) {
|
// 添加站台
|
||||||
// 找非NWL机型
|
workCreatingStations.add(workStation);
|
||||||
findNotNwl(workStation, currentStationWorkConfigs);
|
|
||||||
}
|
}
|
||||||
// 然后判断是否还是为空
|
if (StringUtils.isEmpty(workStation)) {
|
||||||
if (currentStationWorkConfigs.isEmpty()) {
|
// 站台号为空
|
||||||
return;
|
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)
|
||||||
|
.ne(!Objects.equals(model, "NWL"), WorkStationConfig::getModel, "NWL"));
|
||||||
|
// 当前站台未分配库位
|
||||||
|
if (currentStationConfigsOfNwl == null || currentStationConfigsOfNwl.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 今日开工的工单和小工位
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 先找到非MWL的小工位的配置
|
|
||||||
* @param workStation 工站
|
|
||||||
* @param workConfigs 工位配置
|
|
||||||
*/
|
|
||||||
private void findNotNwl(String workStation, List<WorkStationConfig> workConfigs) {
|
|
||||||
workConfigs.add(new WorkStationConfig());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user