Browse Source

销售、在途汇总表

master
lzh 2 years ago
parent
commit
6990e23b03
  1. 23
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.java
  2. 82
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountService.java
  3. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageJmdMapper.java
  4. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageJmdService.java
  5. 6
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageYcMapper.java
  6. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageYcService.java
  7. 3
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkMapper.java
  8. 14
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkService.java
  9. 2
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryService.java
  10. 32
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesMapper.java
  11. 114
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportday.java
  12. 184
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayService.java
  13. 244
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java
  14. 25
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesYcMapper.java
  15. 23
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesYcService.java
  16. 3
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdwholesale/GdWholesaleMapper.java
  17. 4
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdwholesale/GdWholesaleService.java
  18. 33
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java
  19. BIN
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/在途商品汇总统计表.xlsx
  20. BIN
      yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/销售汇总日报表.xlsx

23
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountMapper.java

@ -83,4 +83,27 @@ public interface GdInstorageCountMapper extends BaseMapper<GdInstorageCount> {
*/
@Select("SELECT name,code,CONVERT(billTotalPrice,DECIMAL(12,2)) billTotalPrice,billDate,arrivalDate FROM hz_gysddmxb")
List<Map<String, Object>> ddmxb();
/**
* 烟草订单明细表
*
* @return
*/
@Select("SELECT prs.storeName storeName ,prt.code code ,CONVERT(SUM(prs.price),DECIMAL(12,2)) price,prt.purchaseDate purchaseDate, " +
"prt.arrivalDate arrivalDate " +
" FROM purchase_requisition_store prs " +
"LEFT JOIN `purchase_requisition_tobacco` prt ON prt.sid=prs.mainsid " +
"GROUP BY prs.storeCode ORDER BY prs.storeName ")
List<Map<String, Object>> ycddmxb();
@Select("SELECT CONCAT('[',prs.storeCode,']',prs.storeName) storeName , " +
"CONVERT(SUM(prs.price),DECIMAL(12,2)) ddspjz, " +
"CONVERT(IFNULL(SUM(giy.colq16),0),DECIMAL(12,2)) colq16, " +
"CONVERT(IF(SUM(prs.price)-IFNULL(SUM(giy.colq16),0)>0,SUM(prs.price)-IFNULL(SUM(giy.colq16),0),0),DECIMAL(12,2)) ztprodValue1, " +
"CONVERT(IF(IFNULL(SUM(giy.colq16),0)-SUM(prs.price)>0,IFNULL(SUM(giy.colq16),0)-SUM(prs.price),0),DECIMAL(12,2)) ztprodValue2 " +
" FROM `purchase_requisition_store` prs " +
"LEFT JOIN `purchase_requisition_tobacco_details` prtd ON prs.sid=prtd.mainsid " +
"LEFT JOIN `gd_instorage_yc` giy ON giy.colb1=prs.storeCode " +
"GROUP BY prs.storeCode ")
List<Map<String, Object>> ycspdhmxb();
}

82
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageCountService.java

