Commit abc813a8 LN

增加label表

1 个父辈 7fc4c6fa
......@@ -191,7 +191,7 @@ public class DataInitManager {
menus.addAll(createMenus(menukanban));
//料架分组
Menu menuShelf = new Menu(new ArrayList<Menu>(), 1, "sensorShelf", "料架分组", 1, "lightGroup", "neolight/lightGroup/index", "", 0, "neo1");
// menuShelf.setHidden(true);
menuShelf.setHidden(true);
menus.addAll(createMenus(menuShelf));
//出库:工单,查找出库
......@@ -206,13 +206,13 @@ public class DataInitManager {
//设置:料仓管理,菜单管理
Menu poutSet = Menu.CreatePMenu("设置", 30, "system", 2, "system");
Menu menuStorage = new Menu(new ArrayList<Menu>(), 1, "storage:list", "料仓管理", 1, "bunker", "storage/storage/index", "", 0, "database");
Menu menuStorage = new Menu(new ArrayList<Menu>(), 1, "storage:list", "设备管理", 1, "bunker", "storage/storage/index", "", 0, "database");
Menu menuStoragePos = new Menu(new ArrayList<Menu>(), 1, "storagePos:list", "库位管理", 1, "storagePos", "storagePos/storagePos/index", "", 0, "tree-table");
Menu menuMenu = new Menu(new ArrayList<Menu>(), 1, "menu:list", "菜单管理", 1, "menu", "system/menu/index", "", 0, "menu");
Menu sysSetting = new Menu(new ArrayList<Menu>(), 1, "barcode", "条码设置", 1, "barcodeSetting", "system/barcodeSetting/index", "", 0, "database");
Menu outSet = new Menu(new ArrayList<Menu>(), 1, "outSetting", "出库策略", 1, "outSetting", "system/outSetting/index", "", 0, "system");
Menu sysSet = new Menu(new ArrayList<Menu>(), 1, "sysSetting", "系统设置", 1, "sysSetting", "system/sysSetting/index", "", 0, "system");
menuMenu.setHidden(true);
outSet.setHidden(true);
sysSet.setHidden(true);
// menuMenu.setHidden(true);
......
package com.neotel.smfcore.core.storage.rest;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.SecurityUtils;
import com.neotel.smfcore.core.storage.rest.dto.LabelDto;
import com.neotel.smfcore.core.storage.rest.mapstruct.LabelMapper;
import com.neotel.smfcore.core.storage.service.manager.ILabelManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.manager.impl.LabelManagerImpl;
import com.neotel.smfcore.core.storage.service.po.Label;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.security.service.po.Group;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "库位:标签管理")
@RequestMapping("api/label")
public class LabelController {
@Autowired
private final ILabelManager labelManager;
@Autowired
private LabelMapper labelMapper;
@Autowired
private IStoragePosManager storagePosManager;
@ApiOperation("返回全部的标签")
@GetMapping(value = "/all")
@PreAuthorize("@el.check('label:list')")
public ResponseEntity<Object> query() {
Query query = new Query();
List<Label> labels = labelManager.findByQuery(query);
return new ResponseEntity<>(labelMapper.toDto(labels), HttpStatus.OK);
}
@ApiOperation("新增标签")
@PostMapping
@PreAuthorize("@el.check('label:add')")
public ResponseEntity<Object> create(@RequestBody LabelDto labelDto) {
Label resources = labelMapper.toEntity(labelDto);
resources = labelManager.saveLabel(resources);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@ApiOperation("修改标签")
@PutMapping
@PreAuthorize("@el.check('label:edit')")
public ResponseEntity<Object> update(@RequestBody LabelDto labelDto) {
Label resources=labelMapper.toEntity(labelDto);
if (resources.getId() == null) {
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"ID"} );
}
labelManager.saveLabel(resources);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@ApiOperation("删除标签")
@DeleteMapping
@PreAuthorize("@el.check('label:del')")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
Set<Group> menuSet = new HashSet<>();
for (String id : ids) {
if (id == null) {
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"ID"} );
}
Label label = labelManager.get(id);
if(label==null){
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"group"} );
}
//查找组下是否有设备
Query query = new Query(Criteria.where("label").is(id));
List<StoragePos> storagePosList = storagePosManager.findByQuery(query);
if (storagePosList != null && storagePosList.size() >= 1) {
throw new ValidateException("smfcode.labelWithStoragePos","标签[{0}]已和库位关联",new String[]{label.getLabelName()});
}
//删除关联
log.info("手动删除标签:"+label.getId()+"-"+label.getLabelName()+",先删除库位关联");
storagePosManager.clearStoragePosLabel(label.getId());
labelManager.delete(label);
}
return new ResponseEntity<>(HttpStatus.OK);
}
}
package com.neotel.smfcore.core.storage.rest;
import com.google.common.collect.Lists;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.rest.dto.StorageDto;
import com.neotel.smfcore.core.storage.rest.query.InventoryQueryCriteria;
import com.neotel.smfcore.core.storage.service.po.Label;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "物料管理:策略出库,分组出库")
@RequestMapping("api/material")
public class MaterialController {
@Autowired
private DataCache dataCache;
@ApiOperation("策略出库获取库存信息")
@GetMapping(value = "/inventory")
public ResponseEntity<List<InventoryItem>> inventory(InventoryQueryCriteria criteria) {
Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory();
List<InventoryItem> list= Lists.newArrayList(inventoryItemMap.values());
return new ResponseEntity<>(list, HttpStatus.OK);
}
}
package com.neotel.smfcore.core.storage.rest.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
public class LabelDto implements Serializable {
@ApiModelProperty(value = "ID")
private String id;
@ApiModelProperty(value = "标签名称")
private String labelName;
public String getLabel() {
return labelName;
}
}
package com.neotel.smfcore.core.storage.rest.mapstruct;
import com.neotel.smfcore.common.base.BaseMapper;
import com.neotel.smfcore.core.storage.rest.dto.LabelDto;
import com.neotel.smfcore.core.storage.service.po.Label;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring" ,unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface LabelMapper extends BaseMapper<LabelDto, Label> {
}
package com.neotel.smfcore.core.storage.service.dao;
import com.neotel.smfcore.common.base.IBaseDao;
public interface ILabelDao extends IBaseDao {
}
package com.neotel.smfcore.core.storage.service.dao.impl;
import com.neotel.smfcore.common.base.AbstractBaseDao;
import com.neotel.smfcore.core.storage.service.dao.ILabelDao;
import com.neotel.smfcore.core.storage.service.po.Label;
import org.springframework.stereotype.Service;
@Service
public class LabelDaoImpl extends AbstractBaseDao implements ILabelDao {
@Override
public Class getEntityClass() {
return Label.class;
}
}
package com.neotel.smfcore.core.storage.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.storage.service.po.Label;
import com.neotel.smfcore.core.storage.service.po.Storage;
import java.util.List;
public interface ILabelManager extends IBaseManager<Label> {
List<Label> findAll();
Label saveLabel(Label resources);
}
package com.neotel.smfcore.core.storage.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.storage.service.dao.ILabelDao;
import com.neotel.smfcore.core.storage.service.manager.ILabelManager;
import com.neotel.smfcore.core.storage.service.po.Label;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class LabelManagerImpl implements ILabelManager {
@Autowired
private ILabelDao labelDao;
@Override
public List<Label> findAll() {
return labelDao.findAll();
}
@Override
public Label saveLabel(Label resources) throws ValidateException {
String logName = "新增标签:";
Criteria c = Criteria.where("labelName").is(resources.getLabelName());
if (resources.getId() != null) {
c.and("id").ne(resources.getId());
logName = "修改标签:";
}
if (resources.getLabelName() == null) {
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"labelName"});
}
Query que = new Query(c);
List<Label> groups = findByQuery(que);
if (groups != null && groups.size() > 0) {
throw new ValidateException("smfcode.valueAlreadyExist", "{0}[{1}]已存在", new String[]{"labelName", resources.getLabelName()});
}
Label label = labelDao.save(resources);
return label;
}
@Override
public Label get(String id) {
return labelDao.findOneById(id);
}
@Override
public Label save(Label object) throws ValidateException {
return labelDao.save(object);
}
@Override
public void delete(Label object) throws ValidateException {
labelDao.removeOneById(object.getId());
}
@Override
public PageData<Label> findByPage(Query query, Pageable pageable) {
int totalCount = labelDao.countByQuery(query);
List<Label> list = labelDao.findByQuery(query, pageable);
return new PageData<Label>(list,totalCount);
}
@Override
public List<Label> findByQuery(Query query) {
return labelDao.findByQuery(query);
}
}
package com.neotel.smfcore.core.storage.service.po;
import com.neotel.smfcore.common.base.BasePo;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
@Data
@Document
public class Label extends BasePo implements Serializable {
private String labelName;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!