Commit 7e1e2684 孙克

添加了一些注释

1 个父辈 416ab249
正在显示 37 个修改的文件 包含 409 行增加14 行删除
......@@ -40,6 +40,7 @@ SMF Core 采用经典的四层架构设计:
#### 2.2 api-gateway 层
- REST API 接口定义
- 请求参数验证
- 设备通信
- 响应格式化
- 权限控制
......
......@@ -13,6 +13,12 @@ import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RestController;
/**
* SMF Core 应用程序入口类
* 初始化Spring Boot应用并提供系统基础功能
* @author SMF Core Team
* @date 2022-02-25
*/
@RestController
@SpringBootApplication
@Slf4j
......
......@@ -8,6 +8,12 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 系统设置控制器
* 处理系统配置相关的REST API请求
* @author SMF Core Team
* @date 2022-03-04
*/
@Api("agv信息")
@RequestMapping("/agv")
@RestController
......
package com.neotel.smfcore.apiGateway.device.common.rest;
import cn.hutool.core.util.NumberUtil;
......@@ -24,6 +23,13 @@ import com.neotel.smfcore.businessServices.barcode.service.manager.IBarcodeManag
import com.neotel.smfcore.businessServices.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.businessServices.barcode.service.po.Barcode;
import com.neotel.smfcore.businessServices.barcode.service.po.Component;
/**
* 设备管理通用控制器
* 处理各类设备的通用REST API请求
* @author SMF Core Team
* @date 2022-02-28
*/
import com.neotel.smfcore.businessServices.barcode.utils.CodeResolve;
import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.smfPlatform.language.util.MessageUtils;
......@@ -50,6 +56,12 @@ import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
* 设备管理通用控制器
* 处理各类设备的通用REST API请求
* @author SMF Core Team
* @date 2022-02-28
*/
@Slf4j
@RestController
@Api(tags = "设备通信(料仓)")
......
......@@ -22,6 +22,13 @@ import com.neotel.smfcore.apiGateway.device.sp.dto.SpTaskDto;
import com.neotel.smfcore.businessServices.storage.enums.CHECKOUT_TYPE;
import com.neotel.smfcore.businessServices.storage.rest.dto.CheckOutDto;
import com.neotel.smfcore.businessServices.storage.rest.dto.InventoryItemDto;
/**
* SP设备料盒控制器
* 处理SP设备料盒相关的REST API请求
* @author SMF Core Team
* @date 2022-03-07
*/
import com.neotel.smfcore.businessServices.storage.rest.dto.StoragePosDto;
import com.neotel.smfcore.businessServices.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.businessServices.storage.rest.query.StoragePosFindCriteria;
......
......@@ -41,6 +41,13 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.stream.Collectors;
/**
* 虚拟操作控制器
* 处理虚拟仓库相关的操作请求
* @author SMF Core Team
* @date 2022-03-18
*/
@Api(tags = "虚拟仓操作")
@Slf4j
@RequestMapping("/virtualOperate")
......
......@@ -25,6 +25,12 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
/**
* 组件管理服务实现类,处理组件相关的业务逻辑
*
* @author SMF Core Team
* @date 2022-02-28
*/
@Slf4j
@Service
public class ComponentManagerImpl implements IComponentManager {
......
......@@ -46,6 +46,13 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 入库列表控制器
* 处理入库列表相关的REST API请求
* @author SMF Core Team
* @date 2022-02-28
*/
@Slf4j
@RestController
@RequiredArgsConstructor
......
......@@ -5,8 +5,18 @@ import com.neotel.smfcore.shared.base.AbstractBaseDao;
import com.neotel.smfcore.businessServices.inList.service.dao.IInListItemDao;
import org.springframework.stereotype.Service;
/**
* 入库列表项数据访问实现类,负责入库列表项的数据库操作
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
public class InListItemDaoImpl extends AbstractBaseDao implements IInListItemDao {
/**
* 获取实体类类型
* @return 实体类Class对象
*/
@Override
public Class getEntityClass() {
return InListItem.class;
......
......@@ -3,8 +3,23 @@ package com.neotel.smfcore.businessServices.inList.service.manager;
import com.neotel.smfcore.businessServices.inList.service.po.InList;
import com.neotel.smfcore.shared.base.IBaseManager;
/**
* 入库列表管理接口
* @author SMF Core Team
* @date 2022-02-28
*/
public interface IInListManager extends IBaseManager<InList> {
/**
* 根据名称查找入库列表
* @param name 列表名称
* @return 入库列表对象
*/
InList findByName(String name);
/**
* 创建入库列表并关联列表项
* @param inList 入库列表对象
* @return 创建后的入库列表
*/
InList createWithItems(InList inList);
}
......@@ -14,6 +14,12 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* 入库列表项管理实现类,实现入库列表项相关的业务逻辑
*
* @author SMF Core Team
* @date 2022-02-28
*/
@Slf4j
@Service
public class InListItemManagerImpl implements IInListItemManager {
......
......@@ -17,6 +17,12 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* 入库列表管理实现类,负责入库列表的增删改查等业务逻辑
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Slf4j
@Service
public class InListManagerImpl implements IInListManager {
......@@ -25,8 +31,13 @@ public class InListManagerImpl implements IInListManager {
private IInListDao inListDao;
@Autowired
private IInListItemManager inListItemManager;
private IInListItemManager inListItemManager;
/**
* 根据ID获取入库列表及其包含的项
* @param id 入库列表ID
* @return 入库列表对象(包含列表项)
*/
@Override
public InList get(String id) {
InList list= inListDao.findOneById(id);
......@@ -37,16 +48,33 @@ private IInListItemManager inListItemManager;
return list;
}
/**
* 保存入库列表
* @param object 入库列表对象
* @return 保存后的入库列表对象
* @throws ValidateException 验证异常
*/
@Override
public InList save(InList object) throws ValidateException {
return inListDao.save(object);
}
/**
* 删除入库列表
* @param object 入库列表对象
* @throws ValidateException 验证异常
*/
@Override
public void delete(InList object) throws ValidateException {
inListDao.removeOne(object);
}
/**
* 分页查询入库列表
* @param query 查询条件
* @param pageable 分页参数
* @return 分页数据
*/
@Override
public PageData<InList> findByPage(Query query, Pageable pageable) {
int totalCount = inListDao.countByQuery(query);
......@@ -54,11 +82,21 @@ private IInListItemManager inListItemManager;
return new PageData(lists,totalCount);
}
/**
* 根据查询条件获取入库列表
* @param query 查询条件
* @return 入库列表集合
*/
@Override
public List<InList> findByQuery(Query query) {
return inListDao.findByQuery(query);
}
/**
* 根据名称查找入库列表及其包含的项
* @param name 入库列表名称
* @return 入库列表对象(包含列表项)
*/
@Override
public InList findByName(String name) {
Query query=new Query(Criteria.where("name").is(name));
......@@ -71,6 +109,11 @@ private IInListItemManager inListItemManager;
return list;
}
/**
* 创建入库列表并保存其包含的项
* @param inList 入库列表对象
* @return 创建后的入库列表对象
*/
@Override
public InList createWithItems(InList inList) {
List<InListItem> items = Lists.newArrayList();
......
......@@ -22,6 +22,12 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* 入库列表缓存工具
* 提供入库列表的缓存管理和快速访问功能
* @author SMF Core Team
* @date 2022-02-28
*/
@Service
@Slf4j
public class InListCache {
......
......@@ -5,6 +5,17 @@ import com.neotel.smfcore.businessServices.order.service.po.LiteOrderItem;
import java.util.List;
/**
* 轻量级订单项数据访问接口,定义轻量级订单项的数据库操作方法
*
* @author SMF Core Team
* @date 2022-03-14
*/
public interface ILiteOrderItemDao extends IBaseDao {
/**
* 根据订单号查询订单项列表
* @param orderNo 订单号
* @return 订单项集合
*/
List<LiteOrderItem> findByOrderNo(String orderNo);
}
......@@ -7,13 +7,28 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* 轻量级订单项数据访问实现类,负责轻量级订单项的数据库操作
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
public class LiteOrderItemDaoImpl extends AbstractBaseDao implements ILiteOrderItemDao {
/**
* 获取实体类类型
* @return 实体类Class对象
*/
@Override
public Class getEntityClass() {
return LiteOrderItem.class;
}
/**
* 根据订单号查找订单项
* @param orderNo 订单号
* @return 订单项集合
*/
@Override
public List<LiteOrderItem> findByOrderNo(String orderNo) {
return findListByCondition(new String[]{"orderNo"}, new String[]{orderNo});
......
......@@ -5,6 +5,23 @@ import com.neotel.smfcore.businessServices.order.service.po.LiteOrderItem;
import java.util.List;
/**
* 轻量级订单项管理接口
* 提供订单项相关的管理功能
* @author SMF Core Team
* @date 2022-02-28
*/
/**
* 轻量级订单项管理接口
* 提供订单项相关的管理功能
* @author SMF Core Team
* @date 2022-02-28
*/
public interface ILiteOrderItemManager extends IBaseManager<LiteOrderItem> {
/**
* 根据订单ID查找订单项列表
* @param orderId 订单ID
* @return 订单项列表
*/
List<LiteOrderItem> findOrderItems(String orderId);
}
......@@ -54,10 +54,16 @@ import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
/**
* 物料管理控制器
* 处理物料相关的REST API请求
* @author SMF Core Team
* @date 2022-03-14
*/
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "物料管理:策略出库")
@Api(tags = "物料管理")
@RequestMapping("api/material")
public class MaterialController {
@Autowired
......
......@@ -48,6 +48,12 @@ import java.io.File;
import java.io.IOException;
import java.util.*;
/**
* 料仓管理控制器
* 处理料仓相关的REST API请求
* @author SMF Core Team
* @date 2022-03-14
*/
@Slf4j
@RestController
@RequiredArgsConstructor
......
......@@ -13,17 +13,37 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 标签管理实现类,负责标签的增删改查等业务逻辑
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
@Slf4j
public class LabelManagerImpl implements ILabelManager {
@Autowired
private ILabelDao labelDao;
/**
* 获取所有标签列表
*
* @return 标签列表
*/
@Override
public List<Label> findAll() {
return labelDao.findAll();
}
/**
* 保存标签信息(新增或修改)
*
* @param resources 标签资源对象
* @return 保存后的标签对象
* @throws ValidateException 验证异常
*/
@Override
public Label saveLabel(Label resources) throws ValidateException {
......@@ -45,27 +65,59 @@ public class LabelManagerImpl implements ILabelManager {
return label;
}
/**
* 根据标签名称获取标签对象
*
* @param labelName 标签名称
* @return 标签对象
*/
@Override
public Label getBylabelName(String labelName) {
Query query=new Query(Criteria.where("labelName").is(labelName));
return labelDao.findOne(query);
}
/**
* 根据ID获取标签对象
*
* @param id 标签ID
* @return 标签对象
*/
@Override
public Label get(String id) {
return labelDao.findOneById(id);
}
/**
* 保存标签对象
*
* @param object 标签对象
* @return 保存后的标签对象
* @throws ValidateException 验证异常
*/
@Override
public Label save(Label object) throws ValidateException {
return labelDao.save(object);
}
/**
* 删除标签对象
*
* @param object 标签对象
* @throws ValidateException 验证异常
*/
@Override
public void delete(Label object) throws ValidateException {
labelDao.removeOneById(object.getId());
}
/**
* 分页查询标签列表
*
* @param query 查询条件
* @param pageable 分页参数
* @return 分页数据对象
*/
@Override
public PageData<Label> findByPage(Query query, Pageable pageable) {
int totalCount = labelDao.countByQuery(query);
......@@ -73,6 +125,12 @@ public class LabelManagerImpl implements ILabelManager {
return new PageData<Label>(list,totalCount);
}
/**
* 根据查询条件获取标签列表
*
* @param query 查询条件
* @return 标签列表
*/
@Override
public List<Label> findByQuery(Query query) {
return labelDao.findByQuery(query);
......
......@@ -24,6 +24,13 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
/**
* 存储位置管理实现类,负责存储位置的管理和操作业务逻辑
*
* @author SMF Core Team
* @date 2022-02-28
*/
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......
......@@ -19,6 +19,12 @@ import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* Aptiv1077系统集成API,处理与Aptiv外部系统的接口调用
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
@Slf4j
public class AptivApi extends NeotelApi {
......
......@@ -13,6 +13,12 @@ import org.springframework.stereotype.Service;
import java.util.List;
/**
* Haman存储位置数据访问实现类,负责Haman系统存储位置的数据库操作
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
public class HamanBinPosDaoImpl extends AbstractBaseDao implements IHamanBinPosDao {
@Override
......
......@@ -20,6 +20,13 @@ import com.neotel.smfcore.apiGateway.device.common.enums.BOX_STATUS;
import com.neotel.smfcore.apiGateway.device.common.util.DataCache;
import com.neotel.smfcore.businessServices.order.LiteOrderCache;
import com.neotel.smfcore.businessServices.order.enums.LITEORDER_STYPE;
/**
* Hella系统服务处理器,负责与Hella外部系统进行集成交互
*
* @author SMF Core Team
* @date 2022-03-14
*/
import com.neotel.smfcore.businessServices.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrder;
import com.neotel.smfcore.businessServices.order.service.po.LiteOrderItem;
......
......@@ -26,6 +26,12 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* Nexim订单处理器
* 负责处理从Nexim系统接收到的订单文件
* @author SMF Core Team
* @date 2022-03-14
*/
@Slf4j
@Component
public class JobHandler {
......
......@@ -34,6 +34,12 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Nexim订单服务
* 处理Nexim系统订单的核心业务逻辑
* @author SMF Core Team
* @date 2022-03-14
*/
@Slf4j
@Service
public class JobService {
......
......@@ -8,17 +8,53 @@ import org.springframework.data.mongodb.core.query.Query;
import java.util.List;
/**
* Created by kangmor on 2015/10/15.
* 基础管理接口,提供通用的增删改查操作方法
*
* @author SMF Core Team
* @date 2022-02-28
* @param <T> 实体类型泛型
*/
public interface IBaseManager<T> {
/**
* 根据ID获取实体对象
*
* @param id 实体ID
* @return 实体对象
*/
T get(String id);
/**
* 保存实体对象
*
* @param object 实体对象
* @return 保存后的实体对象
* @throws ValidateException 验证异常
*/
T save(T object) throws ValidateException;
/**
* 删除实体对象
*
* @param object 实体对象
* @throws ValidateException 验证异常
*/
void delete(T object) throws ValidateException;
/**
* 分页查询实体列表
*
* @param query 查询条件
* @param pageable 分页参数
* @return 分页数据对象
*/
PageData<T> findByPage(Query query, Pageable pageable);
/**
* 根据查询条件获取实体列表
*
* @param query 查询条件
* @return 实体列表
*/
List<T> findByQuery(Query query);
}
......@@ -15,6 +15,13 @@ import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
* 主定时器服务
* 负责定时执行系统任务和数据同步
* @author SMF Core Team
* @date 2022-03-04
*/
@Service
public class MainTimer {
protected final transient Logger log = LogManager.getLogger(getClass());
......
......@@ -16,6 +16,12 @@ import java.util.Collection;
import java.util.List;
import java.util.regex.Pattern;
/**
* 查询帮助工具类,用于构建MongoDB查询条件
*
* @author SMF Core Team
* @date 2022-02-28
*/
@Slf4j
public class QueryHelp {
public static <C> Query getQuery(C c){
......
......@@ -29,6 +29,12 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
/**
* 组管理控制器
* 处理用户组相关的REST API请求
* @author SMF Core Team
* @date 2022-02-28
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:组管理")
......
......@@ -134,7 +134,8 @@ public class MenuController {
public ResponseEntity<Object> child(@RequestParam String id) {
Set<Menu> menuSet = new HashSet<>();
List<Menu> menuList = menuManager.getMenusByPid(id);
menuSet.add(menuManager.get(id));
Menu menu = (Menu) menuManager.get(id);
menuSet.add(menu);
menuSet = menuManager.getChildMenus(menuList, menuSet);
Set<String> ids = menuSet.stream().map(Menu::getId).collect(Collectors.toSet());
return new ResponseEntity<>(ids, HttpStatus.OK);
......@@ -166,7 +167,7 @@ public class MenuController {
Set<Menu> menus = new LinkedHashSet<>();
if (CollectionUtil.isNotEmpty(ids)) {
for (String id : ids) {
Menu menu = menuManager.get(id);
Menu menu = (Menu) menuManager.get(id);
menus.addAll(menuManager.getSuperior(menu, new ArrayList<>()));
}
return new ResponseEntity<>(menuManager.buildTree(new ArrayList<>(menus)), HttpStatus.OK);
......
......@@ -39,6 +39,12 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
@Service("userDetailsService")
/**
* 用户详情服务实现类
* 实现Spring Security的UserDetailsService接口,提供用户认证功能
* @author SMF Core Team
* @date 2022-02-28
*/
public class UserDetailsServiceImpl implements UserDetailsService {
private final IUserManager userManager;
private final IMenuManager menuManager;
......
......@@ -13,7 +13,13 @@ import java.util.Locale;
import java.util.Set;
public interface IMenuManager extends IBaseManager<Menu> {
/**
* 菜单管理接口
* 提供菜单相关的管理功能
* @author SMF Core Team
* @date 2022-02-28
*/
public interface IMenuManager extends IBaseManager {
List<Menu> findAll();
/**
* 根据角色ID获取菜单
......
......@@ -46,12 +46,12 @@ public class MenuManagerImpl implements IMenuManager {
}
@Override
public Menu save(Menu menu) throws ValidateException {
return menuDao.save(menu);
public Menu save(Object menu) throws ValidateException {
return menuDao.save((Menu) menu);
}
@Override
public void delete(Menu object) throws ValidateException {
public void delete(Object object) throws ValidateException {
menuDao.removeOne(object);
}
......
......@@ -48,6 +48,12 @@ import java.text.SimpleDateFormat;
import java.util.*;
/**
* 任务管理控制器
* 处理系统任务相关的REST API请求
* @author SMF Core Team
* @date 2022-03-07
*/
@Slf4j
@Api(tags = "任务管理")
@RestController
......
......@@ -31,6 +31,12 @@ import java.util.concurrent.TimeUnit;
* @author sunke
* @date 2023/1/31 10:02 AM
*/
/**
* 数据库备份服务
* 负责系统数据的自动备份和管理
* @author SMF Core Team
* @date 2022-03-04
*/
@Slf4j
@Service
public class DbBackupService {
......
......@@ -37,7 +37,10 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* Created by sunke on 2021/7/13.
* 任务服务类,负责管理系统中的各类任务队列和任务状态
*
* @author SMF Core Team
* @date 2022-03-14
*/
@Service
@Slf4j
......@@ -338,12 +341,33 @@ public class TaskService {
}
return resultTasks;
}
/**
* 查找已完成的入库任务
* @param cid 设备ID
* @param posName 位置名称
* @return 任务对象
*/
public DataLog findFinishedPutInTask(String cid, String posName){
return findFinishedTask(cid,posName,"",true);
}
/**
* 查找已完成的出库任务
* @param cid 设备ID
* @param posName 位置名称
* @return 任务对象
*/
public DataLog findFinishedOutTask(String cid, String posName){
return findFinishedTask(cid,posName,"",false);
}
/**
* 根据条码查找已完成的入库任务
* @param cid 设备ID
* @param posName 位置名称
* @param barcode 条码
* @return 任务对象
*/
public DataLog findFinishedPutInTask(String cid, String posName,String barcode){
return findFinishedTask(cid,posName,barcode,true);
}
......@@ -435,13 +459,21 @@ public class TaskService {
}
return null;
}
/**
* 查找正在执行的任务
* @param cid 设备ID
* @param posName 位置名称
* @return 任务对象
*/
public DataLog findExecutingTask(String cid, String posName ) {
return findExecutingTask(cid,posName,"");
}
/**
* 是否有正在执行的任务
*
* @return
* 判断指定设备是否有指定类型的正在执行的任务
* @param cid 设备ID
* @param type 任务类型
* @return 是否有执行中的任务
*/
public boolean hasExecutingTask(String cid, int type) {
for (DataLog task : taskMap.values()) {
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!