diff --git a/docs/databases/data_modify.sql b/docs/databases/data_modify.sql index 4f3aad0b..1113026f 100644 --- a/docs/databases/data_modify.sql +++ b/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 '修改时间'; diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDay.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDay.java index fba73396..9a8120c6 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDay.java +++ b/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", diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java index 41320749..4fa7b38b 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/ReportStockDayService.java +++ b/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 { + + 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 qw = new QueryWrapper<>(); @@ -15,8 +41,51 @@ public class ReportStockDayService extends ServiceImpl 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 insertStoreList = new ArrayList<>(); + List 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 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; } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java index 059c034a..8a377aa9 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/biz/stock/StockDayRest.java +++ b/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 buildReport(@PathVariable("projectSid") String projectSid, @PathVariable("orderDate") String orderDate) { + @GetMapping("/buildReport/{projectSid}") + public ResultBean 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); } diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/CrmMapper.java new file mode 100644 index 00000000..0a7ab6b0 --- /dev/null +++ b/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 { + + @Select("select sid,entryName from project_information where sid=#{sid}") + ProjectInfo fetchBySid(@Param("sid") String sid); +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/crm/ProjectInfo.java new file mode 100644 index 00000000..f499dea9 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/ProdStock.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/ProdStock.java new file mode 100644 index 00000000..f1229044 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/StoreHouse.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/StoreHouse.java new file mode 100644 index 00000000..a85fdf36 --- /dev/null +++ b/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; +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/WarehouseMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/warehouse/WarehouseMapper.java new file mode 100644 index 00000000..a7c7a439 --- /dev/null +++ b/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 { + + // 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 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 listStock(String sid); +} diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-devv.yml b/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-devv.yml index fcbb06bf..57d3c75d 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-devv.yml +++ b/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: diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-pro.yml b/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-pro.yml index c6de5bc3..f629067d 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-pro.yml +++ b/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: diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-test.yml b/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-test.yml index 92ae81fb..003e37aa 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/resources/application-test.yml +++ b/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: