|
@@ -6,41 +6,34 @@ import com.platform.common.bean.AbstractPageResultBean;
|
|
|
import com.platform.common.enums.DataFilterTypeEnum;
|
|
|
import com.platform.common.exception.BusinessException;
|
|
|
import com.platform.common.model.UserInfo;
|
|
|
-import com.platform.common.util.DateUtils;
|
|
|
-import com.platform.common.util.IdGeneratorUtils;
|
|
|
-import com.platform.common.util.SecurityUtils;
|
|
|
-import com.platform.common.util.StringUtils;
|
|
|
+import com.platform.common.util.*;
|
|
|
import com.platform.dao.bean.MyPage;
|
|
|
+import com.platform.dao.dto.check.CheckJobDTO;
|
|
|
import com.platform.dao.dto.sqarepartmanage.SpareTypeDTO;
|
|
|
-import com.platform.dao.dto.store.StoreDTO;
|
|
|
-import com.platform.dao.dto.store.StoreMonthReportDTO;
|
|
|
+import com.platform.dao.dto.store.*;
|
|
|
import com.platform.dao.dto.upms.SysDeptDTO;
|
|
|
import com.platform.dao.entity.sqarepartmanage.SpareType;
|
|
|
-import com.platform.dao.entity.store.SpareBackDetail;
|
|
|
-import com.platform.dao.entity.store.SpareStore;
|
|
|
-import com.platform.dao.entity.store.Store;
|
|
|
-import com.platform.dao.entity.store.StoreMonthReport;
|
|
|
+import com.platform.dao.entity.store.*;
|
|
|
import com.platform.dao.entity.upms.ScheduleJobLog;
|
|
|
import com.platform.dao.entity.upms.SysDept;
|
|
|
import com.platform.dao.entity.upms.SysUser;
|
|
|
import com.platform.dao.entity.upms.SysUserDept;
|
|
|
-import com.platform.dao.enums.DeptNatureEnum;
|
|
|
-import com.platform.dao.enums.StoreLevelEnum;
|
|
|
+import com.platform.dao.enums.*;
|
|
|
import com.platform.dao.mapper.sqarepartmanage.SpareTypeMapper;
|
|
|
-import com.platform.dao.mapper.store.SpareStoreMapper;
|
|
|
-import com.platform.dao.mapper.store.StoreMapper;
|
|
|
-import com.platform.dao.mapper.store.StoreMonthReportMapper;
|
|
|
+import com.platform.dao.mapper.store.*;
|
|
|
import com.platform.dao.mapper.upms.ScheduleJobLogMapper;
|
|
|
import com.platform.dao.mapper.upms.SysDeptMapper;
|
|
|
import com.platform.dao.mapper.upms.SysUserMapper;
|
|
|
import com.platform.dao.util.CustomExcelImportUtil;
|
|
|
import com.platform.dao.util.UserUtil;
|
|
|
-import com.platform.dao.vo.query.store.StoreVO;
|
|
|
+import com.platform.dao.vo.query.check.CheckJobVO;
|
|
|
+import com.platform.dao.vo.query.store.*;
|
|
|
import com.platform.dao.vo.query.upms.SysDeptVO;
|
|
|
+import com.platform.dao.vo.report.CheckJobReportVO;
|
|
|
+import com.platform.dao.vo.report.StoreInAndOutReportVO;
|
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
|
import com.platform.service.sqarepartmanage.SpareTypeService;
|
|
|
-import com.platform.service.store.StoreMonthReportService;
|
|
|
-import com.platform.service.store.StoreService;
|
|
|
+import com.platform.service.store.*;
|
|
|
import com.platform.service.upms.SysDeptService;
|
|
|
import com.platform.service.upms.SysUserDeptService;
|
|
|
import com.platform.service.util.ExecuteSql;
|
|
@@ -53,10 +46,12 @@ import tk.mybatis.mapper.weekend.Weekend;
|
|
|
import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @Description 仓库信息 service 实现类
|
|
@@ -72,6 +67,11 @@ public class StoreMonthReportServiceImpl extends BaseServiceImpl<StoreMonthRepor
|
|
|
private SysDeptMapper sysDeptMapper;
|
|
|
private SpareTypeService spareTypeService;
|
|
|
private ScheduleJobLogMapper ScheduleJobLogMapper;
|
|
|
+ private InStoreFormMapper inStoreFormMapper;
|
|
|
+ private OutStoreFormMapper outStoreFormMapper;
|
|
|
+ private InStoreDetailMapper inStoreDetailMapper;
|
|
|
+ private OutStoreDetailMapper outStoreDetailMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 每月1号凌晨1分开始统计,统计当前库存总额,统计
|
|
|
*/
|
|
@@ -222,4 +222,101 @@ public class StoreMonthReportServiceImpl extends BaseServiceImpl<StoreMonthRepor
|
|
|
PageHelper.startPage(pageNum, pageSize);
|
|
|
return new MyPage(mapper.selectList(storeDTO));
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<StoreInAndOutReportVO> getMonthReport(InStoreFormDTO inStoreFormDTO, Integer searchYear , LocalDate startMonth, LocalDate endMonth) {
|
|
|
+ List<Map<String, LocalDateTime>> monthStartAndEndList = new ArrayList<Map<String, LocalDateTime>>();
|
|
|
+ LocalDateTime searchStartTime = null;
|
|
|
+ LocalDateTime searchEndTime = null;
|
|
|
+ if(searchYear != null){
|
|
|
+ LocalDate localDate = LocalDate.now();
|
|
|
+ int year = localDate.getYear();
|
|
|
+ // 如2021-10-15号码,则month=10,需要计算到11月份,需要加1
|
|
|
+ int month = localDate.getMonthValue();
|
|
|
+ if(searchYear<year){
|
|
|
+ month = 12;
|
|
|
+ year = searchYear;
|
|
|
+ }
|
|
|
+ monthStartAndEndList = DateUtils.getMonthStartAndEndByYear(year, month);
|
|
|
+ // 当前年份只统计到当前月,历史年份统计全年
|
|
|
+ searchStartTime = DateUtils.getFirstDayOfThisYear(year);
|
|
|
+ searchEndTime = DateUtils.getLastDayOfMonth(year, month);
|
|
|
+ }else{
|
|
|
+ monthStartAndEndList = DateUtils.getMonthStartAndEndByYear(startMonth, endMonth);
|
|
|
+ searchStartTime = DateUtils.getFirstDayOfMonth(startMonth);
|
|
|
+ searchEndTime = DateUtils.getLastDayOfMonth(endMonth);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 总数
|
|
|
+ inStoreFormDTO.setSearchStartTime(searchStartTime);
|
|
|
+ inStoreFormDTO.setSearchEndTime(searchEndTime);
|
|
|
+// inStoreFormDTO.setType(CheckStandardTypeEnum.POLLING.getValue());
|
|
|
+ List<InStoreFormVO> inStoreFormVOList = inStoreFormMapper.selectList(inStoreFormDTO);
|
|
|
+ OutStoreFormDTO outStoreFormDTO=new OutStoreFormDTO();
|
|
|
+ outStoreFormDTO.setStoreId(inStoreFormDTO.getStoreId());
|
|
|
+ outStoreFormDTO.setSearchEndTime(inStoreFormDTO.getSearchEndTime());
|
|
|
+ outStoreFormDTO.setSearchStartTime(inStoreFormDTO.getSearchStartTime());
|
|
|
+ List<OutStoreFormVO> outStoreFormVOList = outStoreFormMapper.selectList(outStoreFormDTO);
|
|
|
+
|
|
|
+
|
|
|
+ List<StoreInAndOutReportVO> result = new ArrayList<StoreInAndOutReportVO>();
|
|
|
+ for(Map<String, LocalDateTime> map: monthStartAndEndList){
|
|
|
+ StoreInAndOutReportVO vo = new StoreInAndOutReportVO();
|
|
|
+ List<InStoreDetailVO> inStoreDetailVOS = new ArrayList<InStoreDetailVO>();
|
|
|
+ List<OutStoreDetailVO> outStoreDetailVOS = new ArrayList<OutStoreDetailVO>();
|
|
|
+ vo.setYear(map.get("searchStartTimeMonth").getYear());
|
|
|
+ vo.setMonth(map.get("searchStartTimeMonth").getMonthValue());
|
|
|
+ int inStoreNum = 0;
|
|
|
+ Double inStorePrice=0.0;
|
|
|
+ for(InStoreFormVO inStoreForm: inStoreFormVOList){
|
|
|
+ if(inStoreForm.getCreatedTime().toLocalDate().isAfter(map.get("searchStartTimeMonth").toLocalDate()) && inStoreForm.getCreatedTime().toLocalDate().isBefore(map.get("searchEndTimeMonth").toLocalDate()) && inStoreForm.getStatus().equals(InStoreStatusEnum.EXECUTING.getValue())){
|
|
|
+ InStoreDetailDTO inStoreDetailDTO=new InStoreDetailDTO();
|
|
|
+ inStoreDetailDTO.setInNo(inStoreForm.getInNo());
|
|
|
+ List<InStoreDetailVO> inStoreDetailVOList=inStoreDetailMapper.selectList(inStoreDetailDTO);
|
|
|
+ if(inStoreDetailVOList!=null){
|
|
|
+ for(InStoreDetailVO ISVO:inStoreDetailVOList){
|
|
|
+ inStoreDetailVOS.add(ISVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ inStoreNum ++;
|
|
|
+ BigDecimal s=inStoreForm.getTotalPrice();
|
|
|
+ if(inStoreForm.getTotalPrice()==null){
|
|
|
+ s=new BigDecimal(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ inStorePrice+=s.doubleValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int outStoreNum = 0;
|
|
|
+ Double outStorePrice=0.0;
|
|
|
+ for(OutStoreFormVO outStoreForm: outStoreFormVOList){
|
|
|
+ if(outStoreForm.getCreatedTime().toLocalDate().isAfter(map.get("searchStartTimeMonth").toLocalDate()) && outStoreForm.getCreatedTime().toLocalDate().isBefore(map.get("searchEndTimeMonth").toLocalDate()) && outStoreForm.getStatus().equals(OutStoreStatusEnum.EXECUTING.getValue())){
|
|
|
+ outStoreNum ++;
|
|
|
+ OutStoreDetailDTO outStoreDetailDTO=new OutStoreDetailDTO();
|
|
|
+ outStoreDetailDTO.setOutNo(outStoreForm.getOutNo());
|
|
|
+ List<OutStoreDetailVO> outStoreDetailVOList=outStoreDetailMapper.selectList(outStoreDetailDTO);
|
|
|
+ if(outStoreDetailVOList!=null){
|
|
|
+ for(OutStoreDetailVO OSVO:outStoreDetailVOList){
|
|
|
+ outStoreDetailVOS.add(OSVO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BigDecimal s=outStoreForm.getTotalPrice();
|
|
|
+ if(outStoreForm.getTotalPrice()==null){
|
|
|
+ s=new BigDecimal(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ outStorePrice+=s.doubleValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setInStoreNum(inStoreNum);
|
|
|
+ vo.setInStorePrice(inStorePrice);
|
|
|
+ vo.setOutStoreNum(outStoreNum);
|
|
|
+ vo.setOutStorePrice(outStorePrice);
|
|
|
+ vo.setInDetailList(inStoreDetailVOS);
|
|
|
+ vo.setOutDetailList(outStoreDetailVOS);
|
|
|
+
|
|
|
+ result.add(vo);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|