@ -136,10 +136,10 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
writer.writeCellValue(7, y, map.get("sfyq"));
}
writer.writeCellValue(0, countRow, "合计");
writer.writeCellValue(2, countRow, NumberUtil.decimalFormat("0.00", cbilltotalprice));
writer.writeCellValue(3, countRow, NumberUtil.decimalFormat("0.00", cprodvalue));
writer.writeCellValue(4, countRow, NumberUtil.decimalFormat("0.00", cwdhjz));
writer.writeCellValue(5, countRow, NumberUtil.decimalFormat("0.00", ccchjz));
writer.writeCellValue(2, countRow, cbilltotalprice);
writer.writeCellValue(3, countRow, cprodvalue);
writer.writeCellValue(4, countRow, cwdhjz);
writer.writeCellValue(5, countRow, ccchjz);
// 商品到货明细表
writer.setSheet(1);
@ -165,7 +165,7 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
cprodNum = cprodNum + ExcelTool.toDouble(map.get("prodNum"));
writer.writeCellValue(6, y, map.get("prodValue"));
cprodValue = cprodValue + ExcelTool.toDouble(map.get("prodValue"));
writer.writeCellValue(7, y, Math.round(ExcelTool.toDouble(map.get("ztnumber"))));
writer.writeCellValue(7, y, Math.round(ExcelTool.toDouble(map.get("ztnumber"))));
cztnumber = cztnumber + ExcelTool.toDouble(map.get("ztnumber"));
writer.writeCellValue(8, y, map.get("ztprodValue1"));
cztprodValue1 = cztprodValue1 + ExcelTool.toDouble(map.get("ztprodValue1"));
@ -174,12 +174,12 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
}
writer.writeCellValue(0, countRow2, "合计");
writer.writeCellValue(3, countRow2, Math.round(cnumber));
writer.writeCellValue(4, countRow2, NumberUtil.decimalFormat("0.00", cptotalPrice));
writer.writeCellValue(4, countRow2, cptotalPrice);
writer.writeCellValue(5, countRow2, Math.round(cprodNum));
writer.writeCellValue(6, countRow2, NumberUtil.decimalFormat("0.00", cprodValue));
writer.writeCellValue(6, countRow2, cprodValue);
writer.writeCellValue(7, countRow2, Math.round(cztnumber));
writer.writeCellValue(8, countRow2, NumberUtil.decimalFormat("0.00", cztprodValue1));
writer.writeCellValue(9, countRow2, NumberUtil.decimalFormat("0.00", cztprodValue2));
writer.writeCellValue(8, countRow2, cztprodValue1);
writer.writeCellValue(9, countRow2, cztprodValue2);
// 订单明细表
writer.setSheet(2);
@ -204,13 +204,62 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
writer.writeCellValue(5, y, map.get("arrivalDate"));
}
writer.writeCellValue(1, countRow3, "合计金额");
writer.writeCellValue(3, countRow3, NumberUtil.decimalFormat("0.00", cbillTotalPrice));
writer.writeCellValue(3, countRow3, cbillTotalPrice);
// 烟草商品到货明细表
// writer.setSheet(3);
writer.setSheet(3);
writer.writeCellValue(0, 1, "编号:ycspdhmxb" + dfmt1);
writer.writeCellValue(4, 1, "上报时间:" + dfmt2);
List<Map<String, Object>> list4 = baseMapper.ycspdhmxb();
if (list4 != null && !list4.isEmpty()) {
int size4 = list4.size();
int countRow4 = size4 + 3;
double ccddspjz = 0, cccolq16 = 0, ccztprodValue1 = 0, ccztprodValue2 = 0;
for (int y = 3; y < countRow2; y++) {
Map<String, Object> map = list4.get(y - 3);
writer.writeCellValue(0, y, "市烟草");
writer.writeCellValue(1, y, map.get("storeName"));
writer.writeCellValue(2, y, map.get("ddspjz"));
ccddspjz = ccddspjz + ExcelTool.toDouble(map.get("ddspjz"));
writer.writeCellValue(3, y, map.get("colq16"));
cccolq16 = cccolq16 + ExcelTool.toDouble(map.get("colq16"));
writer.writeCellValue(4, y, map.get("ztprodValue1"));
ccztprodValue1 = ccztprodValue1 + ExcelTool.toDouble(map.get("ztprodValue1"));
writer.writeCellValue(5, y, map.get("ztprodValue2"));
ccztprodValue2 = ccztprodValue2 + ExcelTool.toDouble(map.get("ztprodValue2"));
}
writer.writeCellValue(1, countRow4, "合计");
writer.writeCellValue(2, countRow4, ccddspjz);
writer.writeCellValue(3, countRow4, cccolq16);
writer.writeCellValue(4, countRow4, ccztprodValue1);
writer.writeCellValue(5, countRow4, ccztprodValue2);
}
// 烟草订单明细表
// writer.setSheet(4);
writer.setSheet(4);
writer.writeCellValue(0, 1, "编号:ycddmxb" + dfmt1);
writer.writeCellValue(4, 1, "数据时间:" + dfmt);
List<Map<String, Object>> list5 = baseMapper.ycddmxb();
if (list5 != null && !list5.isEmpty()) {
int size5 = list5.size();
int countRow5 = size5 + 3;
xh = 0;
double cPrice = 0;
for (int y = 3; y < countRow5; y++) {
Map<String, Object> map = list5.get(y - 3);
xh++;
writer.writeCellValue(0, y, xh);
writer.writeCellValue(1, y, map.get("storeName"));
writer.writeCellValue(2, y, map.get("code"));
writer.writeCellValue(3, y, map.get("price"));
cPrice = cPrice + ExcelTool.toDouble(map.get("price"));
writer.writeCellValue(4, y, map.get("purchaseDate"));
writer.writeCellValue(5, y, map.get("arrivalDate"));
}
writer.writeCellValue(1, countRow5, "合计金额");
writer.writeCellValue(3, countRow5, cPrice);
}
writer.flush();
writer.close();
@ -218,4 +267,13 @@ public class GdInstorageCountService extends ServiceImpl<GdInstorageCountMapper,
return rb.success().setData(url);
}
public double amountZaitu() {
double wdhjz = 0;
List<Map<String, Object>> list = baseMapper.gysdhhzb();
for (Map<String, Object> map : list) {
wdhjz = wdhjz + ExcelTool.toDouble(map.get("wdhjz"));
}
return wdhjz;
}
}

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageJmdMapper.java

