Commit 18d34429 LN

料仓,元器件接口修改

1 个父辈 7ca8f223
......@@ -107,7 +107,7 @@ public class DataInitManager {
role= roleManager.save(role);
log.info("创建默认角色:" + role.toString());
admin = new User( userName, "admin@qq.com","zh",role.getId(), "$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa", true, true, new Date(), groupIds );
admin = new User( userName, "admin@qq.com","zh",role.getId(), "$2a$10$Egp1/gvFlt7zhlXVfEFw4OfWQCGPw0ClmMcc6FjTnvXNRVf9zdMRa", true, true, new Date(), groupIds,"" );
userManager.save(admin);
log.info("创建默认用户:" + admin.toString());
......
......@@ -103,10 +103,9 @@ public class BarcodeController {
for (String id : ids) {
if (id == null) {
throw new BadRequestException("删除条码:ID不能为空");
}else{
throw new BadRequestException("删除条码:暂未开放");
}
}
barcodeManager.deleteBarcodes(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -84,10 +84,9 @@ public class ComponentController {
for (String id : ids) {
if (id == null) {
throw new BadRequestException("删除元器件:ID不能为空");
}else{
throw new BadRequestException("删除元器件:暂未开放");
}
}
componentManager.deleteComponents(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
......
......@@ -6,6 +6,7 @@ import com.neotel.smfcore.core.barcode.service.po.Barcode;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Set;
public interface IBarcodeManager extends IBaseManager<Barcode> {
......@@ -14,4 +15,6 @@ public interface IBarcodeManager extends IBaseManager<Barcode> {
Barcode saveBarcode(Barcode resources);
void download(List<Barcode> list, HttpServletResponse response) throws IOException;
void deleteBarcodes(Set<String> ids);
}
......@@ -6,13 +6,16 @@ import com.neotel.smfcore.core.barcode.service.po.Component;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Set;
public interface IComponentManager extends IBaseManager<Component> {
Component findByPartNumberAndProvider(String partNumber, String provider);
Component findOneByPN(String partNumber);
void saveComponent(Component resources);
Component saveComponent(Component resources);
void download(List<Component> queryAll, HttpServletResponse response) throws IOException;
void deleteComponents(Set<String> ids);
}
......@@ -20,10 +20,7 @@ import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@Service
......@@ -83,6 +80,21 @@ public class BarcodeManagerImpl implements IBarcodeManager {
}
@Override
public void deleteBarcodes(Set<String> ids) {
Query query = new Query(Criteria.where("id").in(ids));
List<Barcode> barcodes = barcodeDao.findByQuery(query);
String delnames = "";
for (Barcode barcode :
barcodes) {
delnames += "[" + barcode.getBarcode() + "_" + barcode.getPartNumber() + "]";
}
barcodeDao.removeByQuery(query);
log.info("手动删除条码" + delnames + "完成");
}
@Override
public Barcode saveBarcode(Barcode resources) {
validateSave(resources);
......
package com.neotel.smfcore.core.barcode.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.BadRequestException;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.FileUtil;
import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.service.dao.IBarcodeDao;
import com.neotel.smfcore.core.barcode.service.dao.IComponentDao;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.security.service.po.User;
import com.neotel.smfcore.core.storage.service.dao.IStoragePosDao;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
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 javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Slf4j
@Service
public class ComponentManagerImpl implements IComponentManager {
@Autowired
private IComponentDao componentDao;
@Autowired
private IBarcodeDao barcodeDao;
@Autowired
private IStoragePosDao storagePosDao;
@Override
public Component get(String id) {
......@@ -38,14 +48,14 @@ public class ComponentManagerImpl implements IComponentManager {
@Override
public void delete(Component object) throws ValidateException {
componentDao.removeOne(object);
}
@Override
public PageData<Component> findByPage(Query query, Pageable pageable) {
int totalCount = componentDao.countByQuery(query);
List<Component> list = componentDao.findByQuery(query, pageable);
return new PageData<Component>(list,totalCount);
return new PageData<Component>(list, totalCount);
}
@Override
......@@ -58,10 +68,10 @@ public class ComponentManagerImpl implements IComponentManager {
if (StringUtils.isEmpty(partNumber))
return null;
else {
Component component = componentDao.findOneByCondition(new String[] {"partNumber","provider"}, new String[] {partNumber,provider});
if(component == null){
component = componentDao.findOneByCondition(new String[] {"partNumber","provider"}, new String[] {partNumber,null});
if(component != null){
Component component = componentDao.findOneByCondition(new String[]{"partNumber", "provider"}, new String[]{partNumber, provider});
if (component == null) {
component = componentDao.findOneByCondition(new String[]{"partNumber", "provider"}, new String[]{partNumber, null});
if (component != null) {
component.setProvider(provider);
component = componentDao.save(component);
}
......@@ -88,15 +98,87 @@ public class ComponentManagerImpl implements IComponentManager {
map.put("名称", component.getName());
map.put("物料编号", component.getPartNumber());
map.put("供应商编码", component.getProviderNumber());
map.put("料盘尺寸", component.getPlateSize()+"X"+component.getHeight());
map.put("料盘尺寸", component.getPlateSize() + "X" + component.getHeight());
map.put("封装数量", component.getAmount());
map.put("创建日期", component.getCreateDate());
list.add(map);
}
FileUtil.downloadExcel(list, response);
}
@Override
public void deleteComponents(Set<String> ids) {
Query query = new Query(Criteria.where("id").in(ids));
List<Component> components = componentDao.findByQuery(query);
String deleteNames = "";
for (Component com :
components) {
deleteNames += "[" + com.getName() + "]";
}
componentDao.removeByQuery(query);
log.info("手动删除元器件" + deleteNames + "完成");
}
@Override
public void saveComponent(Component resources) {
public Component saveComponent(Component resources) {
if(resources.getPartNumber()==null){
throw new BadRequestException("料号不能为空");
}
if(resources.getProvider()==null){
resources.setProvider("");
}
if(resources.getProviderNumber()==null){
resources.setProviderNumber("");
}
if(resources.getDescription()==null){
resources.setDescription("");
}
if(resources.getType()== COMPONENT_TYPE.PCB ){
resources.setFixtureNumber("");
resources.setPlateSize(StorageConstants.PACKAGE_TYPE.PCB_FIXTURE.getW());
resources.setHeight(StorageConstants.PACKAGE_TYPE.PCB_FIXTURE.getH());
}
//判断partNum是否重复
Criteria c = Criteria.where("partNumber").is(resources.getPartNumber());
String logName = "新增元器件";
if (resources.getId() != null) {
logName = "修改元器件";
c.and("id").ne(resources.getId());
}
Component com = componentDao.findOne(new Query(c));
if (com != null) {
throw new BadRequestException("料号["+resources.getPartNumber()+"]已存在");
}
resources= componentDao.save(resources);
if(resources.getType() == COMPONENT_TYPE.SOLDERPASTE){
Criteria barcodeC = Criteria.where("partNumber").is(resources.getPartNumber());
Query barcodeQuery = new Query(barcodeC);
List<Barcode> barcodes = barcodeDao.findByQuery(barcodeQuery);
for (Barcode barcode : barcodes) {
barcode.setWarmTime(resources.getWarmTime());
barcode.setMixTime(resources.getMixTime());
barcode.setMaxStorageTime(resources.getMaxStorageTime());
barcodeDao.save(barcode);
}
Criteria posC = Criteria.where("barcode.partNumber").is(resources.getPartNumber());
Query query = new Query(posC);
List<StoragePos> poses = storagePosDao.findByQuery(query);
for (StoragePos pos : poses){
pos.getBarcode().setType(resources.getType());
pos.getBarcode().setWarmTime(resources.getWarmTime());
pos.getBarcode().setMixTime(resources.getMixTime());
pos.getBarcode().setMaxStorageTime(resources.getMaxStorageTime());
//pos.setCreateDate(new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000));
pos.setCanCheckOutTime(pos.getBarcode().getReachWarmTime());
storagePosDao.save(pos);
}
}
return resources;
}
}
......@@ -249,6 +249,15 @@ public class DataCache {
return storage;
}
public void removeStorage(Storage storage) {
if (storage.getCid() != null) {
if (allStorage.containsKey(storage.getCid())) {
allStorage.remove(storage.getCid());
log.info("从缓存中删除料仓:" + storage.getCid() + "_" + storage.getName());
}
}
}
/**
* 锁定库存
......
......@@ -25,6 +25,7 @@ import lombok.RequiredArgsConstructor;
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.http.HttpStatus;
import org.springframework.http.ResponseEntity;
......@@ -99,17 +100,42 @@ public class StorageController {
@PreAuthorize("@el.check('storage:del')")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
List<Storage> storages = new ArrayList<Storage>();
for (String id : ids) {
if (id == null) {
throw new BadRequestException("删除料仓:ID不能为空");
}else{
throw new BadRequestException("删除料仓:暂未开放");
}
}
deleteStorages(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
public void deleteStorages(Set<String> ids) {
Query querySto = new Query(Criteria.where("id").in(ids));
List<Storage> storages = storageDao.findByQuery(querySto);
String delStoName = "";
for (Storage storage : storages) {
//验证料仓是否有料
Query query = new Query(Criteria.where("storageId").is(storage.getId()));
List<StoragePos> posList = storagePosManager.findByQuery(query);
if(posList!=null) {
for (StoragePos pos : posList
) {
if (pos.getBarcode() == null || pos.getBarcode().equals("")) {
} else {
throw new BadRequestException("料仓[" + storage.getName() + "]的库位[" + pos.getPosName() + "]有料[" + pos.getBarcode() + "],删除失败");
}
}
}
delStoName += "[" + storage.getName() + "]";
}
storageDao.removeByQuery(querySto);
for (Storage storage : storages) {
dataCache.removeStorage(storage);
}
log.info("手动删除料仓" + delStoName + "完成");
}
private Storage saveStorage(Storage storage) {
if(storage.getName()==null){
throw new BadRequestException("料仓名称不能为空");
......@@ -126,7 +152,7 @@ public class StorageController {
Map<String, Storage> storageMap=dataCache.getAllStorage();
for (Storage s:storageMap.values()
) {
if(isNew||(storage.getId()!=s.getId())){
if(isNew || (!storage.getId().equals(s.getId()))) {
if(s.getCid().equals(storage.getCid())){
throw new BadRequestException("料仓cid["+storage.getCid()+"]已存在");
......
......@@ -136,14 +136,12 @@ public class StoragePosController {
@PreAuthorize("@el.check('storage:del')")
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
List<StoragePos> storages = new ArrayList<StoragePos>();
for (String id : ids) {
if (id == null) {
throw new BadRequestException("删除库位:ID不能为空");
}else{
throw new BadRequestException("删除库位:暂未开放");
}
}
storagePosManager.deletePoss(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}
......@@ -4,6 +4,7 @@ import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import java.util.List;
import java.util.Set;
public interface IStorageManager extends IBaseManager<Storage> {
List<Storage> findAll();
......
......@@ -9,6 +9,7 @@ import com.neotel.smfcore.core.storage.service.po.StoragePos;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface IStoragePosManager extends IBaseManager<StoragePos> {
......@@ -25,4 +26,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
StoragePos findPartNumberInStorages(List<String> storageIdList, String pn, Collection<String> excludePosIds, CHECKOUT_TYPE checkOutType);
void removePosByStorageId(String storageId);
void deletePoss(Set<String> ids);
}
......@@ -5,16 +5,23 @@ import com.neotel.smfcore.common.exception.BadRequestException;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.service.dao.IStorageDao;
import com.neotel.smfcore.core.storage.service.dao.IStoragePosDao;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
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.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Slf4j
@Service
public class StorageManagerImpl implements IStorageManager {
......@@ -34,7 +41,7 @@ public class StorageManagerImpl implements IStorageManager {
@Override
public void delete(Storage object) throws ValidateException {
storageDao.removeOne(object);
}
@Override
......
......@@ -3,7 +3,9 @@ package com.neotel.smfcore.core.storage.service.manager.impl;
import com.google.common.base.Strings;
import com.google.common.collect.Maps;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.BadRequestException;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.barcode.bean.PlateSizeBean;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.enums.CHECKOUT_TYPE;
......@@ -23,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Service
@Slf4j
......@@ -252,4 +255,22 @@ public class StoragePosManagerImpl implements IStoragePosManager {
Query query=new Query(Criteria.where("storageId").is(storageId));
storagePosDao.removeByQuery(query);
}
@Override
public void deletePoss(Set<String> ids) {
Query query =new Query(Criteria.where("id").in(ids));
List<StoragePos> poss= storagePosDao.findByQuery(query);
String delPosName="";
for (StoragePos pos :
poss) {
if(pos.getBarcode()==null||pos.getBarcode().equals("")) {
}else{
throw new BadRequestException("库位[" + pos.getPosName() + "]中有料[" + pos.getBarcode() + "],不能删除");
}
delPosName+="["+pos.getId()+"_"+pos.getPosName()+"]";
}
log.info("手动删除库位:"+delPosName+" 完成 ");
storagePosDao.removeByQuery(query);
}
}
......@@ -103,11 +103,15 @@ public class UserController {
throw new BadRequestException("新增用户:角色ID不能为空");
}
if(resources.getEnabled()==null){
resources.setEnabled(true);
resources.setEnabled(false);
}
if(resources.getGroups()==null){
resources.setGroups(new HashSet<String>());
}
resources.setEnabled(false);
if(resources.getCheckCode()==null){
resources.setCheckCode("");
}
resources.setPassword(passwordEncoder.encode("123456"));
resources.setUpdateDate(new Date());
resources.setPwdResetTime(new Date());
......
......@@ -68,6 +68,9 @@ public class UserManagerImpl implements IUserManager {
if(user.getUpdateDate()==null){
user.setUpdateDate(new Date());
}
if(user.getCheckCode()==null){
user.setCheckCode("");
}
//用户名admin不能修改
if(!dataUser.equals(Constants.SUPER_USERNAME)){
dataUser.setUsername(user.getUsername());
......@@ -143,12 +146,12 @@ public class UserManagerImpl implements IUserManager {
List<Map<String, Object>> list = new ArrayList<>();
for (User user : queryAll) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("用户ID", user.getId());
map.put("用户名", user.getUsername());
map.put("角色", user.getRoleId());
map.put("邮箱", user.getEmail());
map.put("状态", user.getEnabled() ? "启用" : "禁用");
map.put("语言",user.getLanguage());
map.put("修改密码的时间", user.getPwdResetTime());
map.put("创建日期", user.getCreateDate());
list.add(map);
}
......@@ -192,4 +195,20 @@ public class UserManagerImpl implements IUserManager {
userDao.updateFirst(query,update);
}
public String GetUserCheckCode(User user){
if(user.getId()==null||user.getCreateDate()==null){
throw new BadRequestException("用户信息不完整");
}
return "";
}
public boolean CheckUserCode(User user,String code){
return false;
}
}
......@@ -56,4 +56,6 @@ public class User extends BasePo implements Serializable {
private Set<String> groups;
private String checkCode;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!