Commit 4e2e6051 LN

物料分组功能

1 个父辈 06ca2d2c
......@@ -216,8 +216,8 @@ public class DataInitManager {
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, "outSetting");
Menu sysSet = new Menu(new ArrayList<Menu>(), 1, "sysSetting", "系统设置", 1, "sysSetting", "system/sysSetting/index", "", 0, "sysSetting");
Menu outSet = new Menu(new ArrayList<Menu>(), 1, "outSetting", "出库策略", 1, "outSetting", "system/outSetting/index", "", 0, "outSet");
Menu sysSet = new Menu(new ArrayList<Menu>(), 1, "sysSetting", "系统设置", 1, "sysSetting", "system/sysSetting/index", "", 0, "sysSet");
menuMenu.setHidden(true);
outSet.setHidden(true);
sysSet.setHidden(true);
......
......@@ -87,7 +87,7 @@ public class LabelController {
}
//查找组下是否有设备
Query query = new Query(Criteria.where("label").is(id));
Query query = new Query(Criteria.where("labelId").is(id));
List<StoragePos> storagePosList = storagePosManager.findByQuery(query);
if (storagePosList != null && storagePosList.size() >= 1) {
throw new ValidateException("smfcode.labelWithStoragePos","标签[{0}]已和库位关联",new String[]{label.getLabelName()});
......
package com.neotel.smfcore.core.storage.rest;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.neotel.smfcore.common.bean.PageData;
......@@ -18,8 +19,10 @@ import com.neotel.smfcore.core.storage.rest.mapstruct.InventoryItemMapper;
import com.neotel.smfcore.core.storage.rest.mapstruct.StoragePosMapper;
import com.neotel.smfcore.core.storage.rest.query.InventoryQueryCriteria;
import com.neotel.smfcore.core.storage.rest.query.StoragePosFindCriteria;
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.po.Label;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.core.system.util.TaskService;
import io.swagger.annotations.Api;
......@@ -61,6 +64,9 @@ public class MaterialController {
@Autowired
private final IStoragePosManager storagePosManager;
@Autowired
private final ILabelManager labelManager;
@ApiOperation("策略出库获取库存列表")
@GetMapping(value = "/inventory")
@PreAuthorize("@el.check('tacticsOuput')")
......@@ -73,20 +79,20 @@ public class MaterialController {
}
@ApiOperation("策略出库")
@GetMapping(value = "/tacticsOuput")
@PostMapping(value = "/tacticsOuput")
@PreAuthorize("@el.check('tacticsOuput')")
public ResultBean tacticsOuput(@RequestBody Set<TacticsOutDto> outDtoSet) {
if(outDtoSet==null){
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"PN"} );
if (outDtoSet == null) {
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"PN"});
}
for (TacticsOutDto dto :
outDtoSet) {
if(dto.getPartNumber()==null){
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"PN"} );
}else if(dto.getPlateNumber()==null){
throw new ValidateException("smfcode.valueCanotNull","{0}不能为空",new String[]{"Num"} );
if (dto.getPartNumber() == null) {
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"PN"});
} else if (dto.getPlateNumber() == null) {
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"Num"});
}
}
......@@ -98,22 +104,22 @@ public class MaterialController {
@ApiOperation("物料分组界面")
@GetMapping("/labelOuput")
@PreAuthorize("@el.check('labelOuput')")
public PageData<StoragePosDto> storagePosFind(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request){
if(criteria.getStorageId()!=null&&criteria.getStorageId().equals("0")){
public PageData<StoragePosDto> storagePosFind(StoragePosFindCriteria criteria, Pageable pageable, HttpServletRequest request) {
if (criteria.getStorageId() != null && criteria.getStorageId().equals("0")) {
criteria.setStorageId(null);
}
Query query= QueryHelp.getQuery(criteria);
Criteria baseCriteria= Criteria.where("used").is(true);
Query query = QueryHelp.getQuery(criteria);
Criteria baseCriteria = Criteria.where("used").is(true);
int componentType = criteria.getType();
String name="";
if(componentType != -1){
String name = "";
if (componentType != -1) {
int type = componentType;
request.setAttribute("type", componentType);
if(componentType == 41){//锡膏夹具
if (componentType == 41) {//锡膏夹具
type = COMPONENT_TYPE.FIXTURE;
name = StorageConstants.PACKAGE_TYPE.SOLDER_FIXTURE.getCode();
}else if(componentType == 42){//PCB夹具
} else if (componentType == 42) {//PCB夹具
type = COMPONENT_TYPE.FIXTURE;
name = StorageConstants.PACKAGE_TYPE.PCB_FIXTURE.getCode();
}
......@@ -122,20 +128,78 @@ public class MaterialController {
String expire = criteria.getExpire();
if(!Strings.isNullOrEmpty(expire)){
if("solder".equalsIgnoreCase(expire)){
if (!Strings.isNullOrEmpty(expire)) {
if ("solder".equalsIgnoreCase(expire)) {
baseCriteria.and("barcode.expTime").lte(new Date());
}else if("pcb".equalsIgnoreCase(expire)){
} else if ("pcb".equalsIgnoreCase(expire)) {
baseCriteria.and("barcode.expireDate").lte(new Date());
}
request.setAttribute("expire",expire);
request.setAttribute("expire", expire);
}
query.addCriteria(baseCriteria);
PageData<StoragePos> pages=storagePosManager.findByPage(query,pageable);
List<StoragePosDto> StoragePosDtos=storagePosMapper.toDto(pages.getContent());
return new PageData(StoragePosDtos,pages.getTotalElements());
PageData<StoragePos> pages = storagePosManager.findByPage(query, pageable);
List<StoragePosDto> StoragePosDtos = storagePosMapper.toDto(pages.getContent());
for (StoragePosDto dto : StoragePosDtos
) {
if (dto.getLabelId() != null) {
Label label = labelManager.get(dto.getLabelId());
if (label != null) {
dto.setLabelName(label.getLabelName());
}
}
}
return new PageData(StoragePosDtos, pages.getTotalElements());
}
@ApiOperation("物料分组界面选择出库")
@PostMapping(value = "/labelOuput")
@PreAuthorize("@el.check('labelOuput')")
public ResultBean labelOuput(@RequestBody Set<String> posSet) {
if (posSet == null) {
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"PN"});
}
for (String posId:posSet){
StoragePos pos = storagePosManager.get(posId);
if (pos == null) {
throw new ValidateException("smfcode.valueNotExist","{0}[{1}]不存在",new String[]{"posId",posId});
}
Storage storage = dataCache.getStorageById(pos.getStorageId());
if (storage == null) {
throw new ValidateException("smfcode.valueNotExist","{0}[{1}]不存在",new String[]{"storageId",pos.getStorageId()});
}
log.info("出库料仓【" + storage.getName() + "_" + storage.getCid() + "】位置仓位【" + pos.getPosName() + "】");
String outResult = taskService.checkout(storage, pos, true);
if (!Strings.isNullOrEmpty(outResult)) {
throw new ValidateException("smfcode.error", outResult);
}
}
return ResultBean.newOkResult("ok");
}
@ApiOperation("批量修改库位分组")
@PostMapping(value = "/updatePosLabel")
@PreAuthorize("@el.check('tacticsOuput')")
public ResultBean updatePosLabel(@RequestBody Map<String, Object> params) {
Set<String> posIds = (Set<String>) params.get("posIds");
String labelId = params.get("labelId").toString();
if(posIds==null||posIds.size()<=0){
throw new ValidateException("smfcode.valueCanotNull", "{0}不能为空", new String[]{"ID"});
}
if(ObjectUtil.isEmpty(labelId)){
labelId="";
}
storagePosManager.updatePosLabel(posIds,labelId);
return ResultBean.newOkResult("");
}
}
......@@ -12,8 +12,4 @@ public class LabelDto implements Serializable {
private String id;
@ApiModelProperty(value = "标签名称")
private String labelName;
public String getLabel() {
return labelName;
}
}
......@@ -54,4 +54,12 @@ public class StoragePosDto implements Serializable {
@ApiModelProperty("并联的其他库位,合并入主库位的库位")
private List<String> mergePosList;
@ApiModelProperty("标签ID")
private String labelId="";
@ApiModelProperty("标签名称")
private String labelName;
}
......@@ -47,4 +47,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos getByBarcodeId(String barcodeId);
void clearStoragePosLabel(String id);
void updatePosLabel(Set<String> posIds, String labelId);
}
......@@ -382,4 +382,10 @@ public class StoragePosManagerImpl implements IStoragePosManager {
storagePosDao.updateMulti(query, Update.update("labelId",""));
}
@Override
public void updatePosLabel(Set<String> posIds, String labelId) {
Query query = new Query(Criteria.where("id").in(posIds));
storagePosDao.updateMulti(query, Update.update("labelId",""));
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!