Commit dc3a9fc9 LN

Merge remote-tracking branch 'origin/master'

2 个父辈 29070185 d210dbac
package com.neotel.smfcore.custom.sungya20456.kanban;
package com.neotel.smfcore.core.elecKanban;
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.elecKanban.bean.dto.SluggishDto;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
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.dto.ExpireDto;
import com.neotel.smfcore.custom.sungya20456.kanban.bean.dto.InOutDataDto;
import com.neotel.smfcore.custom.sungya20456.kanban.bean.dto.SluggishDto;
import com.neotel.smfcore.core.elecKanban.bean.dto.ExpireDto;
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;
......@@ -21,18 +18,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@RestController
@RequiredArgsConstructor
@Api(tags = "看板")
public class KanbanController {
@RequestMapping("/elecKanban")
public class ElecKanbanController {
@Autowired
private IStoragePosManager storagePosManager;
......@@ -40,9 +36,6 @@ public class KanbanController {
@Autowired
private DataCache dataCache;
@Autowired
private IInOutDataManager inOutDataManager;
@ApiOperation("过期信息")
@RequestMapping("/getExpiredInfo")
@AnonymousAccess
......@@ -120,40 +113,4 @@ public class KanbanController {
}
return usage;
}
@ApiOperation("近7日出入库统计")
@RequestMapping("/getServenInOutData")
@AnonymousAccess
public InOutDataDto getServenInOutData() {
InOutDataDto dto = new InOutDataDto();
List<String> dateStrList = new ArrayList<>();
List<Integer> inDataList = new ArrayList<>();
List<Integer> outDataList = new ArrayList<>();
int days = 7;
//1.获取当前日期
String currentDateStr = DateUtil.toDateString(new Date(), "yyyy-MM-dd");
Date currentDate = DateUtil.toDate(currentDateStr,"yyyy-MM-dd");
//2.开始处理 7天数据
for (int day = 1; day <= days; day++) {
Date startDate = DateUtil.addDays(currentDate, day - days);
Date endDate = DateUtil.addDays(currentDate, day - days + 1);
List<InOutData> inOutDataList = inOutDataManager.findByDate(startDate, endDate);
int inData = 0;
int outData = 0;
if (inOutDataList != null && !inOutDataList.isEmpty()) {
inData = inOutDataList.stream().mapToInt(InOutData :: getInCount).sum();
outData = inOutDataList.stream().mapToInt(InOutData :: getOutCount).sum();
}
dateStrList.add(DateUtil.toDateString(startDate,"MM/dd"));
inDataList.add(inData);
outDataList.add(outData);
}
dto.setDateStrList(dateStrList);
dto.setInDataList(inDataList);
dto.setOutDataList(outDataList);
return dto;
}
}
package com.neotel.smfcore.custom.sungya20456.kanban.bean.dto;
package com.neotel.smfcore.core.elecKanban.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.neotel.smfcore.custom.sungya20456.kanban.bean.dto;
package com.neotel.smfcore.core.elecKanban.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
package com.neotel.smfcore.custom.sungya20456.kanban.bean.dto;
package com.neotel.smfcore.core.elecKanban.bean.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......
......@@ -8,7 +8,7 @@ import java.util.Date;
import java.util.List;
public interface IInOutDataManager extends IBaseManager<InOutData> {
List<InOutData> findByDate(Date startDate, Date endDate);
List<InOutData> findByDate(Date startDate, Date endDate,List<String> storageIdList);
InOutData findOne(Query query);
......
......@@ -48,9 +48,12 @@ public class InOutDataManagerImpl implements IInOutDataManager {
}
@Override
public List<InOutData> findByDate(Date startDate,Date endDate) {
public List<InOutData> findByDate(Date startDate, Date endDate, List<String> storageIdList) {
Query q = new Query();
Criteria c = Criteria.where("createDate").gte(startDate).lt(endDate);
if (storageIdList != null && !storageIdList.isEmpty()) {
c.and("storageId").in(storageIdList);
}
Sort s = Sort.by(Sort.Direction.DESC, "createDate");
return inOutDataDao.findByQuery(q.addCriteria(c).with(s));
}
......
package com.neotel.smfcore.core.report;
import com.neotel.smfcore.common.utils.SecurityUtils;
import cn.hutool.core.date.DateUnit;
import com.neotel.smfcore.common.bean.BetweenData;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.kanban.rest.bean.dto.BoxKanbanDto;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.report.bean.ChartItem;
import com.neotel.smfcore.core.report.rest.dto.InoutDataDto;
import com.neotel.smfcore.core.report.rest.dto.InventoryBoxDto;
import com.neotel.smfcore.core.report.rest.dto.InventoryGroupDto;
import com.neotel.smfcore.core.report.rest.mapstruct.ChartItemMapper;
import com.neotel.smfcore.core.report.rest.query.ReportQuery;
import com.neotel.smfcore.core.storage.bean.UsageItem;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.elecKanban.bean.dto.InOutDataDto;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.Group;
import com.neotel.smfcore.security.service.po.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......@@ -29,7 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@Slf4j
......@@ -49,6 +50,9 @@ public class ReportController {
@Autowired
DataCache dataCache;
@Autowired
IInOutDataManager inOutDataManager;
@RequestMapping(value = "/rest/api/mes/inOutData")
@ResponseBody
@AnonymousAccess
......@@ -129,4 +133,50 @@ public class ReportController {
}
return groupDtos;
}
@ApiOperation("出入库统计")
@RequestMapping("/api/report/getInOutData")
@AnonymousAccess
public InOutDataDto getServenInOutData(ReportQuery query) {
InOutDataDto dto = new InOutDataDto();
List<String> dateStrList = new ArrayList<>();
List<Integer> inDataList = new ArrayList<>();
List<Integer> outDataList = new ArrayList<>();
int days = 7;
//1.获取当前日期
String currentDateStr = DateUtil.toDateString(new Date(), "yyyy-MM-dd");
Date currentDate = DateUtil.toDate(currentDateStr, "yyyy-MM-dd");
//判断日期是否为空
BetweenData<Date> updateDate = query.getUpdateDate();
if (updateDate != null) {
Date from = updateDate.getFrom();
Date to = updateDate.getTo();
if (to != null) {
currentDate = to;
}
if (from != null) {
days = (int) cn.hutool.core.date.DateUtil.between(from, to, DateUnit.DAY) + 1;
}
}
//2.开始处理 7天数据
for (int day = 1; day <= days; day++) {
Date startDate = DateUtil.addDays(currentDate, day - days);
Date endDate = DateUtil.addDays(currentDate, day - days + 1);
List<InOutData> inOutDataList = inOutDataManager.findByDate(startDate, endDate, query.getStorageIdList());
int inData = 0;
int outData = 0;
if (inOutDataList != null && !inOutDataList.isEmpty()) {
inData = inOutDataList.stream().mapToInt(InOutData::getInCount).sum();
outData = inOutDataList.stream().mapToInt(InOutData::getOutCount).sum();
}
dateStrList.add(DateUtil.toDateString(startDate, "MM/dd"));
inDataList.add(inData);
outDataList.add(outData);
}
dto.setDateStrList(dateStrList);
dto.setInDataList(inDataList);
dto.setOutDataList(outDataList);
return dto;
}
}
package com.neotel.smfcore.core.report.rest.query;
import cn.hutool.core.date.DateTime;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class ReportQuery implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> updateDate;
private String pn;
@QueryCondition(type = QueryCondition.Type.IN, propName = "storageId")
private List<String> storageIdList;
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!