|
|
@@ -17,6 +17,7 @@ import org.springframework.ui.ModelMap;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.dao.DailySalesReportMapper;
|
|
|
import com.goafanti.common.error.BusinessException;
|
|
|
+import com.goafanti.common.model.DailySalesReport;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.report.bo.DepartmentSalesReportBO;
|
|
|
import com.goafanti.report.bo.PersonalSalesReportBO;
|
|
|
@@ -32,22 +33,45 @@ public class SalesReportServiceImpl extends BaseMybatisDao<DailySalesReportMappe
|
|
|
DailySalesReportMapper salesReportMapper;
|
|
|
|
|
|
public int insertDailyReports(Date startTime, Date endTime) {
|
|
|
- return salesReportMapper.insertSalesReports(startTime, endTime);
|
|
|
+ List<DailySalesReport> list = salesReportMapper.selectAdmins();
|
|
|
+ Map<String, DailySalesReport> map = new HashMap<>();
|
|
|
+ for (DailySalesReport dsr : list) {
|
|
|
+ dsr.setCreateTime(endTime);
|
|
|
+ map.put(dsr.getAdminId(), dsr);
|
|
|
+ }
|
|
|
+ List<DailySalesReport> reports = salesReportMapper.selectDailySalesReports(startTime, endTime);
|
|
|
+ for (DailySalesReport dsr : reports) {
|
|
|
+ DailySalesReport item = map.get(dsr.getAdminId());
|
|
|
+ if (item != null) {
|
|
|
+ item.setOrderAmount(item.getOrderAmount().add(dsr.getOrderAmount()));
|
|
|
+ item.setOrderCount(item.getOrderCount() + dsr.getOrderCount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ salesReportMapper.deleteByDate(endTime);
|
|
|
+ return salesReportMapper.insertBatch(list);
|
|
|
}
|
|
|
|
|
|
- public ModelMap getReportTotal(Date startTime) {
|
|
|
+ public ModelMap getReportTotal(Date startTime, String depName, String name, String position) {
|
|
|
ReportDate rd = new ReportDate(startTime);
|
|
|
ModelMap mm = new ModelMap();
|
|
|
- putField(mm, "dailyTotalCount", "dailyTotalAmount", rd.getDailyStart(), rd.getDailyEnd());
|
|
|
- putField(mm, "weeklyTotalCount", "weeklyTotalAmount", rd.getWeeklyStart(), rd.getWeeklyEnd());
|
|
|
- putField(mm, "monthlyTotalCount", "monthlyTotalAmount", rd.getMonthStart(), rd.getMonthEnd());
|
|
|
- putField(mm, "quarterlyTotalCount", "quarterlyTotalAmount", rd.getQuarterStart(), rd.getQuarterEnd());
|
|
|
- putField(mm, "annuallyTotalCount", "annuallyTotalAmount", rd.getYearStart(), rd.getYearEnd());
|
|
|
+ putField(mm, "dailyTotalCount", "dailyTotalAmount", rd.getDailyStart(), rd.getDailyEnd(), depName, name,
|
|
|
+ position);
|
|
|
+ putField(mm, "weeklyTotalCount", "weeklyTotalAmount", rd.getWeeklyStart(), rd.getWeeklyEnd(), depName, name,
|
|
|
+ position);
|
|
|
+ putField(mm, "monthlyTotalCount", "monthlyTotalAmount", rd.getMonthStart(), rd.getMonthEnd(), depName, name,
|
|
|
+ position);
|
|
|
+ putField(mm, "quarterlyTotalCount", "quarterlyTotalAmount", rd.getQuarterStart(), rd.getQuarterEnd(), depName,
|
|
|
+ name, position);
|
|
|
+ putField(mm, "annuallyTotalCount", "annuallyTotalAmount", rd.getYearStart(), rd.getYearEnd(), depName, name,
|
|
|
+ position);
|
|
|
+ mm.put("totalRecordCount", salesReportMapper.selectSalesPersonalReportsCount(rd.getDailyStart(),
|
|
|
+ rd.getDailyEnd(), depName, name, position));
|
|
|
return mm;
|
|
|
}
|
|
|
|
|
|
- private void putField(ModelMap mm, String count, String amount, Date start, Date end) {
|
|
|
- ModelMap res = salesReportMapper.selectTotalReports(start, end);
|
|
|
+ private void putField(ModelMap mm, String count, String amount, Date start, Date end, String depName, String name,
|
|
|
+ String position) {
|
|
|
+ ModelMap res = salesReportMapper.selectTotalReports(start, end, depName, name, position);
|
|
|
mm.put(count, res == null ? 0 : res.get("totalCount"));
|
|
|
mm.put(amount, res == null ? 0 : res.get("totalAmount"));
|
|
|
}
|