From 135f3bff3ff7aa86d23a67d60fc9409195f216a9 Mon Sep 17 00:00:00 2001
From: xiaoyu <316612174@qq.com>
Date: Thu, 3 Apr 2025 17:58:05 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E6=8A=A5=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gss/ReportInitializeController.java | 55 +++++++++++
.../web/mapper/ReportInitializeMapper.java | 15 +++
.../web/service/IReportInitializeService.java | 5 +
.../impl/ReportInitializeServiceImpl.java | 36 ++++++++
.../mapper/web/ReportInitializeMapper.xml | 23 +++++
.../main/resources/mybatis/mybatis-config.xml | 16 ++--
.../ruoyi/system/domain/SalesAreaReport.java | 26 ++----
.../system/mapper/SalesAreaReportMapper.java | 30 +++---
.../service/ISalesAreaReportService.java | 26 ++----
.../impl/SalesAreaReportServiceImpl.java | 14 +--
.../mapper/system/SalesAreaReportMapper.xml | 92 +++++--------------
sql/gss/区域提报.sql | 18 +++-
12 files changed, 220 insertions(+), 136 deletions(-)
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/mapper/ReportInitializeMapper.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/service/IReportInitializeService.java
create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java
create mode 100644 ruoyi-admin/src/main/resources/mapper/web/ReportInitializeMapper.xml
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
new file mode 100644
index 0000000..88bf1c1
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/gss/ReportInitializeController.java
@@ -0,0 +1,55 @@
+package com.ruoyi.web.controller.gss;
+
+import java.time.LocalDateTime;
+import java.time.temporal.WeekFields;
+import java.util.Calendar;
+import java.util.Locale;
+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.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+// 修改服务接口的导入路径
+import com.ruoyi.web.service.IReportInitializeService;
+
+@RestController
+@RequestMapping("/gss/initialize")
+public class ReportInitializeController extends BaseController {
+
+ @Autowired
+ private IReportInitializeService reportInitializeService;
+
+ @GetMapping("/currentYear")
+ @PreAuthorize("@ss.hasPermi('gss:initialize:query')")
+ public AjaxResult getCurrentYear() {
+ Calendar cal = Calendar.getInstance();
+ return AjaxResult.success(cal.get(Calendar.YEAR));
+ }
+
+ @GetMapping("/currentWeek")
+ @PreAuthorize("@ss.hasPermi('gss:initialize:query')")
+ public AjaxResult getCurrentWeek() {
+ LocalDateTime dateTime = LocalDateTime.now().plusDays(3);
+ WeekFields weekFields = WeekFields.of(Locale.getDefault());
+ int weekNumber = dateTime.get(weekFields.weekOfWeekBasedYear());
+ return AjaxResult.success(weekNumber);
+ }
+
+ @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());
+ }
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/mapper/ReportInitializeMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/web/mapper/ReportInitializeMapper.java
new file mode 100644
index 0000000..b8b493c
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/mapper/ReportInitializeMapper.java
@@ -0,0 +1,15 @@
+package com.ruoyi.web.mapper;
+
+import com.ruoyi.system.domain.SalesAreaReport; // 修改引用路径
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface ReportInitializeMapper {
+ int checkExists(@Param("year") String year,
+ @Param("week") String week,
+ @Param("productCategory") String productCategory,
+ @Param("salesAreaCode") String salesAreaCode);
+
+ int insertSalesAreaReport(SalesAreaReport report);
+}
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/service/IReportInitializeService.java b/ruoyi-admin/src/main/java/com/ruoyi/web/service/IReportInitializeService.java
new file mode 100644
index 0000000..a40a501
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/service/IReportInitializeService.java
@@ -0,0 +1,5 @@
+package com.ruoyi.web.service;
+
+public interface IReportInitializeService {
+ void execute(String year, String week, String productCategory, String salesAreaCode);
+}
\ 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
new file mode 100644
index 0000000..5cfcc47
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/service/impl/ReportInitializeServiceImpl.java
@@ -0,0 +1,36 @@
+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.web.service.IReportInitializeService;
+import com.ruoyi.common.utils.SecurityUtils;
+import java.util.Date;
+
+@Service
+public class ReportInitializeServiceImpl implements IReportInitializeService {
+
+ @Autowired
+ private SalesAreaReportMapper salesAreaReportMapper; // 修改变量名
+
+ @Override
+ public void execute(String year, String week, String productCategory, String salesAreaCode) {
+ if (salesAreaReportMapper.checkExists(year, week, productCategory, salesAreaCode) > 0) {
+ return;
+ }
+
+ SalesAreaReport report = new SalesAreaReport();
+ report.setProductCategory(productCategory);
+ report.setProductCategoryName("商显");
+ report.setSalesAreaCode(salesAreaCode);
+ report.setSalesAreaName("全部".equals(salesAreaCode) ? "全部" : "待完善");
+ 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-admin/src/main/resources/mapper/web/ReportInitializeMapper.xml b/ruoyi-admin/src/main/resources/mapper/web/ReportInitializeMapper.xml
new file mode 100644
index 0000000..bc5f2e3
--- /dev/null
+++ b/ruoyi-admin/src/main/resources/mapper/web/ReportInitializeMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ insert into sales_area_report (
+ product_category, product_category_name, sales_area_code, sales_area_name,
+ manager_id, manager_name, report_status, create_by, create_time
+ ) values (
+ #{productCategory}, #{productCategoryName}, #{salesAreaCode}, #{salesAreaName},
+ #{managerId}, #{managerName}, #{reportStatus}, #{createBy}, #{createTime}
+ )
+
+
+
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
index ac47c03..984f665 100644
--- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
+++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
@@ -3,18 +3,16 @@
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SalesAreaReport.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SalesAreaReport.java
index 0c716cb..9d24b6e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SalesAreaReport.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SalesAreaReport.java
@@ -1,47 +1,37 @@
package com.ruoyi.system.domain;
-import com.ruoyi.common.annotation.Excel;
-import com.ruoyi.common.core.domain.BaseEntity;
-
import java.util.Date;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.annotation.Excel;
public class SalesAreaReport extends BaseEntity {
private static final long serialVersionUID = 1L;
- /** 提报ID */
- @Excel(name = "提报ID")
+ @Excel(name = "报告ID")
private Long reportId;
- /** 产品大类编码 */
- @Excel(name = "产品大类编码")
+ @Excel(name = "产品类别")
private String productCategory;
- /** 产品大类名称 */
- @Excel(name = "产品大类名称")
+ @Excel(name = "产品类别名称")
private String productCategoryName;
- /** 销售区域编码 */
- @Excel(name = "销售区域编码")
+ @Excel(name = "销售区域代码")
private String salesAreaCode;
- /** 销售区域名称 */
@Excel(name = "销售区域名称")
private String salesAreaName;
- /** 负责人ID */
@Excel(name = "负责人ID")
private Long managerId;
- /** 负责人姓名 */
@Excel(name = "负责人姓名")
private String managerName;
- /** 提报状态(0初始化 1已提交) */
- @Excel(name = "提报状态", readConverterExp = "0=初始化,1=已提交")
+ @Excel(name = "报告状态")
private String reportStatus;
- /** 提报时间 */
- @Excel(name = "提报时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ @Excel(name = "报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date reportTime;
// getter/setter方法
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SalesAreaReportMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SalesAreaReportMapper.java
index d3992c0..5195f10 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SalesAreaReportMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SalesAreaReportMapper.java
@@ -1,36 +1,42 @@
package com.ruoyi.system.mapper;
-import com.ruoyi.system.domain.SalesAreaReport;
import java.util.List;
+import com.ruoyi.system.domain.SalesAreaReport;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
public interface SalesAreaReportMapper {
/**
* 查询区域提报列表
*/
- public List selectSalesAreaReportList(SalesAreaReport salesAreaReport);
+ List selectSalesAreaReportList(SalesAreaReport salesAreaReport);
/**
- * 查询区域提报详细
+ * 根据ID查询区域提报
*/
- public SalesAreaReport selectSalesAreaReportById(Long reportId);
+ SalesAreaReport selectSalesAreaReportById(Long reportId);
/**
- * 新增区域提报
+ * 更新区域提报
*/
- public int insertSalesAreaReport(SalesAreaReport salesAreaReport);
+ int updateSalesAreaReport(SalesAreaReport report);
/**
- * 修改区域提报
+ * 批量删除区域提报
*/
- public int updateSalesAreaReport(SalesAreaReport salesAreaReport);
+ int deleteSalesAreaReportByIds(Long[] reportIds);
/**
- * 删除区域提报
+ * 检查是否存在
*/
- public int deleteSalesAreaReportById(Long reportId);
+ int checkExists(@Param("year") String year,
+ @Param("week") String week,
+ @Param("productCategory") String productCategory,
+ @Param("salesAreaCode") String salesAreaCode);
/**
- * 批量删除区域提报
+ * 插入区域提报
*/
- public int deleteSalesAreaReportByIds(Long[] reportIds);
+ int insertSalesAreaReport(SalesAreaReport report);
}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISalesAreaReportService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISalesAreaReportService.java
index b4e8d2e..83a4e0a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISalesAreaReportService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISalesAreaReportService.java
@@ -1,31 +1,19 @@
package com.ruoyi.system.service;
-import com.ruoyi.system.domain.SalesAreaReport;
import java.util.List;
+import com.ruoyi.system.domain.SalesAreaReport;
public interface ISalesAreaReportService {
- /**
- * 查询区域提报列表
- */
- public List selectSalesAreaReportList(SalesAreaReport salesAreaReport);
+ List selectSalesAreaReportList(SalesAreaReport salesAreaReport);
- /**
- * 查询区域提报详细
- */
- public SalesAreaReport selectSalesAreaReportById(Long reportId);
+ SalesAreaReport selectSalesAreaReportById(Long reportId);
- /**
- * 新增区域提报
- */
- public int insertSalesAreaReport(SalesAreaReport salesAreaReport);
+ int updateSalesAreaReport(SalesAreaReport report);
- /**
- * 修改区域提报
- */
- public int updateSalesAreaReport(SalesAreaReport salesAreaReport);
+ int deleteSalesAreaReportByIds(Long[] reportIds);
/**
- * 删除区域提报信息
+ * 新增区域提报
*/
- public int deleteSalesAreaReportByIds(Long[] reportIds);
+ int insertSalesAreaReport(SalesAreaReport salesAreaReport);
}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SalesAreaReportServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SalesAreaReportServiceImpl.java
index 83b51b8..fb3a5de 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SalesAreaReportServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SalesAreaReportServiceImpl.java
@@ -1,6 +1,6 @@
package com.ruoyi.system.service.impl;
-import java.util.List;
+import java.util.List; // 添加这行导入
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.SalesAreaReportMapper;
@@ -23,17 +23,17 @@ public class SalesAreaReportServiceImpl implements ISalesAreaReportService {
}
@Override
- public int insertSalesAreaReport(SalesAreaReport salesAreaReport) {
- return salesAreaReportMapper.insertSalesAreaReport(salesAreaReport);
+ public int updateSalesAreaReport(SalesAreaReport report) {
+ return salesAreaReportMapper.updateSalesAreaReport(report);
}
@Override
- public int updateSalesAreaReport(SalesAreaReport salesAreaReport) {
- return salesAreaReportMapper.updateSalesAreaReport(salesAreaReport);
+ public int deleteSalesAreaReportByIds(Long[] reportIds) {
+ return salesAreaReportMapper.deleteSalesAreaReportByIds(reportIds);
}
@Override
- public int deleteSalesAreaReportByIds(Long[] reportIds) {
- return salesAreaReportMapper.deleteSalesAreaReportByIds(reportIds);
+ public int insertSalesAreaReport(SalesAreaReport salesAreaReport) {
+ return salesAreaReportMapper.insertSalesAreaReport(salesAreaReport);
}
}
\ 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 c75af56..b3f040e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SalesAreaReportMapper.xml
@@ -4,27 +4,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
select report_id, product_category, product_category_name, sales_area_code, sales_area_name,
- manager_id, manager_name, report_status, report_time, create_by, create_time, update_by,
- update_time, remark
+ manager_id, manager_name, report_status, report_time, create_by, create_time, update_by, update_time, remark
from sales_area_report
@@ -37,63 +36,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND sales_area_code = #{salesAreaCode}
-
- AND manager_id = #{managerId}
-
AND report_status = #{reportStatus}
-
- AND date_format(report_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d')
-
-
- AND date_format(report_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d')
-
-
+
-
-
- 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,
- update_by,
- update_time,
- remark,
-
-
- #{productCategory},
- #{productCategoryName},
- #{salesAreaCode},
- #{salesAreaName},
- #{managerId},
- #{managerName},
- #{reportStatus},
- #{reportTime},
- #{createBy},
- #{createTime},
- #{updateBy},
- #{updateTime},
- #{remark},
-
-
update sales_area_report
-
+
product_category = #{productCategory},
product_category_name = #{productCategoryName},
sales_area_code = #{salesAreaCode},
@@ -103,20 +59,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
report_status = #{reportStatus},
report_time = #{reportTime},
update_by = #{updateBy},
- update_time = #{updateTime},
- remark = #{remark},
-
+ update_time = sysdate()
+
where report_id = #{reportId}
-
- delete from sales_area_report where report_id = #{reportId}
-
-
-
+
delete from sales_area_report where report_id in
-
+
#{reportId}
+
\ No newline at end of file
diff --git a/sql/gss/区域提报.sql b/sql/gss/区域提报.sql
index 68f371c..09dc61a 100644
--- a/sql/gss/区域提报.sql
+++ b/sql/gss/区域提报.sql
@@ -42,4 +42,20 @@ insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame
values('区域提报删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'system:report:remove', '#', 'admin', sysdate(), '', null, '');
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
-values('区域提报导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'system:report:export', '#', 'admin', sysdate(), '', null, '');
\ No newline at end of file
+values('区域提报导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'system:report:export', '#', 'admin', sysdate(), '', null, '');
+
+-------------------------------------------
+-- 初始化功能
+-- 菜单 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('提报初始化', '3', '1', 'initialize', 'gss/initialize/index', 1, 0, 'C', '0', '0', 'gss:initialize:list', 'form', 'admin', sysdate(), '', null, '提报初始化菜单');
+
+-- 按钮父菜单ID
+SELECT @parentId := LAST_INSERT_ID();
+
+-- 按钮 SQL
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('提报初始化查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'gss:initialize:query', '#', 'admin', sysdate(), '', null, '');
+
+insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
+values('提报初始化操作', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'gss:initialize:add', '#', 'admin', sysdate(), '', null, '');
\ No newline at end of file