Commit 8b434640 zshaohui

1.增加散料仓量测接口

2.过期报表增加状态:已过期,未过期,0-7,7-30
3.外仓异动增加首次入库时间
1 个父辈 69c5c1e0
...@@ -238,7 +238,7 @@ public class DataInitManager { ...@@ -238,7 +238,7 @@ public class DataInitManager {
addNewFunctionMenu(91,pMenuReport,"imDetailsReport","导入明细","imDetailsReport","innerWarehouse/imDetailsReport/index","feeding",functionMenuMap); addNewFunctionMenu(91,pMenuReport,"imDetailsReport","导入明细","imDetailsReport","innerWarehouse/imDetailsReport/index","feeding",functionMenuMap);
//内外仓都有 //内外仓都有
addNewFunctionMenu(92,pMenuReport,"expiredReport","过期","expiredReport","report/expiredReport/index","inventory",functionMenuMap); addNewFunctionMenu(92,pMenuReport,"expiredReport","物料状态","expiredReport","report/expiredReport/index","inventory",functionMenuMap);
//可观测性:物料追踪 //可观测性:物料追踪
Menu guanceMenu = Menu.CreatePMenu("可观测性", 8, "observability", 2, "scanKey",null); Menu guanceMenu = Menu.CreatePMenu("可观测性", 8, "observability", 2, "scanKey",null);
......
...@@ -433,6 +433,13 @@ public class NLShelfHandler extends BaseDeviceHandler { ...@@ -433,6 +433,13 @@ public class NLShelfHandler extends BaseDeviceHandler {
Barcode barcodeApi = lizhenApi.barcodeInfo(barcode); Barcode barcodeApi = lizhenApi.barcodeInfo(barcode);
if (barcodeApi != null){ if (barcodeApi != null){
//判断返回过来的物料数量与标签上的是否一致,如果不一致,则调用散料量测接口
if (barcodeApi.getAmount() != barcode.getLabelAmount()) {
boolean check = lizhenApi.checkReelMeasure(barcode);
if (!check) {
return ResultBean.newErrorResult(-1, "", barcode.getBarcode() + "散料未量测");
}
}
barcode = barcodeApi; barcode = barcodeApi;
} }
......
...@@ -215,6 +215,13 @@ public class DeviceController { ...@@ -215,6 +215,13 @@ public class DeviceController {
Barcode barcodeApi = lizhenApi.barcodeInfo(barcode); Barcode barcodeApi = lizhenApi.barcodeInfo(barcode);
if (barcodeApi != null){ if (barcodeApi != null){
//判断返回过来的物料数量与标签上的是否一致,如果不一致,则调用散料量测接口
if (barcodeApi.getAmount() != barcode.getLabelAmount()) {
boolean check = lizhenApi.checkReelMeasure(barcode);
if (!check) {
throw new ValidateException("", barcode.getBarcode() + "散料未量测");
}
}
barcode = barcodeApi; barcode = barcodeApi;
} }
......
...@@ -122,4 +122,13 @@ public class OrderItemDto { ...@@ -122,4 +122,13 @@ public class OrderItemDto {
@ApiModelProperty("缺料预警物料") @ApiModelProperty("缺料预警物料")
private String reel; private String reel;
@ApiModelProperty("累计预警时间")
private long preWarningTime;
@ApiModelProperty("发料时间")
private Date issuanceDate;
@ApiModelProperty("楼层")
private String floor;
} }
...@@ -8,6 +8,7 @@ import org.springframework.data.annotation.Transient; ...@@ -8,6 +8,7 @@ import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
...@@ -203,6 +204,22 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li ...@@ -203,6 +204,22 @@ public class LiteOrderItem extends BasePo implements Serializable ,Comparable<Li
private boolean isManualUpload = false; private boolean isManualUpload = false;
/** /**
* 楼层
*/
private String floor = "";
/**
* 预警时间
*/
private long preWarningTime;
/**
* 发料时间
*/
private Date issuanceDate;
/**
* 出库是否满足要求,已出库数量大于需求数量 * 出库是否满足要求,已出库数量大于需求数量
*/ */
public boolean isOutFinished(){ public boolean isOutFinished(){
......
...@@ -417,7 +417,7 @@ public class StoragePosController { ...@@ -417,7 +417,7 @@ public class StoragePosController {
for (StoragePosDto storagePosDto : StoragePosDtos) { for (StoragePosDto storagePosDto : StoragePosDtos) {
BarcodeDto barcode = storagePosDto.getBarcode(); BarcodeDto barcode = storagePosDto.getBarcode();
if (barcode.getPutInTime() == -1){ if (barcode.getPutInTime() == -1){
barcode.setFirstPutInDate(barcode.getPutInDate()); barcode.setFirstPutInDate(barcode.getCreateDate());
//storagePosDto.setBarcode(barcode); //storagePosDto.setBarcode(barcode);
} }
} }
...@@ -619,7 +619,7 @@ public class StoragePosController { ...@@ -619,7 +619,7 @@ public class StoragePosController {
String putInTime = (pos.getBarcode().getPutInTime() == -1) ? "" : dateFormat.format(new Date(pos.getBarcode().getPutInTime())); String putInTime = (pos.getBarcode().getPutInTime() == -1) ? "" : dateFormat.format(new Date(pos.getBarcode().getPutInTime()));
if(ObjectUtil.isEmpty(putInTime)){ if(ObjectUtil.isEmpty(putInTime)){
putInTime=dateFormat.format(pos.getBarcode().getPutInDate()); putInTime=dateFormat.format(pos.getBarcode().getCreateDate());
} }
List<Object> data = new ArrayList<>(); List<Object> data = new ArrayList<>();
......
...@@ -343,6 +343,16 @@ public class DataLog extends BasePo implements Serializable { ...@@ -343,6 +343,16 @@ public class DataLog extends BasePo implements Serializable {
*/ */
private String inventoryBatch; private String inventoryBatch;
/**
* 物料描述
*/
private String describe;
/**
* 首次入库时间
*/
private Date fristPutInDate;
public String getBarcode() { public String getBarcode() {
if(barcode == null){ if(barcode == null){
return ""; return "";
......
...@@ -563,17 +563,22 @@ public class LizhenApi extends DefaultSmfApiListener { ...@@ -563,17 +563,22 @@ public class LizhenApi extends DefaultSmfApiListener {
try { try {
log.info("散料量测接口入参为-----" + JSON.toJSONString(paramMap)); log.info("散料量测接口入参为-----" + JSON.toJSONString(paramMap));
String result = HttpHelper.postJson(checkReelMeasureUrl, paramMap); String result = HttpHelper.postJson(checkReelMeasureUrl, paramMap);
log.info("散料量测接口出参为-----" + result);
JSONObject jsonObject = JSON.parseObject(result); JSONObject jsonObject = JSON.parseObject(result);
if (jsonObject.getInteger("status") == 200) { if (jsonObject.getInteger("status") == 200) {
JSONObject data = jsonObject.getJSONObject("data"); JSONObject data = jsonObject.getJSONObject("data");
if (data.getBoolean("result")) { if (data.getBoolean("result")) {
return true; return true;
} else {
return false;
} }
} else {
return false;
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return false;
} }
return false;
} }
......
...@@ -245,6 +245,13 @@ public class OutLineController { ...@@ -245,6 +245,13 @@ public class OutLineController {
//获取mes数量 //获取mes数量
Barcode barcodeInfo = lizhenApi.barcodeInfo(barcode); Barcode barcodeInfo = lizhenApi.barcodeInfo(barcode);
if (barcodeInfo != null){ if (barcodeInfo != null){
//判断返回过来的物料数量与标签上的是否一致,如果不一致,则调用散料量测接口
if (barcodeInfo.getAmount() != barcode.getLabelAmount()) {
boolean check = lizhenApi.checkReelMeasure(barcode);
if (!check) {
return ResultBean.newErrorResult(-1,"",barcode.getBarcode()+"散料未量测");
}
}
barcode = barcodeInfo; barcode = barcodeInfo;
} }
barcode.setReelAmount(1); barcode.setReelAmount(1);
...@@ -787,6 +794,12 @@ public class OutLineController { ...@@ -787,6 +794,12 @@ public class OutLineController {
} }
} }
task.setBoxOut(isBoxOut); task.setBoxOut(isBoxOut);
if (barcode.getPutInTime() != -1){
task.setFristPutInDate(new Date(barcode.getPutInTime()));
} else {
task.setFristPutInDate(barcode.getPutInDate());
}
task.setDescribe(barcode.getDescribe());
taskService.updateFinishedTask(task); taskService.updateFinishedTask(task);
return task; return task;
} }
...@@ -1173,6 +1186,13 @@ public class OutLineController { ...@@ -1173,6 +1186,13 @@ public class OutLineController {
task.setReelPosName(barcode.getPosName()); task.setReelPosName(barcode.getPosName());
task.setExtendType(extendType); task.setExtendType(extendType);
task.setWarehouseCode(barcode.getWarehouseCode()); task.setWarehouseCode(barcode.getWarehouseCode());
//增加首次入库时间和物料描述
if(barcode.getPutInTime() != -1){
task.setFristPutInDate(new Date(barcode.getPutInTime()));
} else {
task.setFristPutInDate(barcode.getPutInDate());
}
task.setDescribe(barcode.getDescribe());
taskService.updateFinishedTask(task); taskService.updateFinishedTask(task);
return ""; return "";
} }
...@@ -1187,6 +1207,12 @@ public class OutLineController { ...@@ -1187,6 +1207,12 @@ public class OutLineController {
task.setBoxPosName(pos.getPosName()); task.setBoxPosName(pos.getPosName());
task.setExtendType(extendType); task.setExtendType(extendType);
task.setWarehouseCode(barcode.getWarehouseCode()); task.setWarehouseCode(barcode.getWarehouseCode());
if (barcode.getPutInTime() != -1) {
task.setFristPutInDate(new Date(barcode.getPutInTime()));
} else {
task.setFristPutInDate(barcode.getPutInDate());
}
task.setDescribe(barcode.getDescribe());
taskService.addTaskToExecute(task); taskService.addTaskToExecute(task);
return task; return task;
} }
......
...@@ -846,6 +846,12 @@ public class WarehouseController { ...@@ -846,6 +846,12 @@ public class WarehouseController {
task.setOperator(SecurityUtils.getCurrentUsername()); task.setOperator(SecurityUtils.getCurrentUsername());
task.setBoxPosName(pos.getPosName()); task.setBoxPosName(pos.getPosName());
task.setExtendType(extendType); task.setExtendType(extendType);
if (barcode.getPutInTime() != -1) {
task.setFristPutInDate(new Date(barcode.getPutInTime()));
} else {
task.setFristPutInDate(barcode.getPutInDate());
}
task.setDescribe(barcode.getDescribe());
taskService.addTaskToExecute(task); taskService.addTaskToExecute(task);
return task; return task;
} }
...@@ -1300,6 +1306,12 @@ public class WarehouseController { ...@@ -1300,6 +1306,12 @@ public class WarehouseController {
} }
} }
task.setBoxOut(isBoxOut); task.setBoxOut(isBoxOut);
if (barcode.getPutInTime() != -1) {
task.setFristPutInDate(new Date(barcode.getPutInTime()));
} else {
task.setFristPutInDate(barcode.getPutInDate());
}
task.setDescribe(barcode.getDescribe());
taskService.updateFinishedTask(task); taskService.updateFinishedTask(task);
return task; return task;
} }
......
...@@ -131,6 +131,13 @@ public class VirtualRestController { ...@@ -131,6 +131,13 @@ public class VirtualRestController {
Barcode barcodeInfo = lizhenApi.barcodeInfo(barcode); Barcode barcodeInfo = lizhenApi.barcodeInfo(barcode);
if (barcodeInfo != null){ if (barcodeInfo != null){
//判断返回过来的物料数量与标签上的是否一致,如果不一致,则调用散料量测接口
if (barcodeInfo.getAmount() != barcode.getLabelAmount()) {
boolean check = lizhenApi.checkReelMeasure(barcode);
if (!check) {
return ResultBean.newErrorResult(-1, "", barcode.getBarcode() + "散料未量测");
}
}
barcode = barcodeInfo; barcode = barcodeInfo;
} }
//判断是否为禁用料 //判断是否为禁用料
......
...@@ -194,7 +194,7 @@ public class InnerKanbanController { ...@@ -194,7 +194,7 @@ public class InnerKanbanController {
@AnonymousAccess @AnonymousAccess
public ResultBean getExpireInfo() throws ParseException { public ResultBean getExpireInfo() throws ParseException {
Long lastSaveTime = expireMap.get("lastSaveTime"); Long lastSaveTime = expireMap.get("lastSaveTime");
if (lastSaveTime == null || System.currentTimeMillis() - lastSaveTime >= 1000 * 60 * 60) { if (lastSaveTime == null || System.currentTimeMillis() - lastSaveTime >= 1000 * 60 * 10) {
expireMap.put("noExpire", getNoExpireCount()); expireMap.put("noExpire", getNoExpireCount());
expireMap.put("zeroToServen", getZeroToServenExpireCount()); expireMap.put("zeroToServen", getZeroToServenExpireCount());
expireMap.put("servenToThirty", getServenToThrityExpireCount()); expireMap.put("servenToThirty", getServenToThrityExpireCount());
......
...@@ -175,7 +175,7 @@ public class OuterKanbanController { ...@@ -175,7 +175,7 @@ public class OuterKanbanController {
@AnonymousAccess @AnonymousAccess
public ResultBean getExpireInfo() throws ParseException { public ResultBean getExpireInfo() throws ParseException {
Long lastSaveTime = expireMap.get("lastSaveTime"); Long lastSaveTime = expireMap.get("lastSaveTime");
if (lastSaveTime == null || System.currentTimeMillis() - lastSaveTime >= 1000 * 60 * 60) { if (lastSaveTime == null || System.currentTimeMillis() - lastSaveTime >= 1000 * 60 * 10) {
expireMap.put("noExpire", getNoExpireCount()); expireMap.put("noExpire", getNoExpireCount());
expireMap.put("zeroToServen", getZeroToServenExpireCount()); expireMap.put("zeroToServen", getZeroToServenExpireCount());
expireMap.put("servenToThirty", getServenToThrityExpireCount()); expireMap.put("servenToThirty", getServenToThrityExpireCount());
......
...@@ -43,4 +43,9 @@ public class ExpireDto extends Barcode { ...@@ -43,4 +43,9 @@ public class ExpireDto extends Barcode {
* 隔口数量 * 隔口数量
*/ */
private Integer partitionCount; private Integer partitionCount;
/**
* 备注
*/
private String remark;
} }
...@@ -37,6 +37,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType; ...@@ -37,6 +37,7 @@ import com.neotel.smfcore.custom.lizhen.innerBox.enums.ExtendType;
import com.neotel.smfcore.custom.lizhen.report.bean.dto.ExpireDto; import com.neotel.smfcore.custom.lizhen.report.bean.dto.ExpireDto;
import com.neotel.smfcore.custom.lizhen.report.bean.dto.InventoryDto; import com.neotel.smfcore.custom.lizhen.report.bean.dto.InventoryDto;
import com.neotel.smfcore.custom.lizhen.report.bean.query.ReportQueryCondition; import com.neotel.smfcore.custom.lizhen.report.bean.query.ReportQueryCondition;
import com.neotel.smfcore.custom.lizhen.util.ExpireDateUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -161,7 +162,7 @@ public class OuterReportController { ...@@ -161,7 +162,7 @@ public class OuterReportController {
resultMap.put("挑料单号", getData(dataLog.getOrderNo())); resultMap.put("挑料单号", getData(dataLog.getOrderNo()));
resultMap.put("工单号", getData(dataLog.getMo())); resultMap.put("工单号", getData(dataLog.getMo()));
resultMap.put("料号", getData(dataLog.getPartNumber())); resultMap.put("料号", getData(dataLog.getPartNumber()));
resultMap.put("物料描述", getData(null)); resultMap.put("物料描述", getData(dataLog.getDescribe()));
resultMap.put("储位", getData(dataLog.getPosName())); resultMap.put("储位", getData(dataLog.getPosName()));
resultMap.put("段别", getData(dataLog.getSide())); resultMap.put("段别", getData(dataLog.getSide()));
resultMap.put("数量", getData(dataLog.getNum())); resultMap.put("数量", getData(dataLog.getNum()));
...@@ -436,7 +437,7 @@ public class OuterReportController { ...@@ -436,7 +437,7 @@ public class OuterReportController {
resultMap.put("厂别", getData(dataLog.getPlantCode())); resultMap.put("厂别", getData(dataLog.getPlantCode()));
resultMap.put("厂区", getData(dataLog.getFactory())); resultMap.put("厂区", getData(dataLog.getFactory()));
resultMap.put("料号", getData(dataLog.getPartNumber())); resultMap.put("料号", getData(dataLog.getPartNumber()));
resultMap.put("物料描述", getData(null)); resultMap.put("物料描述", getData(dataLog.getDescribe()));
resultMap.put("隔口码", getData(dataLog.getPosName())); resultMap.put("隔口码", getData(dataLog.getPosName()));
resultMap.put("异动数量", getData(dataLog.getNum())); resultMap.put("异动数量", getData(dataLog.getNum()));
resultMap.put("储位", getData(dataLog.getStoragePosName())); resultMap.put("储位", getData(dataLog.getStoragePosName()));
...@@ -452,6 +453,7 @@ public class OuterReportController { ...@@ -452,6 +453,7 @@ public class OuterReportController {
resultMap.put("Keeper", getData(dataLog.getKeeperCode())); resultMap.put("Keeper", getData(dataLog.getKeeperCode()));
resultMap.put("原始库别", getData(dataLog.getWarehouseCode())); resultMap.put("原始库别", getData(dataLog.getWarehouseCode()));
resultMap.put("目的库别", getData(null)); resultMap.put("目的库别", getData(null));
resultMap.put("首次入库时间", getData(dataLog.getFristPutInDate()));
resultMap.put("事务日期", getData(dataLog.getCreateDate())); resultMap.put("事务日期", getData(dataLog.getCreateDate()));
resultMap.put("工号", getData(dataLog.getOperator())); resultMap.put("工号", getData(dataLog.getOperator()));
resultMap.put("姓名", getData(null)); resultMap.put("姓名", getData(null));
...@@ -707,7 +709,7 @@ public class OuterReportController { ...@@ -707,7 +709,7 @@ public class OuterReportController {
resultMap.put("厂区", getData(dto.getFactory())); resultMap.put("厂区", getData(dto.getFactory()));
resultMap.put("库别", getData(dto.getWarehouseCode())); resultMap.put("库别", getData(dto.getWarehouseCode()));
resultMap.put("料号", getData(dto.getPartNumber())); resultMap.put("料号", getData(dto.getPartNumber()));
resultMap.put("物料描述", getData(null)); resultMap.put("物料描述", getData(dto.getDescribe()));
resultMap.put("隔口码", getData(dto.getPosName())); resultMap.put("隔口码", getData(dto.getPosName()));
resultMap.put("储位", getData(dto.getStoragePosName())); resultMap.put("储位", getData(dto.getStoragePosName()));
resultMap.put("Keeper", getData(dto.getKeeperCode())); resultMap.put("Keeper", getData(dto.getKeeperCode()));
...@@ -790,7 +792,7 @@ public class OuterReportController { ...@@ -790,7 +792,7 @@ public class OuterReportController {
@AnonymousAccess @AnonymousAccess
public PageData<ExpireDto> expireInfo(ReportQueryCondition queryCondition, Pageable pageable) { public PageData<ExpireDto> expireInfo(ReportQueryCondition queryCondition, Pageable pageable) {
Query query = QueryHelp.getQuery(queryCondition); Query query = QueryHelp.getQuery(queryCondition);
query.addCriteria(Criteria.where("posName").exists(true).ne("").and("expireDate").lt(new Date())); query.addCriteria(Criteria.where("posName").exists(true).ne("").and("partNumber").nin(Arrays.asList("CS","CM","CB"))/*.and("expireDate").lt(new Date())*/);
int count = barcodeManager.countByQuery(query); int count = barcodeManager.countByQuery(query);
List<Barcode> barcodeList = barcodeManager.findByQuery(query, pageable); List<Barcode> barcodeList = barcodeManager.findByQuery(query, pageable);
List<ExpireDto> expireDtoList = new ArrayList<>(); List<ExpireDto> expireDtoList = new ArrayList<>();
...@@ -815,14 +817,20 @@ public class OuterReportController { ...@@ -815,14 +817,20 @@ public class OuterReportController {
//开始赋值 //开始赋值
for (Barcode barcode : barcodeList) { for (Barcode barcode : barcodeList) {
List<Barcode> posNameList = pidBarcodeList.stream().filter(item -> { List<Barcode> posNameList = pidBarcodeList.stream().filter(item -> {
return barcode.getHostBarcodeId().equals(item.getId()); return barcode.getPosName().startsWith(item.getBarcode());
}).collect(Collectors.toList()); }).collect(Collectors.toList());
Barcode pidBarcode = (posNameList != null && !posNameList.isEmpty()) ? posNameList.get(0) : null; Barcode pidBarcode = (posNameList != null && !posNameList.isEmpty()) ? posNameList.get(0) : null;
ExpireDto dto = new ExpireDto(); ExpireDto dto = new ExpireDto();
BeanUtils.copyProperties(barcode, dto); BeanUtils.copyProperties(barcode, dto);
dto.setPutInDate(barcode.getPutInDate()); dto.setPutInDate(barcode.getPutInDate());
dto.setExpireDays(DateUtil.between(dto.getExpireDate(),new Date(), DateUnit.DAY) + 1); if (dto.getExpireDate() != null) {
long expireDays = ExpireDateUtil.getExpireDays(dto.getExpireDate());
dto.setExpireDays(expireDays);
dto.setRemark(ExpireDateUtil.getReelStatus(expireDays));
} else {
dto.setExpireDays(0);
}
dto.setPlant("W337"); dto.setPlant("W337");
dto.setFactory("B15"); dto.setFactory("B15");
dto.setFloor("1F"); dto.setFloor("1F");
...@@ -851,7 +859,7 @@ public class OuterReportController { ...@@ -851,7 +859,7 @@ public class OuterReportController {
@AnonymousAccess @AnonymousAccess
public void expireInfoDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) throws IOException { public void expireInfoDownload(ReportQueryCondition queryCondition, Pageable pageable, HttpServletResponse response) throws IOException {
Query query = QueryHelp.getQuery(queryCondition); Query query = QueryHelp.getQuery(queryCondition);
query.addCriteria(Criteria.where("posName").exists(true).ne("").and("expireDate").lt(new Date())); query.addCriteria(Criteria.where("posName").exists(true).ne("").and("partNumber").nin(Arrays.asList("CS","CM","CB"))/*.and("expireDate").lt(new Date())*/);
FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() { FileUtil.downloadExcel(query, pageable, response, new IExcelDownLoad() {
@Override @Override
...@@ -874,11 +882,13 @@ public class OuterReportController { ...@@ -874,11 +882,13 @@ public class OuterReportController {
header.add(Lists.newArrayList("厂商代码")); header.add(Lists.newArrayList("厂商代码"));
header.add(Lists.newArrayList("keeper")); header.add(Lists.newArrayList("keeper"));
header.add(Lists.newArrayList("过期天数")); header.add(Lists.newArrayList("过期天数"));
header.add(Lists.newArrayList("物料状态"));
header.add(Lists.newArrayList("过期日期")); header.add(Lists.newArrayList("过期日期"));
header.add(Lists.newArrayList("工号")); header.add(Lists.newArrayList("工号"));
header.add(Lists.newArrayList("首次入库时间")); header.add(Lists.newArrayList("首次入库时间"));
header.add(Lists.newArrayList("当前入库时间")); header.add(Lists.newArrayList("当前入库时间"));
header.add(Lists.newArrayList("来源")); header.add(Lists.newArrayList("来源"));
header.add(Lists.newArrayList("备注"));
return header; return header;
} }
...@@ -903,14 +913,21 @@ public class OuterReportController { ...@@ -903,14 +913,21 @@ public class OuterReportController {
List<Barcode> pidBarcodeList = barcodeManager.findByQuery(new Query(Criteria.where("barcode").in(boxStrList))); List<Barcode> pidBarcodeList = barcodeManager.findByQuery(new Query(Criteria.where("barcode").in(boxStrList)));
for (Barcode barcode : barcodeList) { for (Barcode barcode : barcodeList) {
List<Barcode> posNameList = pidBarcodeList.stream().filter(item -> { List<Barcode> posNameList = pidBarcodeList.stream().filter(item -> {
return barcode.getHostBarcodeId().equals(item.getId()); return barcode.getPosName().startsWith(item.getBarcode());
}).collect(Collectors.toList()); }).collect(Collectors.toList());
Barcode pidBarcode = (posNameList != null && !posNameList.isEmpty()) ? posNameList.get(0) : null; Barcode pidBarcode = (posNameList != null && !posNameList.isEmpty()) ? posNameList.get(0) : null;
ExpireDto dto = new ExpireDto(); ExpireDto dto = new ExpireDto();
List<Object> data = new ArrayList<>(); List<Object> data = new ArrayList<>();
BeanUtils.copyProperties(barcode, dto); BeanUtils.copyProperties(barcode, dto);
dto.setPutInDate(barcode.getPutInDate()); dto.setPutInDate(barcode.getPutInDate());
dto.setExpireDays(DateUtil.between(dto.getExpireDate(), new Date(), DateUnit.DAY) + 1); if (dto.getExpireDate() != null) {
long expireDays = ExpireDateUtil.getExpireDays(dto.getExpireDate());
dto.setExpireDays(expireDays);
dto.setRemark(ExpireDateUtil.getReelStatus(expireDays));
} else {
dto.setExpireDays(0);
dto.setRemark("");
}
dto.setPlant("W337"); dto.setPlant("W337");
dto.setFactory("B15"); dto.setFactory("B15");
dto.setFloor("1F"); dto.setFloor("1F");
...@@ -947,6 +964,7 @@ public class OuterReportController { ...@@ -947,6 +964,7 @@ public class OuterReportController {
data.add(dto.getFirstPutInDate()); data.add(dto.getFirstPutInDate());
data.add(dto.getPutInDate()); data.add(dto.getPutInDate());
data.add(dto.getSource()); data.add(dto.getSource());
data.add(dto.getRemark());
resultList.add(data); resultList.add(data);
} }
} }
......
...@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.lizhen.util; ...@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.lizhen.util;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -11,6 +12,31 @@ import java.util.Locale; ...@@ -11,6 +12,31 @@ import java.util.Locale;
@Slf4j @Slf4j
public class ExpireDateUtil { public class ExpireDateUtil {
public static long getExpireDays(Date expireDate) {
Date date = new Date();
long days = DateUtil.between(expireDate, date, DateUnit.DAY) + 1;
if (expireDate.getTime() >= date.getTime()) {
days = -days;
}
return days;
}
public static String getReelStatus(long days) {
if (days <= 0 && days > -7) {
return "0-7天过期(未过期)";
}
if (days > -30 && days <= -7) {
return "7-30天过期(未过期)";
}
if (days > 0) {
return "已过期";
}
if (days < 0) {
return "未过期";
}
return "";
}
public static Date getExpireDate(String dateStr, String vendor) { public static Date getExpireDate(String dateStr, String vendor) {
try { try {
vendor = vendor.toUpperCase(Locale.ROOT); vendor = vendor.toUpperCase(Locale.ROOT);
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!