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.common.utils.DateUtil;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.device.util.DataCache; 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.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.manager.IStoragePosManager;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos; import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.custom.sungya20456.kanban.bean.dto.ExpireDto; import com.neotel.smfcore.core.elecKanban.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.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -21,18 +18,17 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -21,18 +18,17 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@Api(tags = "看板") @Api(tags = "看板")
public class KanbanController { @RequestMapping("/elecKanban")
public class ElecKanbanController {
@Autowired @Autowired
private IStoragePosManager storagePosManager; private IStoragePosManager storagePosManager;
...@@ -40,9 +36,6 @@ public class KanbanController { ...@@ -40,9 +36,6 @@ public class KanbanController {
@Autowired @Autowired
private DataCache dataCache; private DataCache dataCache;
@Autowired
private IInOutDataManager inOutDataManager;
@ApiOperation("过期信息") @ApiOperation("过期信息")
@RequestMapping("/getExpiredInfo") @RequestMapping("/getExpiredInfo")
@AnonymousAccess @AnonymousAccess
...@@ -120,40 +113,4 @@ public class KanbanController { ...@@ -120,40 +113,4 @@ public class KanbanController {
} }
return usage; 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data; 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data; 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
......
...@@ -8,7 +8,7 @@ import java.util.Date; ...@@ -8,7 +8,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
public interface IInOutDataManager extends IBaseManager<InOutData> { 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); InOutData findOne(Query query);
......
...@@ -48,9 +48,12 @@ public class InOutDataManagerImpl implements IInOutDataManager { ...@@ -48,9 +48,12 @@ public class InOutDataManagerImpl implements IInOutDataManager {
} }
@Override @Override
public List<InOutData> findByDate(Date startDate,Date endDate) { public List<InOutData> findByDate(Date startDate, Date endDate, List<String> storageIdList) {
Query q = new Query(); Query q = new Query();
Criteria c = Criteria.where("createDate").gte(startDate).lt(endDate); 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"); Sort s = Sort.by(Sort.Direction.DESC, "createDate");
return inOutDataDao.findByQuery(q.addCriteria(c).with(s)); return inOutDataDao.findByQuery(q.addCriteria(c).with(s));
} }
......
package com.neotel.smfcore.core.report; 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.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.bean.ChartItem;
import com.neotel.smfcore.core.report.rest.dto.InoutDataDto; 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.InventoryBoxDto;
import com.neotel.smfcore.core.report.rest.dto.InventoryGroupDto; 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.report.rest.query.ReportQuery;
import com.neotel.smfcore.core.storage.bean.UsageItem; import com.neotel.smfcore.core.storage.bean.UsageItem;
import com.neotel.smfcore.core.storage.service.manager.IStorageManager; import com.neotel.smfcore.core.storage.service.manager.IStorageManager;
import com.neotel.smfcore.core.storage.service.po.Storage; 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.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.manager.IGroupManager; import com.neotel.smfcore.security.service.manager.IGroupManager;
import com.neotel.smfcore.security.service.manager.IUserManager; import com.neotel.smfcore.security.service.manager.IUserManager;
import com.neotel.smfcore.security.service.po.Group; 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.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -29,7 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -29,7 +31,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
@Slf4j @Slf4j
...@@ -49,6 +50,9 @@ public class ReportController { ...@@ -49,6 +50,9 @@ public class ReportController {
@Autowired @Autowired
DataCache dataCache; DataCache dataCache;
@Autowired
IInOutDataManager inOutDataManager;
@RequestMapping(value = "/rest/api/mes/inOutData") @RequestMapping(value = "/rest/api/mes/inOutData")
@ResponseBody @ResponseBody
@AnonymousAccess @AnonymousAccess
...@@ -129,4 +133,50 @@ public class ReportController { ...@@ -129,4 +133,50 @@ public class ReportController {
} }
return groupDtos; 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; package com.neotel.smfcore.core.report.rest.query;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import com.neotel.smfcore.common.annotation.QueryCondition;
import com.neotel.smfcore.common.bean.BetweenData; import com.neotel.smfcore.common.bean.BetweenData;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class ReportQuery implements Serializable { public class ReportQuery implements Serializable {
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private BetweenData<Date> updateDate; private BetweenData<Date> updateDate;
private String pn; private String pn;
@QueryCondition(type = QueryCondition.Type.IN, propName = "storageId")
private List<String> storageIdList;
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!