diff --git a/docs/databases/table_create_report.sql b/docs/databases/table_create_report.sql index 69e4afd9..20373770 100644 --- a/docs/databases/table_create_report.sql +++ b/docs/databases/table_create_report.sql @@ -19,6 +19,11 @@ CREATE TABLE `report_sales_day_log` ( `sourceFileName` VARCHAR(100) DEFAULT NULL COMMENT '上传的原文件名', `filePath` VARCHAR(1024) DEFAULT NULL COMMENT '文件的相对路径', `fullUrl` VARCHAR(2048) DEFAULT NULL COMMENT '文件完整的访问URL', + + `uploadRk` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了入库数据,0:无,1:有', + `uploadPf` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了批发数据,0:无,1:有', + `uploadXs` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了销售数据,0:无,1:有', + PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB COMMENT='销售日报表-日志'; @@ -210,4 +215,20 @@ CREATE TABLE `report_sales_day_tobacco_store_product` ( `countAmount` double(12,2) DEFAULT NULL COMMENT '总计销售金额', PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB COMMENT='销售日报表-烟草门店商品销售明细'; \ No newline at end of file +) ENGINE=InnoDB COMMENT='销售日报表-烟草门店商品销售明细'; + +DROP TABLE IF EXISTS `report_sales_statistics_day`; +CREATE TABLE `report_sales_statistics_day` ( + `id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号', + `createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间', + `remarks` VARCHAR(100) DEFAULT NULL COMMENT '备注说明', + `orderDate` VARCHAR(100) DEFAULT NULL COMMENT '单据日期', + `zydAmount` double(12,2) DEFAULT NULL COMMENT '直营店金额', + `pifaAmount` double(12,2) DEFAULT NULL COMMENT '批发金额', + `jmdAmount` double(12,2) DEFAULT NULL COMMENT '加盟店金额', + `countAmount` double(12,2) DEFAULT NULL COMMENT '合计金额', + `uploadRk` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了入库数据,0:无,1:有', + `uploadPf` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了批发数据,0:无,1:有', + `uploadXs` INT(2) NOT NULL DEFAULT '0' COMMENT '是否上传了销售数据,0:无,1:有', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB COMMENT='销售统计-日统计'; \ No newline at end of file diff --git a/yxt_supervise/supervise-report/supervise-report-biz/pom.xml b/yxt_supervise/supervise-report/supervise-report-biz/pom.xml index 53c91c25..44601c9a 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/pom.xml +++ b/yxt_supervise/supervise-report/supervise-report-biz/pom.xml @@ -72,6 +72,10 @@ 3.2.1 compile + + org.projectlombok + lombok + diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDay.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDay.java new file mode 100644 index 00000000..540d1b0e --- /dev/null +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDay.java @@ -0,0 +1,110 @@ +package com.yxt.supervise.report.biz.salesstatisticsday; + + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.domain.EntityWithId; + +import java.util.Date; + +@TableName("report_sales_statistics_day") +public class ReportSalesStatisticsDay extends EntityWithId { + public ReportSalesStatisticsDay() { + } + + public ReportSalesStatisticsDay(String orderDate) { + this.orderDate = orderDate; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime = new Date(); // 记录创建时间 + private String remarks; // 备注说明 + private String orderDate; // 单据日期 + private double zydAmount = 0; // 直营店金额 + private double pifaAmount = 0; // 批发金额 + private double jmdAmount = 0; // 加盟店金额 + private double countAmount = 0; // 合计金额 + private int uploadRk = 0; // 是否上传了入库数据,0:无,1:有 + private int uploadPf = 0; // 是否上传了批发数据,0:无,1:有 + private int uploadXs = 0; // 是否上传了销售数据,0:无,1:有 + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getOrderDate() { + return orderDate; + } + + public void setOrderDate(String orderDate) { + this.orderDate = orderDate; + } + + public double getZydAmount() { + return zydAmount; + } + + public void setZydAmount(double zydAmount) { + this.zydAmount = zydAmount; + } + + public double getPifaAmount() { + return pifaAmount; + } + + public void setPifaAmount(double pifaAmount) { + this.pifaAmount = pifaAmount; + } + + public double getJmdAmount() { + return jmdAmount; + } + + public void setJmdAmount(double jmdAmount) { + this.jmdAmount = jmdAmount; + } + + public double getCountAmount() { + return countAmount; + } + + public void setCountAmount(double countAmount) { + this.countAmount = countAmount; + } + + public int getUploadRk() { + return uploadRk; + } + + public void setUploadRk(int uploadRk) { + this.uploadRk = uploadRk; + } + + public int getUploadPf() { + return uploadPf; + } + + public void setUploadPf(int uploadPf) { + this.uploadPf = uploadPf; + } + + public int getUploadXs() { + return uploadXs; + } + + public void setUploadXs(int uploadXs) { + this.uploadXs = uploadXs; + } +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayMapper.java new file mode 100644 index 00000000..862db99f --- /dev/null +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayMapper.java @@ -0,0 +1,28 @@ +package com.yxt.supervise.report.biz.salesstatisticsday; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +@Mapper +public interface ReportSalesStatisticsDayMapper extends BaseMapper { + + @Select("select " + + "CONVERT(IFNULL(sum(colq16),0),DECIMAL(12,2)) as amount " + + "from gd_instorage_gd gi left join store_index si on gi.colb1=si.code " + + "where gi.orderDate=#{orderDate} and (si.`type` ='连锁外加盟(销配结算)' OR si.`type` ='连锁外加盟(销配结算)' )") + double sumSaleAmountJmd(@Param("orderDate") String day); + + @Select("select " + + " CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount " + + "from gd_sales_gd gs " + + "where gs.dataDate=#{orderDate} ") + double sumSaleAmountZyd(@Param("orderDate") String day); + + @Select("select " + + " CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount " + + "from gd_wholesale_gd gwg " + + "where gwg.dataDate=#{orderDate} ") + double sumSaleAmountPf(@Param("orderDate") String day); +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayRest.java new file mode 100644 index 00000000..136fc8a3 --- /dev/null +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayRest.java @@ -0,0 +1,50 @@ +package com.yxt.supervise.report.biz.salesstatisticsday; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.yxt.common.core.result.ResultBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; +import java.util.List; + +@RestController("com.yxt.supervise.report.biz.salesstatisticsday.ReportSalesStatisticsDayRest") +@RequestMapping("/sales/statistics/day") +public class ReportSalesStatisticsDayRest { + + @Autowired + private ReportSalesStatisticsDayService reportSalesStatisticsDayService; + + @GetMapping("/countForDay") + public ResultBean countForDay(@RequestParam("day") String day) { + ResultBean rb = ResultBean.fireFail(); + if (StrUtil.isBlank(day)) + return rb.setMsg("必须指定日期"); + try { + DateTime parse = DateUtil.parse(day, "yyyy-MM-dd"); + if (parse.isAfterOrEquals(new Date())) { + return rb.setMsg("只能统计之前日期"); + } + } catch (Exception e) { + e.printStackTrace(); + return rb.setMsg("日期格式不正确"); + } + + ReportSalesStatisticsDay reportSalesStatisticsDay = reportSalesStatisticsDayService.countForDay(day); + return rb.success().setData(reportSalesStatisticsDay); + } + + + @GetMapping("/listOneMonth") + public ResultBean> listOneMonth() { + ResultBean rb = ResultBean.fireFail(); + List list = reportSalesStatisticsDayService.ReportSalesStatisticsDay(null); + return rb.success().setData(list); + } + +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayService.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayService.java new file mode 100644 index 00000000..bf6d72ae --- /dev/null +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/salesstatisticsday/ReportSalesStatisticsDayService.java @@ -0,0 +1,50 @@ +package com.yxt.supervise.report.biz.salesstatisticsday; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class ReportSalesStatisticsDayService extends ServiceImpl { + + public ReportSalesStatisticsDay countForDay(String day) { + + ReportSalesStatisticsDay rssd = fetchByDay(day); + if (rssd == null) + rssd = new ReportSalesStatisticsDay(day); + + double jmd = baseMapper.sumSaleAmountJmd(day); + rssd.setJmdAmount(jmd); + double zyd = baseMapper.sumSaleAmountZyd(day); + rssd.setZydAmount(zyd); + double pf = baseMapper.sumSaleAmountPf(day); + rssd.setPifaAmount(pf); + rssd.setCountAmount(jmd + zyd + pf); + + this.saveOrUpdate(rssd); + return rssd; + + } + + public ReportSalesStatisticsDay fetchByDay(String day) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderDate", day); + return baseMapper.selectOne(qw); + } + + public List ReportSalesStatisticsDay(String endDay) { + if (StrUtil.isBlank(endDay)) + endDay = DateUtil.format(new Date(), "yyyy-MM-dd"); + QueryWrapper qw = new QueryWrapper<>(); + qw.lt("orderDate", endDay); + qw.orderByDesc("orderDate"); + qw.last("limit 30"); + return baseMapper.selectList(qw); + } +} diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/resources/application.yml b/yxt_supervise/supervise-system/supervise-system-biz/src/main/resources/application.yml index 11fdfd4d..195e3c4e 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/resources/application.yml +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/resources/application.yml @@ -2,8 +2,8 @@ spring: application: name: supervise-system profiles: - active: devv -# active: test +# active: devv + active: test messages: # 国际化资源文件路径 basename: i18n/messages