Browse Source

报表

master
liupopo 2 years ago
parent
commit
22c47ac073
  1. 1
      docs/databases/data_modify.sql
  2. 10
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDay.java
  3. 71
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java
  4. 6
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java
  5. 15
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java
  6. 11
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java
  7. 13
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/ProdStock.java
  8. 11
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/StoreHouse.java
  9. 26
      yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/WarehouseMapper.java
  10. 5
      yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-devv.yml
  11. 5
      yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-pro.yml
  12. 5
      yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-test.yml

1
docs/databases/data_modify.sql

@ -31,3 +31,4 @@ ALTER TABLE supervise_supplychain.restricted_brand CHANGE createSid createBySid
ALTER TABLE supervise_supplychain.restricted_brand CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
ALTER TABLE supervise_crm.project_information MODIFY COLUMN modifyTime timestamp NULL COMMENT '修改时间';

10
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDay.java

@ -11,6 +11,16 @@ import java.util.Date;
@Data
@TableName("report_stock_day")
public class ReportStockDay extends EntityWithId {
public ReportStockDay() {
}
public ReportStockDay(String orderDate, String projectSid) {
this.orderDate = orderDate;
this.projectSid = projectSid;
}
private String sid = IdUtil.fastSimpleUUID(); // sid
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",

71
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java

@ -1,11 +1,37 @@
package com.yxt.supervise.report.biz.stock;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.supervise.report.ds.crm.CrmMapper;
import com.yxt.supervise.report.ds.crm.ProjectInfo;
import com.yxt.supervise.report.ds.warehouse.ProdStock;
import com.yxt.supervise.report.ds.warehouse.StoreHouse;
import com.yxt.supervise.report.ds.warehouse.WarehouseMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class ReportStockDayService extends ServiceImpl<ReportStockDayMapper, ReportStockDay> {
private static final Logger L = LoggerFactory.getLogger(ReportStockDayService.class);
@Autowired
private ReportStockDayStoreService reportStockDayStoreService;
@Autowired
private ReportStockDayProductService reportStockDayProductService;
@Autowired
private CrmMapper crmMapper;
@Autowired
private WarehouseMapper warehouseMapper;
public ReportStockDay fetchByProjectAndDay(String projectSid, String orderDate) {
QueryWrapper<ReportStockDay> qw = new QueryWrapper<>();
@ -15,8 +41,51 @@ public class ReportStockDayService extends ServiceImpl<ReportStockDayMapper, Rep
return baseMapper.selectOne(qw);
}
public ReportStockDay buildReportByProjectAndDay(String projectSid, String orderDate) {
public ReportStockDay buildReportByProjectAndDay(String projectSid) {
// TODO: 根据项目Sid获取关联仓库,根据仓库Sid获取库存数据
ProjectInfo pi = crmMapper.fetchBySid(projectSid);
List<StoreHouse> shList = warehouseMapper.listStoreHouseByProjectSid(projectSid);
Date currentDate = new Date();
String orderDate = DateUtil.format(currentDate, "yyyy-MM-dd");
String reportTime = DateUtil.format(currentDate, "yyyy-MM-dd HH:mm");
ReportStockDay rsd = new ReportStockDay(orderDate, projectSid);
rsd.setProjectName(pi.getEntryName());
rsd.setReportTime(reportTime);
rsd.setStockNumber(shList.size());
double countAmount = 0;
List<ReportStockDayStore> insertStoreList = new ArrayList<>();
List<ReportStockDayProduct> insertProductList = new ArrayList<>();
L.info("PPPPPP:{},{}", pi.getSid(), pi.getEntryName());
for (StoreHouse sh : shList) {
ReportStockDayStore rsds = new ReportStockDayStore();
double amount = warehouseMapper.sumAmount(sh.getSid());
rsds.setProductAmount(amount);
insertStoreList.add(rsds);
List<ProdStock> prodStockList = warehouseMapper.listStock(sh.getSid());
for (ProdStock ps : prodStockList) {
ReportStockDayProduct rsdp = new ReportStockDayProduct();
rsdp.setReportStoreSid(rsds.getSid());
insertProductList.add(rsdp);
}
countAmount = countAmount + amount;
}
baseMapper.insert(rsd);
reportStockDayStoreService.saveBatch(insertStoreList);
reportStockDayProductService.saveBatch(insertProductList);
return null;
}

6
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java

@ -41,10 +41,10 @@ public class StockDayRest {
return rb.success().setData(pv);
}
@GetMapping("/buildReport/{projectSid}/{orderDate}")
public ResultBean<ReportStockDay> buildReport(@PathVariable("projectSid") String projectSid, @PathVariable("orderDate") String orderDate) {
@GetMapping("/buildReport/{projectSid}")
public ResultBean<ReportStockDay> buildReport(@PathVariable("projectSid") String projectSid) {
ResultBean rb = ResultBean.fireFail();
ReportStockDay pv = reportStockDayService.buildReportByProjectAndDay(projectSid, orderDate);
ReportStockDay pv = reportStockDayService.buildReportByProjectAndDay(projectSid);
return rb.success().setData(pv);
}

15
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java

@ -0,0 +1,15 @@
package com.yxt.supervise.report.ds.crm;
import com.baomidou.dynamic.datasource.annotation.DS;
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;
@DS("crm")
@Mapper
public interface CrmMapper extends BaseMapper<ProjectInfo> {
@Select("select sid,entryName from project_information where sid=#{sid}")
ProjectInfo fetchBySid(@Param("sid") String sid);
}

11
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java

@ -0,0 +1,11 @@
package com.yxt.supervise.report.ds.crm;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("project_information")
public class ProjectInfo {
private String sid;
private String entryName;
}

13
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/ProdStock.java

@ -0,0 +1,13 @@
package com.yxt.supervise.report.ds.warehouse;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("prod_stock")
public class ProdStock {
private String pro_name;
private double num;
private double confirmed_price;
private double calculated_value;
}

11
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/StoreHouse.java

@ -0,0 +1,11 @@
package com.yxt.supervise.report.ds.warehouse;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("sh_storehouse")
public class StoreHouse {
private String sid;
private String name;
}

26
yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/WarehouseMapper.java

@ -0,0 +1,26 @@
package com.yxt.supervise.report.ds.warehouse;
import com.baomidou.dynamic.datasource.annotation.DS;
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;
import java.util.List;
@DS("warehouse")
@Mapper
public interface WarehouseMapper extends BaseMapper<StoreHouse> {
// a89c4ec7-d756-4f42-a8e0-c1427b477216 瀚川商贸仓库 236408a1-c36e-416c-9f49-d6caa7671009
@Select("select ss.sid,ss.name " +
"from sh_storehouse ss left join storehouse_project sp on sp.sh_sid=ss.sid " +
"where sp.project_sid =#{projectSid} ")
List<StoreHouse> listStoreHouseByProjectSid(@Param("projectSid") String projectSid);
@Select("select sum(calculated_value) from prod_stock where calculated_value store_house_sid=#{sid}")
double sumAmount(String sid);
@Select("select pro_name,num,confirmed_price,calculated_value from prod_stock where calculated_value store_house_sid=#{sid}")
List<ProdStock> listStock(String sid);
}

5
yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-devv.yml

@ -19,6 +19,11 @@ spring:
url: jdbc:mysql://8.130.39.13:3306/warehouse2?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 1LAiGz$t1*Iw
crm:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/supervise_crm?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: root
cloud:
nacos:
discovery:

5
yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-pro.yml

@ -19,6 +19,11 @@ spring:
url: jdbc:mysql://127.0.0.1:3306/warehouse2?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 1LAiGz$t1*Iw
crm:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/supervise_crm?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 1LAiGz$t1*Iw
cloud:
nacos:
discovery:

5
yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-test.yml

@ -19,6 +19,11 @@ spring:
url: jdbc:mysql://127.0.0.1:3306/warehouse2?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 1LAiGz$t1*Iw
crm:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/supervise_crm?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: 1LAiGz$t1*Iw
cloud:
nacos:
discovery:

Loading…
Cancel
Save