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