Commit 96fbaa34 zshaohui

1.看板数据,库位使用率

2.出入库数据dao和service提交
1 个父辈 146bc1dc
......@@ -12,6 +12,8 @@ import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.language.service.bean.LanguageInfo;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
......@@ -68,6 +70,9 @@ public class DataCache {
@Autowired
private IComponentManager componentManager;
@Autowired
private IInOutDataManager inOutDataManager;
/**
* 是否需要推送温湿度报警值
*/
......@@ -837,4 +842,13 @@ public class DataCache {
Map<String, Integer> map = spUsedPosCountMap.get(cid);
return map.get(type);
}
/**
* key为cid,value为出入库数量
*/
private static Map<String, InOutData> inOutDataMap = new ConcurrentHashMap<>();
private void updateInOutData(Storage storage, int count) {
}
}
package com.neotel.smfcore.core.inout.service.dao;
import com.neotel.smfcore.common.base.IBaseDao;
public interface IInOutDataDao extends IBaseDao {
}
package com.neotel.smfcore.core.inout.service.dao.impl;
import com.neotel.smfcore.common.base.AbstractBaseDao;
import com.neotel.smfcore.core.inout.service.dao.IInOutDataDao;
import org.springframework.stereotype.Service;
@Service
public class InOutDataDaoImpl extends AbstractBaseDao implements IInOutDataDao {
@Override
public Class getEntityClass() {
return IInOutDataDao.class;
}
}
package com.neotel.smfcore.core.inout.service.manager;
import com.neotel.smfcore.common.base.IBaseManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import java.util.Date;
public interface IInOutDataManager extends IBaseManager<InOutData> {
InOutData findOneByDate(Date startDate,Date endDate);
}
package com.neotel.smfcore.core.inout.service.manager.impl;
import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.inout.service.dao.IInOutDataDao;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.report.rest.dto.InoutDataDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
public class InOutDataManagerImpl implements IInOutDataManager {
@Autowired
private IInOutDataDao inOutDataDao;
@Override
public InOutData get(String id) {
return null;
}
@Override
public InOutData save(InOutData object) throws ValidateException {
return inOutDataDao.save(object);
}
@Override
public void delete(InOutData object) throws ValidateException {
}
@Override
public PageData<InOutData> findByPage(Query query, Pageable pageable) {
return null;
}
@Override
public List<InOutData> findByQuery(Query query) {
return null;
}
@Override
public InOutData findOneByDate(Date startDate,Date endDate) {
Query q = new Query();
Criteria c = Criteria.where("createDate").gte(startDate);
if (endDate != null){
c.and("createDate").lt(endDate);
}
Sort s = Sort.by(Sort.Direction.DESC, "createDate");
return inOutDataDao.findOne(q.addCriteria(c).with(s));
}
}
package com.neotel.smfcore.core.inout.service.po;
import com.neotel.smfcore.common.base.BasePo;
import lombok.Data;
import org.springframework.data.mongodb.core.mapping.Document;
@Data
@Document
public class InOutData extends BasePo {
/**
* 设备cid
*/
private String cid;
/**
* 设备id
*/
private String storageId;
/**
* 入库数量
*/
private int inCount = 0;
/**
* 出库数量
*/
private int outCount = 0;
}
......@@ -2,7 +2,9 @@ package com.neotel.smfcore.custom.sungya20456.kanban;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.util.DataCache;
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 com.neotel.smfcore.custom.sungya20456.kanban.bean.ExpireDto;
import com.neotel.smfcore.custom.sungya20456.kanban.bean.SluggishDto;
......@@ -16,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collection;
import java.util.Date;
import java.util.List;
......@@ -29,6 +32,9 @@ public class KanbanController {
@Autowired
private IStoragePosManager storagePosManager;
@Autowired
private DataCache dataCache;
@ApiOperation("过期信息")
@RequestMapping("/getExpiredInfo")
@AnonymousAccess
......@@ -38,7 +44,7 @@ public class KanbanController {
int zeroToSevenExpire = 0;
int sevenToThirtyExpire = 0;
Date currentDate = new Date();
List<StoragePos> expStoragePosList = storagePosManager.findExpiredOrSluggishBarcode(currentDate,0);
List<StoragePos> expStoragePosList = storagePosManager.findExpiredOrSluggishBarcode(currentDate, 0);
if (expStoragePosList != null && !expStoragePosList.isEmpty()) {
expire = expStoragePosList.size();
for (StoragePos storagePos : expStoragePosList) {
......@@ -87,4 +93,23 @@ public class KanbanController {
dto.setMoreThenThirtySluggish(moreThenThirtySluggish);
return dto;
}
@ApiOperation("库位使用率")
@RequestMapping("/getPosUsage")
@AnonymousAccess
public int getPosUsage() {
int usage = 0;
int totalSlots = 0;
int emptySlots = 0;
Collection<Storage> storages = dataCache.getAllStorage().values();
for (Storage storage : storages) {
totalSlots = totalSlots + storage.getTotalSlots();
emptySlots = emptySlots + storage.getEmptySlots();
}
if (totalSlots != 0) {
usage = (totalSlots - emptySlots) / totalSlots;
}
return usage;
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!