diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportday.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportday.java new file mode 100644 index 00000000..d7d657e7 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportday.java @@ -0,0 +1,85 @@ +package com.yxt.supervise.portal.biz.gdsales; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.domain.EntityWithId; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("gd_sales_reportday") +public class GdSalesReportday extends EntityWithId { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime = new Date(); // 记录创建时间/ + private String remarks; // 备注说明 + private String orderDate; // 单据日期 + private String serialNumber; // 编号 + private String reportTime; // 上报时间 + private String kmdatea; // 科目/日,大前天 + private String kmdateb; // 科目/日,前天 + private String kmdatec; // 科目/日,昨天 + private String xjlla; // 现金流量-经营活动产生的现金流量(元),大前天 + private String xjllb; // 现金流量-经营活动产生的现金流量(元),前天 + private String xjllc; // 现金流量-经营活动产生的现金流量(元),昨天 + private String xsxja; // 销售商品收到的现金(元),大前天 + private String xsxjb; // 销售商品收到的现金(元),前天 + private String xsxjc; // 销售商品收到的现金(元),昨天 + private String qtxja; // 收到其他与经营活动有关的现金(元),大前天 + private String qtxjb; // 收到其他与经营活动有关的现金(元),前天 + private String qtxjc; // 收到其他与经营活动有关的现金(元),昨天 + private String cwfxhja; // 财务分析本项合计,大前天 + private String cwfxhjb; // 财务分析本项合计,前天 + private String cwfxhjc; // 财务分析本项合计,昨天 + private String zcfza; // 资产负债-流动资产(元),大前天 + private String zcfzb; // 资产负债-流动资产(元),前天 + private String zcfzc; // 资产负债-流动资产(元),昨天 + private String yszka; // 应收账款(元),大前天 + private String yszkb; // 应收账款(元),前天 + private String yszkc; // 应收账款(元),昨天 + private String ldfza; // 流动负债(元),大前天 + private String ldfzb; // 流动负债(元),前天 + private String ldfzc; // 流动负债(元),昨天 + private String yskxa; // 预收款项(元),大前天 + private String yskxb; // 预收款项(元),前天 + private String yskxc; // 预收款项(元),昨天 + private String qczhz; // 期初总货值 + private String ycqchz; // 烟草期初货值 + private String xmdatea; // 项目/日,前天 + private String xmdateb; // 项目/日,昨天 + private String xmdatec; // 项目/日,今天 + private String zthza; // 在途货值(元),前天 + private String zthzb; // 在途货值(元),昨天 + private String zthzc; // 在途货值(元),今天 + private String kchza; // 库存货值(元),前天 + private String kchzb; // 库存货值(元),昨天 + private String kchzc; // 库存货值(元),今天 + private String zhyea; // 帐户余额(元)账户余额为前一天余额,前天 + private String zhyeb; // 帐户余额(元)账户余额为前一天余额,昨天 + private String zhyec; // 帐户余额(元)账户余额为前一天余额,今天 + private String yjyszka; // 预警应收帐款(元),前天 + private String yjyszkb; // 预警应收帐款(元),昨天 + private String yjyszkc; // 预警应收帐款(元),今天 + private String yjhja; // 主要预警指标本项合计,前天 + private String yjhjb; // 主要预警指标本项合计,昨天 + private String yjhjc; // 主要预警指标本项合计,今天 + private String lwlsdze; // 连网连锁店,总额(元) + private String lwlsdyszk; // 连网连锁店,应收帐款(元) + private String lwlsdkcje; // 连网连锁店,扣除应收金额(元) + private String lsnjmze; // 连锁内加盟,总额(元) + private String lsnjmyszk; // 连锁内加盟,应收帐款(元) + private String lsnjmkcje; // 连锁内加盟,扣除应收金额(元) + private String pszxze; // 配送中心,总额(元) + private String pszxyszk; // 配送中心,应收帐款(元) + private String pszxkcje; // 配送中心,扣除应收金额(元) + private String lswjmze; // 连锁外加盟(销配结算),总额(元) + private String lswjmyszk; // 连锁外加盟(销配结算),应收帐款(元) + private String lswjmkcje; // 连锁外加盟(销配结算),扣除应收金额(元) + private String ycmdze; // 36524集团报烟门店仓,总额(元) + private String ycmdyszk; // 36524集团报烟门店仓,应收帐款(元) + private String ycmdkcje; // 36524集团报烟门店仓,扣除应收金额(元) + private String ycjmdze; // 烟草连锁外加盟(销配结算),总额(元) + private String ycjmdyszk; // 烟草连锁外加盟(销配结算),应收帐款(元) + private String ycjmdkcje; // 烟草连锁外加盟(销配结算),扣除应收金额(元) +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayMapper.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayMapper.java new file mode 100644 index 00000000..690633c6 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayMapper.java @@ -0,0 +1,14 @@ +package com.yxt.supervise.portal.biz.gdsales; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +@Mapper +public interface GdSalesReportdayMapper extends BaseMapper { + + + @Delete("delete from gd_sales_reportday where orderDate=#{orderDate} ") + void clearByOrderDate(@Param("orderDate") String orderDate); +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayService.java new file mode 100644 index 00000000..059303a9 --- /dev/null +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayService.java @@ -0,0 +1,124 @@ +package com.yxt.supervise.portal.biz.gdsales; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +@Service +public class GdSalesReportdayService extends ServiceImpl { + + public GdSalesReportday clearAndInitByOrderDate(String orderDate) { + this.clearByOrderDate(orderDate); // 清除数据日的数据 + + String dfmt2 = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm"); + + String preOrderDate = dayAgo(orderDate, -1); // 前一天 + String befOrderDate = dayAgo(orderDate, -2); // 前两天 + String thrOrderDate = dayAgo(orderDate, -3); // 前三天 + GdSalesReportday preReport = fetchByOrderDate(preOrderDate); + if (preReport == null) + preReport = new GdSalesReportday(); + + GdSalesReportday rp = new GdSalesReportday(); + rp.setOrderDate(orderDate); // 单据日期 + rp.setSerialNumber("xsjyrbb" + orderDate); // 编号 + rp.setReportTime(dfmt2); // 上报时间 + rp.setKmdatea(thrOrderDate); // 科目/日,大前天 + rp.setKmdateb(befOrderDate); // 科目/日,前天 + rp.setKmdatec(preOrderDate); // 科目/日,昨天 + rp.setXjlla(""); // 现金流量-经营活动产生的现金流量(元),大前天 + rp.setXjllb(""); // 现金流量-经营活动产生的现金流量(元),前天 + rp.setXjllc(""); // 现金流量-经营活动产生的现金流量(元),昨天 + rp.setXsxja(""); // 销售商品收到的现金(元),大前天 + rp.setXsxjb(""); // 销售商品收到的现金(元),前天 + rp.setXsxjc(""); // 销售商品收到的现金(元),昨天 + rp.setQtxja(""); // 收到其他与经营活动有关的现金(元),大前天 + rp.setQtxjb(""); // 收到其他与经营活动有关的现金(元),前天 + rp.setQtxjc(""); // 收到其他与经营活动有关的现金(元),昨天 + rp.setCwfxhja(""); // 财务分析本项合计,大前天 + rp.setCwfxhjb(""); // 财务分析本项合计,前天 + rp.setCwfxhjc(""); // 财务分析本项合计,昨天 + rp.setZcfza(""); // 资产负债-流动资产(元),大前天 + rp.setZcfzb(""); // 资产负债-流动资产(元),前天 + rp.setZcfzc(""); // 资产负债-流动资产(元),昨天 + rp.setYszka(""); // 应收账款(元),大前天 + rp.setYszkb(""); // 应收账款(元),前天 + rp.setYszkc(""); // 应收账款(元),昨天 + rp.setLdfza(""); // 流动负债(元),大前天 + rp.setLdfzb(""); // 流动负债(元),前天 + rp.setLdfzc(""); // 流动负债(元),昨天 + rp.setYskxa(""); // 预收款项(元),大前天 + rp.setYskxb(""); // 预收款项(元),前天 + rp.setYskxc(""); // 预收款项(元),昨天 + rp.setQczhz(""); // 期初总货值 + rp.setYcqchz(""); // 烟草期初货值 + rp.setXmdatea(""); // 项目/日,前天 + rp.setXmdateb(""); // 项目/日,昨天 + rp.setXmdatec(""); // 项目/日,今天 + rp.setZthza(""); // 在途货值(元),前天 + rp.setZthzb(""); // 在途货值(元),昨天 + rp.setZthzc(""); // 在途货值(元),今天 + rp.setKchza(""); // 库存货值(元),前天 + rp.setKchzb(""); // 库存货值(元),昨天 + rp.setKchzc(""); // 库存货值(元),今天 + rp.setZhyea(""); // 帐户余额(元)账户余额为前一天余额,前天 + rp.setZhyeb(""); // 帐户余额(元)账户余额为前一天余额,昨天 + rp.setZhyec(""); // 帐户余额(元)账户余额为前一天余额,今天 + rp.setYjyszka(""); // 预警应收帐款(元),前天 + rp.setYjyszkb(""); // 预警应收帐款(元),昨天 + rp.setYjyszkc(""); // 预警应收帐款(元),今天 + rp.setYjhja(""); // 主要预警指标本项合计,前天 + rp.setYjhjb(""); // 主要预警指标本项合计,昨天 + rp.setYjhjc(""); // 主要预警指标本项合计,今天 + rp.setLwlsdze(""); // 连网连锁店,总额(元) + rp.setLwlsdyszk(""); // 连网连锁店,应收帐款(元) + rp.setLwlsdkcje(""); // 连网连锁店,扣除应收金额(元) + rp.setLsnjmze(""); // 连锁内加盟,总额(元) + rp.setLsnjmyszk(""); // 连锁内加盟,应收帐款(元) + rp.setLsnjmkcje(""); // 连锁内加盟,扣除应收金额(元) + rp.setPszxze(""); // 配送中心,总额(元) + rp.setPszxyszk(""); // 配送中心,应收帐款(元) + rp.setPszxkcje(""); // 配送中心,扣除应收金额(元) + rp.setLswjmze(""); // 连锁外加盟(销配结算),总额(元) + rp.setLswjmyszk(""); // 连锁外加盟(销配结算),应收帐款(元) + rp.setLswjmkcje(""); // 连锁外加盟(销配结算),扣除应收金额(元) + rp.setYcmdze(""); // 36524集团报烟门店仓,总额(元) + rp.setYcmdyszk(""); // 36524集团报烟门店仓,应收帐款(元) + rp.setYcmdkcje(""); // 36524集团报烟门店仓,扣除应收金额(元) + rp.setYcjmdze(""); // 烟草连锁外加盟(销配结算),总额(元) + rp.setYcjmdyszk(""); // 烟草连锁外加盟(销配结算),应收帐款(元) + rp.setYcjmdkcje(""); // 烟草连锁外加盟(销配结算),扣除应收金额(元) + + baseMapper.insert(rp); + return rp; + } + + public GdSalesReportday fetchByOrderDate(String orderDate) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderDate", orderDate); + List list = list(qw); + if (list == null || list.isEmpty()) + return null; + return list.get(0); + } + + private String dayAgo(String orderDate, int offset) { + DateTime nowDate = DateUtil.parse(orderDate, "yyyy-MM-dd"); + DateTime preDate = DateUtil.offsetDay(nowDate, offset); + return DateUtil.format(preDate, "yyyy-MM-dd"); + } + + /** + * 清理数据日期的数据 + * + * @param orderDate + */ + public void clearByOrderDate(String orderDate) { + baseMapper.clearByOrderDate(orderDate); + } +} diff --git a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java index d533afb5..3b2f5cc1 100644 --- a/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java +++ b/yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java @@ -90,6 +90,8 @@ public class GdSalesService extends ServiceImpl { private StoreInfoService storeInfoService; @Autowired private StoreIndexService storeIndexService; + @Autowired + private GdSalesReportdayService gdSalesReportdayService; public ResultBean uploadAndInsert(MultipartFile file) { ResultBean rb = ResultBean.fireFail(); @@ -218,6 +220,8 @@ public class GdSalesService extends ServiceImpl { if (gdLog == null) return rb.setMsg("上传记录未找到"); String orderDate = gdLog.getOrderDate(); + GdSalesReportday reportday = gdSalesReportdayService.clearAndInitByOrderDate(orderDate); + Date curDate = new Date(); String timestr = DateUtil.format(curDate, "yyyyMMddHHmmssSSS"); @@ -236,8 +240,7 @@ public class GdSalesService extends ServiceImpl { // 销售汇总日报表 writer.setSheet(0); - writer.writeCellValue(0, 1, "编号:xshzrbb" + dfmt1); - writer.writeCellValue(2, 1, "上报时间:" + dfmt2); + xshzrbb(writer,reportday); // 门店销售明细表 // writer.setSheet(1); @@ -260,4 +263,74 @@ public class GdSalesService extends ServiceImpl { return rb.success().setData(gdLog); } + + private void xshzrbb(ExcelWriter writer, GdSalesReportday reportday) { + writer.writeCellValue(0, 1, "编号:" + reportday.getSerialNumber()); + writer.writeCellValue(2, 1, "上报时间:" + reportday.getReportTime()); + writer.writeCellValue(1, 3,reportday.getKmdatea()); // 科目/日,大前天 + writer.writeCellValue(2, 3,reportday.getKmdateb()); // 科目/日,前天 + writer.writeCellValue(3, 3,reportday.getKmdatec()); // 科目/日,昨天 + writer.writeCellValue(1, 4,reportday.getXjlla()); // 现金流量-经营活动产生的现金流量(元),大前天 + writer.writeCellValue(2, 4,reportday.getXjllb()); // 现金流量-经营活动产生的现金流量(元),前天 + writer.writeCellValue(3, 4,reportday.getXjllc()); // 现金流量-经营活动产生的现金流量(元),昨天 + writer.writeCellValue(1, 5,reportday.getXsxja()); // 销售商品收到的现金(元),大前天 + writer.writeCellValue(2, 5,reportday.getXsxjb()); // 销售商品收到的现金(元),前天 + writer.writeCellValue(3, 5,reportday.getXsxjc()); // 销售商品收到的现金(元),昨天 + writer.writeCellValue(1, 6,reportday.getQtxja()); // 收到其他与经营活动有关的现金(元),大前天 + writer.writeCellValue(2, 6,reportday.getQtxjb()); // 收到其他与经营活动有关的现金(元),前天 + writer.writeCellValue(3, 6,reportday.getQtxjc()); // 收到其他与经营活动有关的现金(元),昨天 + writer.writeCellValue(1, 7,reportday.getCwfxhja()); // 财务分析本项合计,大前天 + writer.writeCellValue(2, 7,reportday.getCwfxhjb()); // 财务分析本项合计,前天 + writer.writeCellValue(3, 7,reportday.getCwfxhjc()); // 财务分析本项合计,昨天 + writer.writeCellValue(1, 8,reportday.getZcfza()); // 资产负债-流动资产(元),大前天 + writer.writeCellValue(2, 8,reportday.getZcfzb()); // 资产负债-流动资产(元),前天 + writer.writeCellValue(3, 8,reportday.getZcfzc()); // 资产负债-流动资产(元),昨天 + writer.writeCellValue(1, 9,reportday.getYszka()); // 应收账款(元),大前天 + writer.writeCellValue(2, 9,reportday.getYszkb()); // 应收账款(元),前天 + writer.writeCellValue(3, 9,reportday.getYszkc()); // 应收账款(元),昨天 + writer.writeCellValue(1, 10,reportday.getLdfza()); // 流动负债(元),大前天 + writer.writeCellValue(2, 10,reportday.getLdfzb()); // 流动负债(元),前天 + writer.writeCellValue(3, 10,reportday.getLdfzc()); // 流动负债(元),昨天 + writer.writeCellValue(1, 11,reportday.getYskxa()); // 预收款项(元),大前天 + writer.writeCellValue(2, 11,reportday.getYskxb()); // 预收款项(元),前天 + writer.writeCellValue(3, 11,reportday.getYskxc()); // 预收款项(元),昨天 + writer.writeCellValue(1, 12,"期初总货值:"+reportday.getQczhz()); // 期初总货值 + writer.writeCellValue(3, 12,"烟草期初货值:"+reportday.getYcqchz()); // 烟草期初货值 + writer.writeCellValue(1, 13,reportday.getXmdatea()); // 项目/日,前天 + writer.writeCellValue(2, 13,reportday.getXmdateb()); // 项目/日,昨天 + writer.writeCellValue(3, 13,reportday.getXmdatec()); // 项目/日,今天 + writer.writeCellValue(1, 14,reportday.getZthza()); // 在途货值(元),前天 + writer.writeCellValue(2, 14,reportday.getZthzb()); // 在途货值(元),昨天 + writer.writeCellValue(3, 14,reportday.getZthzc()); // 在途货值(元),今天 + writer.writeCellValue(1, 15,reportday.getKchza()); // 库存货值(元),前天 + writer.writeCellValue(2, 15,reportday.getKchzb()); // 库存货值(元),昨天 + writer.writeCellValue(3, 15,reportday.getKchzc()); // 库存货值(元),今天 + writer.writeCellValue(1, 16,reportday.getZhyea()); // 帐户余额(元)账户余额为前一天余额,前天 + writer.writeCellValue(2, 16,reportday.getZhyeb()); // 帐户余额(元)账户余额为前一天余额,昨天 + writer.writeCellValue(3, 16,reportday.getZhyec()); // 帐户余额(元)账户余额为前一天余额,今天 + writer.writeCellValue(1, 17,reportday.getYjyszka()); // 预警应收帐款(元),前天 + writer.writeCellValue(2, 17,reportday.getYjyszkb()); // 预警应收帐款(元),昨天 + writer.writeCellValue(3, 17,reportday.getYjyszkc()); // 预警应收帐款(元),今天 + writer.writeCellValue(1, 18,reportday.getYjhja()); // 主要预警指标本项合计,前天 + writer.writeCellValue(2, 18,reportday.getYjhjb()); // 主要预警指标本项合计,昨天 + writer.writeCellValue(3, 18,reportday.getYjhjc()); // 主要预警指标本项合计,今天 + writer.writeCellValue(1, 21,reportday.getLwlsdze()); // 连网连锁店,总额(元) + writer.writeCellValue(2, 21,reportday.getLwlsdyszk()); // 连网连锁店,应收帐款(元) + writer.writeCellValue(3, 21,reportday.getLwlsdkcje()); // 连网连锁店,扣除应收金额(元) + writer.writeCellValue(1, 22,reportday.getLsnjmze()); // 连锁内加盟,总额(元) + writer.writeCellValue(2, 22,reportday.getLsnjmyszk()); // 连锁内加盟,应收帐款(元) + writer.writeCellValue(3, 22,reportday.getLsnjmkcje()); // 连锁内加盟,扣除应收金额(元) + writer.writeCellValue(1, 23,reportday.getPszxze()); // 配送中心,总额(元) + writer.writeCellValue(2, 23,reportday.getPszxyszk()); // 配送中心,应收帐款(元) + writer.writeCellValue(3, 23,reportday.getPszxkcje()); // 配送中心,扣除应收金额(元) + writer.writeCellValue(1, 24,reportday.getLswjmze()); // 连锁外加盟(销配结算),总额(元) + writer.writeCellValue(2, 24,reportday.getLswjmyszk()); // 连锁外加盟(销配结算),应收帐款(元) + writer.writeCellValue(3, 24,reportday.getLswjmkcje()); // 连锁外加盟(销配结算),扣除应收金额(元) + writer.writeCellValue(1, 25,reportday.getYcmdze()); // 36524集团报烟门店仓,总额(元) + writer.writeCellValue(2, 25,reportday.getYcmdyszk()); // 36524集团报烟门店仓,应收帐款(元) + writer.writeCellValue(3, 25,reportday.getYcmdkcje()); // 36524集团报烟门店仓,扣除应收金额(元) + writer.writeCellValue(1, 26,reportday.getYcjmdze()); // 烟草连锁外加盟(销配结算),总额(元) + writer.writeCellValue(2, 26,reportday.getYcjmdyszk()); // 烟草连锁外加盟(销配结算),应收帐款(元) + writer.writeCellValue(3, 26,reportday.getYcjmdkcje()); // 烟草连锁外加盟(销配结算),扣除应收金额(元) + } }