Commit 43d14c35 zshaohui

看板:过期和呆滞信息

1 个父辈 14337363
......@@ -186,6 +186,17 @@ public class DateUtil {
return date0.after(date1)? date0 : date1;
}
/**
* 通过秒毫秒数判断两个时间的间隔的天数
* @param date1
* @param date2
* @return
*/
public static int differentDaysByMillisecond(Date date1,Date date2)
{
int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
return days;
}
public static class Req{
......
......@@ -82,4 +82,6 @@ public interface IStoragePosManager extends IBaseManager<StoragePos> {
List<StoragePos> findPosByIdList(List<String> idList);
StoragePos findMpnInStorages(List<String> availableStorageIds, String mpn, Collection<String> excludePosIds, CHECKOUT_TYPE checkoutType);
List<StoragePos> findExpiredOrSluggishBarcode(Date date,int type);
}
......@@ -697,4 +697,18 @@ public class StoragePosManagerImpl implements IStoragePosManager {
return pos;
}
@Override
public List<StoragePos> findExpiredOrSluggishBarcode(Date date, int type) {
Query q = new Query();
Criteria c = Criteria.where("used").is(true);
//0 是返回过期字段 1是返回呆滞字段
if (type == 0) {
c.and("barcode.expireDate").exists(true).lte(date);
q.fields().include("barcode.expireDate");
} else if (type == 1) {
c.and("barcode.putInDate").exists(true).lte(date);
q.fields().include("barcode.putInDate");
}
return storagePosDao.findByQuery(q.addCriteria(c));
}
}
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.storage.service.manager.IStoragePosManager;
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;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "看板")
public class KanbanController {
@Autowired
private IStoragePosManager storagePosManager;
@ApiOperation("过期信息")
@RequestMapping("/getExpiredInfo")
@AnonymousAccess
public ExpireDto getExpiredInfo() {
ExpireDto dto = new ExpireDto();
int expire = 0;
int zeroToSevenExpire = 0;
int sevenToThirtyExpire = 0;
Date currentDate = new Date();
List<StoragePos> expStoragePosList = storagePosManager.findExpiredOrSluggishBarcode(currentDate,0);
if (expStoragePosList != null && !expStoragePosList.isEmpty()) {
expire = expStoragePosList.size();
for (StoragePos storagePos : expStoragePosList) {
Barcode barcode = storagePos.getBarcode();
if (barcode != null) {
Date expireDate = barcode.getExpireDate();
int days = DateUtil.differentDaysByMillisecond(expireDate, currentDate);
if (0 <= days && days < 7) {
zeroToSevenExpire++;
} else if (7 <= days && days < 30) {
sevenToThirtyExpire++;
}
}
}
}
dto.setExpire(expire);
dto.setSevenToThirtyExpire(sevenToThirtyExpire);
dto.setZeroToSevenExpire(zeroToSevenExpire);
return dto;
}
@ApiOperation("呆滞信息")
@RequestMapping("/getSluggishInfo")
@AnonymousAccess
public SluggishDto getSluggishInfo() {
SluggishDto dto = new SluggishDto();
int sevenToThirtySluggish = 0;
int moreThenThirtySluggish = 0;
Date currentDate = new Date();
List<StoragePos> sluStoragePosList = storagePosManager.findExpiredOrSluggishBarcode(currentDate, 1);
if (sluStoragePosList != null && !sluStoragePosList.isEmpty()) {
for (StoragePos storagePos : sluStoragePosList) {
Barcode barcode = storagePos.getBarcode();
if (barcode != null) {
Date putInDate = barcode.getPutInDate();
int days = DateUtil.differentDaysByMillisecond(putInDate, currentDate);
if (7 <= days && days < 30) {
sevenToThirtySluggish++;
} else if (days >= 30) {
moreThenThirtySluggish++;
}
}
}
}
dto.setSevenToThirtySluggish(sevenToThirtySluggish);
dto.setMoreThenThirtySluggish(moreThenThirtySluggish);
return dto;
}
}
package com.neotel.smfcore.custom.sungya20456.kanban.bean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ExpireDto {
@ApiModelProperty("过期物料数量")
private int expire = 0;
@ApiModelProperty("0-7天过期数量")
private int zeroToSevenExpire = 0;
@ApiModelProperty("7到30天过期")
private int sevenToThirtyExpire = 0;
}
package com.neotel.smfcore.custom.sungya20456.kanban.bean;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SluggishDto {
@ApiModelProperty("7到30天呆滞")
private int sevenToThirtySluggish = 0;
@ApiModelProperty("超过30天呆滞")
private int moreThenThirtySluggish = 0;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!