diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java index 88bf1c1..7f123d9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -16,6 +17,8 @@ import com.ruoyi.common.core.domain.AjaxResult; // 修改服务接口的导入路径 import com.ruoyi.web.service.IReportInitializeService; +import org.springframework.web.bind.annotation.RequestBody; +import java.util.Map; @RestController @RequestMapping("/gss/initialize") public class ReportInitializeController extends BaseController { @@ -40,16 +43,13 @@ public class ReportInitializeController extends BaseController { } @PostMapping("/execute") - @PreAuthorize("@ss.hasPermi('gss:initialize:add')") - public AjaxResult execute(@RequestParam String year, - @RequestParam String week, - @RequestParam String productCategory, - @RequestParam String salesAreaCode) { - try { - reportInitializeService.execute(year, week, productCategory, salesAreaCode); - return AjaxResult.success("初始化成功"); - } catch (Exception e) { - return AjaxResult.error("初始化失败:" + e.getMessage()); - } + public AjaxResult execute(@RequestBody Map params) { + String year = params.get("year"); + String week = params.get("week"); + String productCategory = params.get("productCategory"); + String salesAreaCode = params.get("salesAreaCode"); + + reportInitializeService.execute(year, week, productCategory, salesAreaCode); + return AjaxResult.success(); } } \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java index 5cfcc47..a6ce026 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java @@ -2,35 +2,68 @@ package com.ruoyi.web.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.system.mapper.SalesAreaReportMapper; // 修改引用路径 -import com.ruoyi.system.domain.SalesAreaReport; // 修改引用路径 +import com.ruoyi.system.mapper.SalesAreaReportMapper; +import com.ruoyi.system.domain.SalesAreaReport; import com.ruoyi.web.service.IReportInitializeService; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.system.domain.SalesRegion; import java.util.Date; +import java.util.List; +import com.ruoyi.system.mapper.SalesRegionMapper; +import java.util.Calendar; @Service public class ReportInitializeServiceImpl implements IReportInitializeService { @Autowired - private SalesAreaReportMapper salesAreaReportMapper; // 修改变量名 + private SalesAreaReportMapper salesAreaReportMapper; + + @Autowired + private SalesRegionMapper salesRegionMapper; // 添加销售区域Mapper注入 @Override public void execute(String year, String week, String productCategory, String salesAreaCode) { - if (salesAreaReportMapper.checkExists(year, week, productCategory, salesAreaCode) > 0) { - return; + if ("all".equals(salesAreaCode)) { + // 获取所有启用的销售区域 + SalesRegion query = new SalesRegion(); + query.setStatus("0"); // 只查询启用的销售区域 + List regions = salesRegionMapper.selectSalesRegionList(query); + for (SalesRegion region : regions) { + createReport(year, week, productCategory, region.getRegionId().toString(), region.getRegionName()); + } + } else { + SalesRegion region = salesRegionMapper.selectSalesRegionById(Long.valueOf(salesAreaCode)); + if (region != null) { + createReport(year, week, productCategory, salesAreaCode, region.getRegionName()); + } } + } + private void createReport(String year, String week, String productCategory, String salesAreaCode, String salesAreaName) { SalesAreaReport report = new SalesAreaReport(); + // 根据年份和周次设置报告时间 + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, Integer.parseInt(year)); + calendar.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(week)); + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + report.setReportTime(calendar.getTime()); + + if (salesAreaReportMapper.checkExists(year,week,productCategory,salesAreaCode) > 0) { + return; + } + report.setProductCategory(productCategory); report.setProductCategoryName("商显"); report.setSalesAreaCode(salesAreaCode); - report.setSalesAreaName("全部".equals(salesAreaCode) ? "全部" : "待完善"); + report.setSalesAreaName(salesAreaName); report.setManagerId(SecurityUtils.getUserId()); report.setManagerName(SecurityUtils.getUsername()); report.setReportStatus("0"); report.setCreateBy(SecurityUtils.getUsername()); report.setCreateTime(new Date()); + salesAreaReportMapper.insertSalesAreaReport(report); } } \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml index b3f040e..beda4ba 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml @@ -47,6 +47,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where report_id = #{reportId} + + + insert into sales_area_report ( + product_category, + product_category_name, + sales_area_code, + sales_area_name, + manager_id, + manager_name, + report_status, + report_time, + create_by, + create_time + ) values ( + #{productCategory}, + #{productCategoryName}, + #{salesAreaCode}, + #{salesAreaName}, + #{managerId}, + #{managerName}, + #{reportStatus}, + #{reportTime}, + #{createBy}, + #{createTime} + ) + + + + + update sales_area_report