|
|
@@ -1,22 +1,30 @@
|
|
|
package com.goafanti.order.service.impl;
|
|
|
|
|
|
import com.goafanti.admin.service.DepartmentService;
|
|
|
+import com.goafanti.common.dao.TOrderNewMapper;
|
|
|
import com.goafanti.common.dao.TOrderTaskMapper;
|
|
|
import com.goafanti.common.dao.UserMidMapper;
|
|
|
import com.goafanti.common.error.BusinessException;
|
|
|
+import com.goafanti.common.utils.DateUtils;
|
|
|
import com.goafanti.common.utils.StringUtils;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
import com.goafanti.order.bo.*;
|
|
|
+import com.goafanti.order.bo.outStatistics.OutOrderNewSignBo;
|
|
|
import com.goafanti.order.enums.NewProjectStatus;
|
|
|
import com.goafanti.order.service.UserStaticticsService;
|
|
|
import groovy.util.logging.Log4j;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
+import java.time.DayOfWeek;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.temporal.TemporalAdjusters;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
@@ -25,10 +33,12 @@ import java.util.Map;
|
|
|
@Log4j
|
|
|
public class UserStatisticsServiceImpl extends BaseMybatisDao<UserMidMapper> implements UserStaticticsService {
|
|
|
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private DepartmentService departmentService;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private TOrderTaskMapper tOrderTaskMapper;
|
|
|
+ @Resource
|
|
|
+ private TOrderNewMapper tOrderNewMapper;
|
|
|
|
|
|
@Override
|
|
|
public Pagination<OutSignSummary> signSummary(InputSignSummary in) {
|
|
|
@@ -191,6 +201,51 @@ public class UserStatisticsServiceImpl extends BaseMybatisDao<UserMidMapper> imp
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String getOrderNewSignTime(InputOrderNewSignBo in) {
|
|
|
+ if(in.getType()==null){
|
|
|
+ in.setStartTime(DateUtils.parseDate("2024-01-01"));
|
|
|
+ in.setEndTime(DateUtils.parseDate("2025-01-01"));
|
|
|
+ }else if(in.getType()==0){
|
|
|
+ //获取本周起止时间开始时间和结束时间
|
|
|
+ // 获取当前日期
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+
|
|
|
+ // 获取本周的开始时间(星期一)
|
|
|
+ LocalDate startOfWeek = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
|
|
|
+ // 获取下周的周一作为结束时间
|
|
|
+ LocalDate endOfWeek = today.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
|
|
|
+ Date startDate = Date.from(startOfWeek.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+ Date endDate = Date.from(endOfWeek.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+ in.setStartTime(startDate);
|
|
|
+ in.setEndTime(endDate);
|
|
|
+ }else {
|
|
|
+ //获取本月第一天和下月第一天
|
|
|
+ // 获取当前日期
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
+ // 获取本月的第一天
|
|
|
+ LocalDate firstDayOfMonth = today.withDayOfMonth(1);
|
|
|
+ // 获取下月的第一天
|
|
|
+ LocalDate firstDayOfNextMonth = firstDayOfMonth.plusMonths(1);
|
|
|
+ Date startDate = Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+ Date endDate = Date.from(firstDayOfNextMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+ in.setStartTime(startDate);
|
|
|
+ in.setEndTime(endDate);
|
|
|
+ }
|
|
|
+ String str=DateUtils.formatDateChineseYYYYMMdd(in.getStartTime())
|
|
|
+ +"-"+DateUtils.formatDateChineseYYYYMMdd(in.getEndTime())
|
|
|
+ +"订单新老客签单统计";
|
|
|
+ return str;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<OutOrderNewSignBo> orderNewSignToList(InputOrderNewSignBo in) {
|
|
|
+ List<OutOrderNewSignBo> list=tOrderTaskMapper.orderNewSignToList(in);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
private void pushOrderProjectParam(InputOrderProject in, Map<String, Object> map) {
|
|
|
Class<InputOrderProject> clazz= (Class<InputOrderProject>) in.getClass();
|
|
|
Field[] declaredFields = clazz.getDeclaredFields();
|