@ -29,6 +29,7 @@ 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;
import org.apache.ibatis.annotations.Select;
/**
* Project: yxt_supervise <br/>
@ -47,4 +48,7 @@ import org.apache.ibatis.annotations.Param;
public interface GdInstorageJmdMapper extends BaseMapper<GdInstorageJmd> {
@Delete("delete from gd_instorage_jmd where orderDate=#{orderDate} ")
void clearByOrderDate(@Param("orderDate") String orderDate);
@Select("SELECT IFNULL(sum(colq16),0) as amount FROM gd_instorage_jmd where orderDate=#{orderDate} ")
double amountOfDay(@Param("orderDate") String orderDate);
}

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageJmdService.java

@ -47,4 +47,8 @@ public class GdInstorageJmdService extends ServiceImpl<GdInstorageJmdMapper, GdI
public void clearByOrderDate(String orderDate) {
baseMapper.clearByOrderDate(orderDate);
}
public double amountOfDay(String orderDate) {
return baseMapper.amountOfDay(orderDate);
}
}

6
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageYcMapper.java

@ -29,6 +29,7 @@ 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;
import org.apache.ibatis.annotations.Select;
/**
* Project: yxt_supervise <br/>
@ -47,4 +48,9 @@ import org.apache.ibatis.annotations.Param;
public interface GdInstorageYcMapper extends BaseMapper<GdInstorageYc> {
@Delete("delete from gd_instorage_yc where orderDate=#{orderDate} ")
void clearByOrderDate(@Param("orderDate") String orderDate);
@Select("select IFNULL(sum(t.colq16),0) as amount from ( " +
" select gig.* from gd_instorage_yc gig left join store_index si on gig.colb1=si.code " +
" where gig.orderDate=#{orderDate} and si.`type` ='连锁外加盟(销配结算)' ) t ")
double amountOfDayJmd(@Param("orderDate") String orderDate);
}

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinstorage/GdInstorageYcService.java

@ -46,4 +46,8 @@ public class GdInstorageYcService extends ServiceImpl<GdInstorageYcMapper, GdIns
public void clearByOrderDate(String orderDate) {
baseMapper.clearByOrderDate(orderDate);
}
public double amountOfDayJmd(String orderDate) {
return baseMapper.amountOfDayJmd( orderDate);
}
}

3
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkMapper.java

@ -98,4 +98,7 @@ public interface GdInventoryOkMapper extends BaseMapper<GdInventoryOk> {
@Select("select prodCode,CONVERT(IFNULL(sum(prodNum),0),CHAR) pnum from gd_inventory_ok group by prodCode")
List<Map<String, String>> numberOfProduct();
@Select("select IFNULL(sum(prodValue),0) from gd_inventory_ok")
double amountCurrent();
}

14
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryOkService.java

@ -72,6 +72,16 @@ public class GdInventoryOkService extends ServiceImpl<GdInventoryOkMapper, GdInv
baseMapper.clearData();
}
// 仓库库存明细表
public List<Map<String, Object>> listOfWarehouse() {
return baseMapper.listOfWarehouse();
}
// 仓库商品明细表
public List<Map<String, Object>> listOfProd(){
return baseMapper.listOfProd();
}
/**
* 库存汇总
*
@ -258,4 +268,8 @@ public class GdInventoryOkService extends ServiceImpl<GdInventoryOkMapper, GdInv
list.forEach(m -> map.put(m.get("prodCode"), m.get("pnum")));
return map;
}
public double amountCurrent() {
return baseMapper.amountCurrent();
}
}

2
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdinventory/GdInventoryService.java

@ -385,7 +385,7 @@ public class GdInventoryService extends ServiceImpl<GdInventoryMapper, GdInvento
}
}
if (checkYcProd(typeCode) && storeInfoService.containsCodeOfYc(warehouseCode)) {
if (checkYcProd(prodCode) && storeInfoService.containsCodeOfYcNoJmd(warehouseCode)) {
GdInventoryYc yc = new GdInventoryYc();
Map<String, Object> map = readMapFromRow(r);

32
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesMapper.java

@ -29,6 +29,10 @@ 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;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
@ -48,4 +52,32 @@ public interface GdSalesMapper extends BaseMapper<GdSales> {
@Delete("delete from gd_sales where dataDate=#{dataDate} ")
void clearByDataDate(@Param("dataDate") String dataDate);
@Select("select t2.storeCode,si.name,t2.amount from( " +
" select storeCode,sum(t1.price) as amount from( " +
" select storeCode,saleNum*salePrice as price from gd_sales where dataDate=#{dataDate} " +
" ) t1 group by t1.storeCode " +
") t2 left join store_index si on t2.storecode=si.code ")
List<Map<String, Object>> listOfStoreOnDay(@Param("dataDate") String orderDate);
@Select("select count(1) from (select storeCode from gd_sales where dataDate=#{dataDate} group by storeCode) t")
int countStoreOnDay(@Param("dataDate") String orderDate);
@Select("select count(1) from (select prodCode from gd_sales where dataDate=#{dataDate} group by prodCode) t")
int countProductOnDay(@Param("dataDate") String orderDate);
@Select("select si.name,t1.* from ( " +
" select storeCode,orderType,orderNo,prodCode,prodName,saleNum,salePrice,saleNum*salePrice as amount from gd_sales where dataDate=#{dataDate} " +
") t1 left join store_index si on t1.storecode=si.code ")
List<Map<String, Object>> listOfProductOnDay(@Param("dataDate") String orderDate);
@Select("select CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount from ( " +
" select gs.saleNum,gs.salePrice from gd_sales gs left join store_index si on gs.storeCode=si.code " +
" where gs.dataDate=#{dataDate} and si.`type` ='连网连锁店' ) t ")
double amountOfLsdOnDay(@Param("dataDate") String orderDate);
@Select("select CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount from ( " +
" select gs.saleNum,gs.salePrice from gd_sales gs left join store_index si on gs.storeCode=si.code " +
" where gs.dataDate=#{dataDate} and si.`type` ='连锁内加盟' ) t ")
double amountOfLsnjmOnDay(String orderDate);
}

114
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportday.java

@ -20,66 +20,66 @@ public class GdSalesReportday extends EntityWithId {
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 double xjlla = 0; // 现金流量-经营活动产生的现金流量(元),大前天
private double xjllb = 0; // 现金流量-经营活动产生的现金流量(元),前天
private double xjllc = 0; // 现金流量-经营活动产生的现金流量(元),昨天
private double xsxja = 0; // 销售商品收到的现金(元),大前天
private double xsxjb = 0; // 销售商品收到的现金(元),前天
private double xsxjc = 0; // 销售商品收到的现金(元),昨天
private double qtxja = 0; // 收到其他与经营活动有关的现金(元),大前天
private double qtxjb = 0; // 收到其他与经营活动有关的现金(元),前天
private double qtxjc = 0; // 收到其他与经营活动有关的现金(元),昨天
private double cwfxhja = 0; // 财务分析本项合计,大前天
private double cwfxhjb = 0; // 财务分析本项合计,前天
private double cwfxhjc = 0; // 财务分析本项合计,昨天
private double zcfza = 0; // 资产负债-流动资产(元),大前天
private double zcfzb = 0; // 资产负债-流动资产(元),前天
private double zcfzc = 0; // 资产负债-流动资产(元),昨天
private double yszka = 0; // 应收账款(元),大前天
private double yszkb = 0; // 应收账款(元),前天
private double yszkc = 0; // 应收账款(元),昨天
private double ldfza = 0; // 流动负债(元),大前天
private double ldfzb = 0; // 流动负债(元),前天
private double ldfzc = 0; // 流动负债(元),昨天
private double yskxa = 0; // 预收款项(元),大前天
private double yskxb = 0; // 预收款项(元),前天
private double yskxc = 0; // 预收款项(元),昨天
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; // 烟草连锁外加盟(销配结算),扣除应收金额(元)
private double zthza = 0; // 在途货值(元),前天
private double zthzb = 0; // 在途货值(元),昨天
private double zthzc = 0; // 在途货值(元),今天
private double kchza = 0; // 库存货值(元),前天
private double kchzb = 0; // 库存货值(元),昨天
private double kchzc = 0; // 库存货值(元),今天
private double zhyea = 0; // 帐户余额(元)账户余额为前一天余额,前天
private double zhyeb = 0; // 帐户余额(元)账户余额为前一天余额,昨天
private double zhyec = 0; // 帐户余额(元)账户余额为前一天余额,今天
private double yjyszka = 0; // 预警应收帐款(元),前天
private double yjyszkb = 0; // 预警应收帐款(元),昨天
private double yjyszkc = 0; // 预警应收帐款(元),今天
private double yjhja = 0; // 主要预警指标本项合计,前天
private double yjhjb = 0; // 主要预警指标本项合计,昨天
private double yjhjc = 0; // 主要预警指标本项合计,今天
private double lwlsdze = 0; // 连网连锁店,总额(元)
private double lwlsdyszk = 0; // 连网连锁店,应收帐款(元)
private double lwlsdkcje = 0; // 连网连锁店,扣除应收金额(元)
private double lsnjmze = 0; // 连锁内加盟,总额(元)
private double lsnjmyszk = 0; // 连锁内加盟,应收帐款(元)
private double lsnjmkcje = 0; // 连锁内加盟,扣除应收金额(元)
private double pszxze = 0; // 配送中心,总额(元)
private double pszxyszk = 0; // 配送中心,应收帐款(元)
private double pszxkcje = 0; // 配送中心,扣除应收金额(元)
private double lswjmze = 0; // 连锁外加盟(销配结算),总额(元)
private double lswjmyszk = 0; // 连锁外加盟(销配结算),应收帐款(元)
private double lswjmkcje = 0; // 连锁外加盟(销配结算),扣除应收金额(元)
private double ycmdze = 0; // 36524集团报烟门店仓,总额(元)
private double ycmdyszk = 0; // 36524集团报烟门店仓,应收帐款(元)
private double ycmdkcje = 0; // 36524集团报烟门店仓,扣除应收金额(元)
private double ycjmdze = 0; // 烟草连锁外加盟(销配结算),总额(元)
private double ycjmdyszk = 0; // 烟草连锁外加盟(销配结算),应收帐款(元)
private double ycjmdkcje = 0; // 烟草连锁外加盟(销配结算),扣除应收金额(元)
}

184
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesReportdayService.java

@ -2,8 +2,15 @@ package com.yxt.supervise.portal.biz.gdsales;
import cn.hutool.core.date.DateTime;
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.supervise.portal.biz.gdinstorage.GdInstorageCountService;
import com.yxt.supervise.portal.biz.gdinstorage.GdInstorageJmdService;
import com.yxt.supervise.portal.biz.gdinstorage.GdInstorageYcService;
import com.yxt.supervise.portal.biz.gdinventory.GdInventoryOkService;
import com.yxt.supervise.portal.biz.gdwholesale.GdWholesaleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@ -12,87 +19,128 @@ import java.util.List;
@Service
public class GdSalesReportdayService extends ServiceImpl<GdSalesReportdayMapper, GdSalesReportday> {
@Autowired
private GdSalesService gdSalesService;
@Autowired
private GdSalesYcService gdSalesYcService;
@Autowired
private GdWholesaleService gdWholesaleService;
@Autowired
private GdInstorageJmdService gdInstorageJmdService;
@Autowired
private GdInstorageYcService gdInstorageYcService;
@Autowired
private GdInventoryOkService gdInventoryOkService;
@Autowired
private GdInstorageCountService gdInstorageCountService;
public GdSalesReportday clearAndInitByOrderDate(String orderDate) {
this.clearByOrderDate(orderDate); // 清除数据日的数据
String dfmt2 = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm");
Date curDate = new Date();
String dfmt = DateUtil.format(curDate, "yyyy-MM-dd");
String dfmt2 = DateUtil.format(curDate, "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 preRp = fetchByOrderDate(preOrderDate);
if (preRp == null)
preRp = new GdSalesReportday();
GdSalesReportday rp = new GdSalesReportday();
rp.setOrderDate(orderDate); // 单据日期
rp.setSerialNumber("xsjyrbb" + orderDate); // 编号
rp.setSerialNumber("xsjyrbb" + orderDate.replace("-", "")); // 编号
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.setKmdatea(befOrderDate); // 科目/日,大前天
rp.setKmdateb(preOrderDate); // 科目/日,前天
rp.setKmdatec(orderDate); // 科目/日,昨天
// rp.setXjlla(""); // 现金流量-经营活动产生的现金流量(元),大前天
// rp.setXjllb(""); // 现金流量-经营活动产生的现金流量(元),前天
// rp.setXjllc(""); // 现金流量-经营活动产生的现金流量(元),昨天
rp.setXsxja(preRp.getXsxjb()); // 销售商品收到的现金(元),大前天
rp.setXsxjb(preRp.getXsxjc()); // 销售商品收到的现金(元),前天
rp.setXsxjc(0); // 销售商品收到的现金(元),昨天 //后面计算
// rp.setQtxja(""); // 收到其他与经营活动有关的现金(元),大前天
// rp.setQtxjb(""); // 收到其他与经营活动有关的现金(元),前天
// rp.setQtxjc(""); // 收到其他与经营活动有关的现金(元),昨天
rp.setCwfxhja(preRp.getCwfxhjb()); // 财务分析本项合计,大前天
rp.setCwfxhjb(preRp.getCwfxhjc()); // 财务分析本项合计,前天
rp.setCwfxhjc(0); // 财务分析本项合计,昨天 //后面计算
// 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(""); // 烟草连锁外加盟(销配结算),扣除应收金额(元)
rp.setXmdatea(StrUtil.isBlank(preRp.getXmdateb()) ? preOrderDate : preRp.getXmdateb()); // 项目/日,前天
rp.setXmdateb(StrUtil.isBlank(preRp.getXmdatec()) ? orderDate : preRp.getXmdatec()); // 项目/日,昨天
rp.setXmdatec(dfmt); // 项目/日,今天
rp.setZthza(preRp.getZthzb()); // 在途货值(元),前天
rp.setZthzb(preRp.getZthzc()); // 在途货值(元),昨天
rp.setZthzc(0); // 在途货值(元),今天 // 计算
rp.setKchza(preRp.getKchzb()); // 库存货值(元),前天
rp.setKchzb(preRp.getKchzc()); // 库存货值(元),昨天
rp.setKchzc(0); // 库存货值(元),今天 // 计算
// rp.setZhyea(""); // 帐户余额(元)账户余额为前一天余额,前天
// rp.setZhyeb(""); // 帐户余额(元)账户余额为前一天余额,昨天
// rp.setZhyec(""); // 帐户余额(元)账户余额为前一天余额,今天
// rp.setYjyszka(""); // 预警应收帐款(元),前天
// rp.setYjyszkb(""); // 预警应收帐款(元),昨天
// rp.setYjyszkc(""); // 预警应收帐款(元),今天
// rp.setYjhja(""); // 主要预警指标本项合计,前天
// rp.setYjhjb(""); // 主要预警指标本项合计,昨天
// rp.setYjhjc(""); // 主要预警指标本项合计,今天
double xsLwlsd = gdSalesService.amountOfLwlsdDay(orderDate);
rp.setLwlsdze(xsLwlsd); // 连网连锁店,总额(元)
// rp.setLwlsdyszk(""); // 连网连锁店,应收帐款(元)
rp.setLwlsdkcje(xsLwlsd); // 连网连锁店,扣除应收金额(元)
double xsLsnjm = gdSalesService.amountOfLsnjmDay(orderDate);
rp.setLsnjmze(xsLsnjm); // 连锁内加盟,总额(元)
// rp.setLsnjmyszk(""); // 连锁内加盟,应收帐款(元)
rp.setLsnjmkcje(xsLsnjm); // 连锁内加盟,扣除应收金额(元)
double xsPszx = gdWholesaleService.amountOfDay(orderDate);
rp.setPszxze(xsPszx); // 配送中心,总额(元)
// rp.setPszxyszk(""); // 配送中心,应收帐款(元)
rp.setPszxkcje(xsPszx); // 配送中心,扣除应收金额(元)
double xsLswjm = gdInstorageJmdService.amountOfDay(orderDate);
rp.setLswjmze(xsLswjm); // 连锁外加盟(销配结算),总额(元)
// rp.setLswjmyszk(""); // 连锁外加盟(销配结算),应收帐款(元)
rp.setLswjmkcje(xsLswjm); // 连锁外加盟(销配结算),扣除应收金额(元)
double xsYc = gdSalesYcService.amountOfDay(orderDate);
rp.setYcmdze(xsYc); // 36524集团报烟门店仓,总额(元)
// rp.setYcmdyszk(""); // 36524集团报烟门店仓,应收帐款(元)
rp.setYcmdkcje(xsYc); // 36524集团报烟门店仓,扣除应收金额(元)
double xsYcJmd = gdInstorageYcService.amountOfDayJmd(orderDate);
rp.setYcjmdze(xsYcJmd); // 烟草连锁外加盟(销配结算),总额(元)
// rp.setYcjmdyszk(""); // 烟草连锁外加盟(销配结算),应收帐款(元)
rp.setYcjmdkcje(xsYcJmd); // 烟草连锁外加盟(销配结算),扣除应收金额(元)
double xshz1 = Math.round((xsLwlsd + xsLsnjm + xsPszx + xsLswjm + xsYc + xsYcJmd) * 100) / 100;
rp.setXsxjc(xshz1); // 销售商品收到的现金(元),昨天 //后面计算
rp.setCwfxhjc(xshz1); // 财务分析本项合计,昨天 //后面计算
//在途货值
double zthz = gdInstorageCountService.amountZaitu();
rp.setZthzc(0); // 在途货值(元),今天 // 计算
//库存货值
double kzhz = gdInventoryOkService.amountCurrent();
rp.setKchzc(0); // 库存货值(元),今天 // 计算
baseMapper.insert(rp);
return rp;

244
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesService.java

@ -28,7 +28,6 @@ package com.yxt.supervise.portal.biz.gdsales;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
@ -164,6 +163,7 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
odate = dataDate;
GdSalesGd gd = rowToEntity(r);
toInsertListGd.add(gd);
// 监管商品销售数据
if (gdRescategoryProdService.containsCode(prodCode) && storeIndexService.containsCodeWithOneNoJmd(storeCode)) {
GdSales gw = new GdSales();
BeanUtil.copyProperties(gd, gw);
@ -171,6 +171,7 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
y++;
}
// 烟草销售数据
if (checkYcProd(typeTwo) && storeInfoService.containsCodeOfYc(storeCode)) {
GdSalesYc gyc = new GdSalesYc();
BeanUtil.copyProperties(gd, gyc);
@ -220,7 +221,7 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
if (gdLog == null)
return rb.setMsg("上传记录未找到");
String orderDate = gdLog.getOrderDate();
GdSalesReportday reportday = gdSalesReportdayService.clearAndInitByOrderDate(orderDate);
GdSalesReportday reportday = gdSalesReportdayService.clearAndInitByOrderDate(orderDate);
Date curDate = new Date();
@ -240,19 +241,110 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
// 销售汇总日报表
writer.setSheet(0);
xshzrbb(writer,reportday);
xshzrbb(writer, reportday);
// 门店销售明细表
// writer.setSheet(1);
writer.setSheet(1);
int storeCount = baseMapper.countStoreOnDay(orderDate);
List<Map<String, Object>> list1 = baseMapper.listOfStoreOnDay(orderDate);
// writer.writeCellValue(0, 1, "编号:mdxsmxb" + dfmt1);
writer.merge(1, 1, 0, 2, "编号:mdxsmxb" + dfmt1, false);
writer.writeCellValue(3, 1, "渠道数量: " + storeCount);
writer.writeCellValue(4, 1, " 上报时间:" + dfmt2);
int size1 = list1.size();
int countRow1 = size1 + 3;
double hj1 = 0;
int xh = 0;
for (int y = 3; y < countRow1; y++) {
Map<String, Object> map = list1.get(y - 3);
xh++;
writer.writeCellValue(0, y, xh);
// writer.writeCellValue(1, y, map.get("name"));
writer.merge(y, y, 1, 3, map.get("name"), false);
writer.writeCellValue(4, y, map.get("amount"));
hj1 = hj1 + ExcelTool.toDouble(map.get("amount"));
}
// writer.writeCellValue(1, countRow1, "合计");
writer.merge(countRow1, countRow1, 0, 3, "合计", false);
writer.writeCellValue(4, countRow1, hj1);
// 门店商品销售明细表
// writer.setSheet(2);
writer.setSheet(2);
int productCount = baseMapper.countProductOnDay(orderDate);
List<Map<String, Object>> list2 = baseMapper.listOfProductOnDay(orderDate);
// writer.writeCellValue(0, 1, "编号:mdspxsmxb" + dfmt1);
writer.merge(1, 1, 0, 2, "编号:mdspxsmxb" + dfmt1, false);
// writer.writeCellValue(3, 1, "商品数量: " + productCount);
writer.merge(1, 1, 3, 4, "商品数量: " + productCount, false);
// writer.writeCellValue(4, 1, " 上报时间:" + dfmt2);
writer.merge(1, 1, 5, 7, "上报时间:" + dfmt2, false);
int size2 = list2.size();
int countRow2 = size2 + 3;
double hj2 = 0;
for (int y = 3; y < countRow2; y++) {
Map<String, Object> map = list2.get(y - 3);
writer.writeCellValue(0, y, map.get("name"));
writer.writeCellValue(1, y, map.get("orderType"));
writer.writeCellValue(2, y, map.get("orderNo"));
writer.writeCellValue(3, y, map.get("prodCode"));
writer.writeCellValue(4, y, map.get("prodName"));
writer.writeCellValue(5, y, Math.round(ExcelTool.toDouble( map.get("saleNum"))));
writer.writeCellValue(6, y, map.get("salePrice"));
writer.writeCellValue(7, y, map.get("amount"));
hj2 = hj2 + ExcelTool.toDouble(map.get("amount"));
}
writer.merge(countRow2, countRow2, 0, 6, "合计", false);
writer.writeCellValue(7, countRow2, hj2);
// 烟草门店销售明细表
// writer.setSheet(3);
writer.setSheet(3);
int storeCountyc = gdSalesYcService.countStoreOnDay(orderDate);
List<Map<String, Object>> list1yc = gdSalesYcService.listOfStoreOnDay(orderDate);
// writer.writeCellValue(0, 1, "编号:ycmdxsmxb" + dfmt1);
writer.merge(1, 1, 0, 2, "编号:ycmdxsmxb" + dfmt1, false);
writer.writeCellValue(3, 1, "渠道数量: " + storeCountyc);
writer.writeCellValue(4, 1, " 上报时间:" + dfmt2);
int size1yc = list1yc.size();
int countRow1yc = size1yc + 3;
double hj1yc = 0;
xh = 0;
for (int y = 3; y < countRow1yc; y++) {
Map<String, Object> map = list1yc.get(y - 3);
xh++;
writer.writeCellValue(0, y, xh);
// writer.writeCellValue(1, y, map.get("name"));
writer.merge(y, y, 1, 3, map.get("name"), false);
writer.writeCellValue(4, y, map.get("amount"));
hj1yc = hj1yc + ExcelTool.toDouble(map.get("amount"));
}
// writer.writeCellValue(1, countRow1yc, "合计");
writer.merge(countRow1yc, countRow1yc, 0, 3, "合计", false);
writer.writeCellValue(4, countRow1yc, hj1yc);
// 烟草门店商品销售明细表
// writer.setSheet(4);
writer.setSheet(4);
int productCountyc = gdSalesYcService.countProductOnDay(orderDate);
List<Map<String, Object>> list2yc = gdSalesYcService.listOfProductOnDay(orderDate);
writer.merge(1, 1, 0, 2, "编号:ycmdspxsmxb" + dfmt1, false);
writer.merge(1, 1, 3, 4, "商品数量: " + productCountyc, false);
writer.merge(1, 1, 5, 7, "上报时间:" + dfmt2, false);
int size2yc = list2yc.size();
int countRow2yc = size2yc + 3;
double hj2yc = 0;
for (int y = 3; y < countRow2yc; y++) {
Map<String, Object> map = list2yc.get(y - 3);
writer.writeCellValue(0, y, map.get("name"));
writer.writeCellValue(1, y, map.get("orderType"));
writer.writeCellValue(2, y, map.get("orderNo"));
writer.writeCellValue(3, y, map.get("prodCode"));
writer.writeCellValue(4, y, map.get("prodName"));
writer.writeCellValue(5, y, Math.round(ExcelTool.toDouble( map.get("saleNum"))));
writer.writeCellValue(6, y, map.get("salePrice"));
writer.writeCellValue(7, y, map.get("amount"));
hj2yc = hj2yc + ExcelTool.toDouble(map.get("amount"));
}
writer.merge(countRow2yc, countRow2yc, 0, 6, "合计", false);
writer.writeCellValue(7, countRow2yc, hj2yc);
writer.flush();
writer.close();
@ -267,70 +359,78 @@ public class GdSalesService extends ServiceImpl<GdSalesMapper, GdSales> {
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()); // 烟草连锁外加盟(销配结算),扣除应收金额(元)
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()); // 烟草连锁外加盟(销配结算),扣除应收金额(元)
}
public double amountOfLwlsdDay(String orderDate) {
return baseMapper.amountOfLsdOnDay(orderDate);
}
public double amountOfLsnjmDay(String orderDate) {
return baseMapper.amountOfLsnjmOnDay(orderDate);
}
}

25
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesYcMapper.java

@ -29,6 +29,10 @@ 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;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
@ -47,4 +51,25 @@ import org.apache.ibatis.annotations.Param;
public interface GdSalesYcMapper extends BaseMapper<GdSalesYc> {
@Delete("delete from gd_sales_yc where dataDate=#{dataDate} ")
void clearByDataDate(@Param("dataDate") String dataDate);
@Select("select count(1) from (select storeCode from gd_sales_yc where dataDate=#{dataDate} group by storeCode) t")
int countStoreOnDay(@Param("dataDate") String orderDate);
@Select("select t2.storeCode,si.name,t2.amount from( " +
" select storeCode,sum(t1.price) as amount from( " +
" select storeCode,saleNum*salePrice as price from gd_sales_yc where dataDate=#{dataDate} " +
" ) t1 group by t1.storeCode " +
") t2 left join store_index si on t2.storecode=si.code ")
List<Map<String, Object>> listOfStoreOnDay(@Param("dataDate") String orderDate);
@Select("select count(1) from (select prodCode from gd_sales_yc where dataDate=#{dataDate} group by prodCode) t")
int countProductOnDay(@Param("dataDate") String orderDate);
@Select("select si.name,t1.* from ( " +
" select storeCode,orderType,orderNo,prodCode,prodName,saleNum,salePrice,saleNum*salePrice as amount from gd_sales_yc where dataDate=#{dataDate} " +
") t1 left join store_index si on t1.storecode=si.code ")
List<Map<String, Object>> listOfProductOnDay(@Param("dataDate") String orderDate);
@Select("SELECT CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount FROM gd_sales_yc where dataDate=#{dataDate}")
double amountOfDay(String orderDate);
}

23
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdsales/GdSalesYcService.java

@ -28,6 +28,9 @@ package com.yxt.supervise.portal.biz.gdsales;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* Project: yxt_supervise <br/>
* File: GdSalesYcService.java <br/>
@ -47,4 +50,24 @@ public class GdSalesYcService extends ServiceImpl<GdSalesYcMapper, GdSalesYc> {
public void clearByDataDate(String dataDate) {
baseMapper.clearByDataDate(dataDate);
}
public int countStoreOnDay(String orderDate) {
return baseMapper.countStoreOnDay(orderDate);
}
public List<Map<String, Object>> listOfStoreOnDay(String orderDate) {
return baseMapper.listOfStoreOnDay(orderDate);
}
public int countProductOnDay(String orderDate) {
return baseMapper.countProductOnDay(orderDate);
}
public List<Map<String, Object>> listOfProductOnDay(String orderDate) {
return baseMapper.listOfProductOnDay(orderDate);
}
public double amountOfDay(String orderDate) {
return baseMapper.amountOfDay(orderDate);
}
}

3
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdwholesale/GdWholesaleMapper.java

@ -36,4 +36,7 @@ public interface GdWholesaleMapper extends BaseMapper<GdWholesale> {
// " FROM gd_wholesale where dataDate=#{dataDate} ")
@Select("SELECT * FROM gd_wholesale where dataDate=#{dataDate} ")
List<GdWholesale> excelListByOrderDate(@Param("dataDate") String orderDate);
@Select("SELECT CONVERT(IFNULL(sum(saleNum*salePrice),0),DECIMAL(12,2)) as amount FROM gd_wholesale where dataDate=#{dataDate} ")
double amountOfDay(String orderDate);
}

4
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/gdwholesale/GdWholesaleService.java

@ -180,4 +180,8 @@ public class GdWholesaleService extends ServiceImpl<GdWholesaleMapper, GdWholesa
return rb.success().setData(gwl);
}
public double amountOfDay(String orderDate) {
return baseMapper.amountOfDay(orderDate);
}
}

33
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/java/com/yxt/supervise/portal/biz/storeinfo/StoreInfoService.java

@ -275,9 +275,11 @@ public class StoreInfoService extends MybatisBaseService<StoreInfoMapper, StoreI
}
private static List<String> cacheCodeListOfYc = null; //烟草门店的门店编号列表
private static List<String> cacheCodeListOfYcNoJmd = null; //烟草门店的门店编号列表(不含加盟店)
public static void clearCacheCodeListOfYc() {
cacheCodeListOfYc = null;
cacheCodeListOfYcNoJmd = null;
}
public boolean containsCodeOfYc(String code) {
@ -289,6 +291,15 @@ public class StoreInfoService extends MybatisBaseService<StoreInfoMapper, StoreI
}
public boolean containsCodeOfYcNoJmd(String code) {
if (StringUtils.isBlank(code))
return false;
if (cacheCodeListOfYcNoJmd == null)
cacheCodeListOfYcNoJmd = listCodeOfYcNoJmd();
return cacheCodeListOfYcNoJmd.contains(code.trim());
}
/**
* 烟草门店列表
*
@ -307,4 +318,26 @@ public class StoreInfoService extends MybatisBaseService<StoreInfoMapper, StoreI
list.forEach(entity -> res.add(entity.getCode().trim()));
return res;
}
/**
* 烟草门店列表(不含加盟店)
*
* @return
*/
public List<StoreInfo> listOfYcNoJmd() {
QueryWrapper<StoreInfo> qw = new QueryWrapper<>();
qw.eq("isycjyfw", "1");
qw.ne("type", "连锁外加盟(销配结算)");
qw.ne("type", "连锁外加盟(销配结算)");
// qw.and(wrapper -> wrapper.ne("type", "连锁外加盟(销配结算)").or().like("remark", query.getName()));
List<StoreInfo> list = super.list(qw);
return list;
}
private List<String> listCodeOfYcNoJmd() {
List<String> res = new ArrayList<>();
List<StoreInfo> list = listOfYcNoJmd();
list.forEach(entity -> res.add(entity.getCode().trim()));
return res;
}
}

BIN
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/在途商品汇总统计表.xlsx

Binary file not shown.

BIN
yxt_supervise/supervise-portal/supervise-portal-biz/src/main/resources/xlsx-tmpl/销售汇总日报表.xlsx

Binary file not shown.
Loading…
Cancel
Save