liupopo 1 year ago
parent
commit
b50e8d891e
  1. 12
      docs/开发20240220/202404/山海(1).docx
  2. 59
      docs/开发20240220/202404/山海功能完善20240418.docx
  3. BIN
      docs/开发20240220/202404/山海各月库存及出入库表.xlsx
  4. 31
      docs/开发20240220/202404/山海新能动产情况分析.docx
  5. BIN
      docs/开发20240220/202404/铁发统计.png
  6. 23
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/home/HomeRest.java
  7. 1
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexQuery.java
  8. 7
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexRest.java
  9. 11
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexService.java
  10. 14
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/ShRequester.java
  11. 24
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/HomepageOrderArea.java
  12. 25
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndex.java
  13. 17
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexAreaData.java
  14. 10
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearDay.java
  15. 10
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearMonth.java
  16. 11
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearYear.java
  17. 15
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexPersonPowerNum.java

12
docs/开发20240220/202404/山海(1).docx

@ -0,0 +1,12 @@
1. 电站列表新增字段:功率、客户名称、客户电话、电站地址
2. 电站列表新增一个按这五个状态筛选及地区可多选
3. 电站列表筛选时能统计出(各地区及多选地区)总功率,电站数量
4. 总数取有效电站数量个数及功率数(目前取的全部)
三个报表是否放在系统上(不确定)
监管仓库存总数量、总金额
数据抓取,不同节点(交货、完工、并网、运营)的全国数据、铁发数据(个数及功率数)
上房顶数量,功率(全国数据、铁发数据)
企业自持电站数量、功率,铁发验收电站数量、功率数,未验收功率数

59
docs/开发20240220/202404/山海功能完善20240418.docx

@ -0,0 +1,59 @@
1. 电站列表新增字段:功率、客户名称、客户电话、电站地址
2. 电站列表新增一个按这五个状态筛选及地区可多选
3. 电站列表筛选时能统计出(各地区及多选地区)总功率,电站数量
4. 总数取有效电站数量个数及功率数(目前取的全部)
三个报表是否放在系统上(不确定)
监管仓库存总数量、总金额
数据抓取,不同节点(交货、完工、并网、运营)的全国数据、铁发数据(个数及功率数)
上房顶数量,功率(全国数据、铁发数据)
企业自持电站数量、功率,铁发验收电站数量、功率数,未验收功率数
修改方案
电站列表
电站列表的数据由原来通过接口获取改为从本地数据库获取,本地数据库中电站列表数据为每天凌晨2点从山海系统中抓取获得,所以数据时间为前一天数据。以上1、2、3、6、7、8的数据都从这个数据库表中依据不同条件筛选和统计。
该数据对应山海后台系统的"户用电站"-"有效电站数据",参照下图
该页面记录总数为9208条,通过接口获得数据为9227条,相差19条的原因无法确定,可忽略。
1.电站列表新增字段:功率、客户名称、客户电话、电站地址
数据表中有对应字段,可直接展示
2.电站列表新增一个按这五个状态筛选及地区可多选
筛选条件的五个状态,需要对应到山海系统中的流程状态,对应流程名和流程编号如下图所示
之前与山海出报表的人员沟通,5个阶段对应的流程如下:
这2组数据存在偏差(数据不完全对应、编号不对应),数据库中存储的是流程名字,所以目前是根据流程名进行归类,数据值存在偏差,需要进一点核对。
地区可多选,应该是指对应山海系统中的区域项目(数据分组),如下图
数据库中没有区域项目ID,所以通过like方式获取data_id字段的值,如下图
3.电站列表筛选时能统计出(各地区及多选地区)总功率,电站数量
查询的是电站列表,所以电站数量就是查询出来的总记录数;总功率需要单独增加查询脚本来获取。可以将获取到的总功率和电站数量显示在表头部分,不用监管人员再手动统计。根据第2条中加入查询条件,可统计出不同条件下的数据。
6、数据抓取,不同节点(交货、完工、并网、运营)的全国数据、铁发数据(个数及功率数)
铁发数据目前就理解为区域项目为山东曲阜、河南安阳、庄河整县这三个地区的数据(参照第2条区域项目部分)。
统计的数据以第3条的方式展示。
7、上房顶数量,功率(全国数据、铁发数据)
目前不知道上房顶数量依据什么条件筛选。
8、企业自持电站数量、功率,铁发验收电站数量、功率数,未验收功率数
企业自持电站数量和铁发验收电站数量、未验收功率数这3个都不知道筛选条件。
统计图表
4.总数取有效电站数量个数及功率数(目前取的全部)
首页面的统计图表目前是完全依照山海的图表及数据获取和展示的,展示的是山海系统中有效电站页面的统计图,如下所示
这个数据有9千多条,银行认为这个值不对,应该是4千多条,经过比对山海系统中的图表,计划用山系系统中的"发电状态情况"和"地区数据统计"这2个图表替换。
库存数据
5、监管仓库存总数量、总金额
山海的库存日报表之前做过,是在手机端展示的,如下图
参照之前的统计对应在PC端设计展示界面及数据接口,另外,之前的仓库是写死在程序里的,目前仓库信息有变化,需要重新调整。

BIN
docs/开发20240220/202404/山海各月库存及出入库表.xlsx

Binary file not shown.

31
docs/开发20240220/202404/山海新能动产情况分析.docx

@ -0,0 +1,31 @@
山海新能动产情况分析
库存情况:(截止时间20240409组件、逆变器库存)
监管仓:江西余干库、庄河荣名库、安阳荣名库、曲阜荣明库,库存总价值:55267590.4元。
非监管仓:海南工商业、内黄工商业、安阳运维库,库存总价值:13604737元(临时虚拟库,直发项目)
山海库存组件、逆变器原材料总价值:68872327.4元
监管仓监管货物占比:80%
二、电站情况:(全国电站)
全部电站:9240个,346.19兆瓦。
开发收资:4322个,162.83兆瓦。
目前状态:
(工)业务收集资料、项目建议书、代理商自审、代理商自审驳回
(户)业务员录入、代理商自审(驳回)、商务审核驳回、工程(部)审核(驳回)
交货:61个,2.73兆瓦(2739.615千瓦)
目前状态:
(户)施工资料提交、施工派工、代理商完工自审(驳回)
完工:433个,28.15兆瓦(28151.15千瓦)(含工商业)
目前状态:
(工)并网资料提交
(户)并网资料提交、代理商并网自审、并网审核、并网审核驳回
并网:940个,34.38兆瓦
目前状态:现场验收
建转运:2775个,88.44兆瓦
目前状态:建转运
注:
全国交货加上完工数据为30.88兆瓦,应为企业交货资产,按300万/兆瓦计算资产为:9264万元。
山东铁发收安阳、庄河、曲阜三个地方电站,目前交货102.1兆瓦,完工99.89兆瓦,并网的为72.89兆瓦,现场验收完毕,建转运的为44.6兆瓦。
全国建转运,为88.44兆瓦,减去卖给山东铁发44.6兆瓦,43.84兆瓦电站或为目前企业自持运营电站。按300万/兆瓦计算资产为:13152万元
综上,山海半成品及自持电站资产合计:22416万元。
三、汇总:
企业库存组件、逆变器原材料及半成品、自持电站,总资产为:29303.23274万元。

BIN
docs/开发20240220/202404/铁发统计.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

23
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/home/HomeRest.java

@ -8,6 +8,9 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.supervise.gf.biz.home.vo.GroupVo;
import com.yxt.supervise.gf.shanhai.ShRequester;
import com.yxt.supervise.gf.shanhai.resp.Homepage;
import com.yxt.supervise.gf.shanhai.resp.HomepageOrderArea;
import com.yxt.supervise.gf.shanhai.resp.ScreenIndex;
import com.yxt.supervise.gf.shanhai.resp.ScreenIndexPersonPowerNum;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -22,7 +25,7 @@ import java.util.Map;
public class HomeRest {
@GetMapping("/statistichomepage")
public ResultBean<GroupVo> statistichomepage() {
public ResultBean<Map<String, Object>> statistichomepage() {
ResultBean rb = ResultBean.fireFail();
Homepage resp = ShRequester.getSystem$statistic$homepage();
GroupVo vo = new GroupVo();
@ -31,7 +34,13 @@ public class HomeRest {
vo.setWggm(strMwToDouble(resp.getPowers().getNow()));
vo.setZkgm(strMwToDouble(resp.getPowers().getAll()));
return rb.success().setData(vo);
List<HomepageOrderArea> orderArea = resp.getOrder_area();
Map<String, Object> map = new HashMap<>();
map.put("group_vo", vo);
map.put("order_area", orderArea);
return rb.success().setData(map);
}
@GetMapping("/statisticgroup_new_data")
@ -59,18 +68,21 @@ public class HomeRest {
map.put("listy", listya);
return rb.success().setData(map);
}
@GetMapping("/statisticgroup_area")
public ResultBean<JSONArray> statisticgroup_area() {
ResultBean rb = ResultBean.fireFail();
JSONArray list = ShRequester.getSystem$statistic$group_area();
return rb.success().setData(list);
}
@GetMapping("/statisticgroup_node")
public ResultBean<JSONArray> statisticgroup_node() {
ResultBean rb = ResultBean.fireFail();
JSONArray list = ShRequester.getSystem$statistic$group_node();
return rb.success().setData(list);
}
@GetMapping("/statisticgroup_dataid")
public ResultBean<JSONArray> statisticgroup_dataid() {
ResultBean rb = ResultBean.fireFail();
@ -91,6 +103,13 @@ public class HomeRest {
}
return ret;
}
@GetMapping("/screenindex")
public ResultBean<ScreenIndexPersonPowerNum> screenindex() {
ResultBean rb = ResultBean.fireFail();
ScreenIndex screenIndex = ShRequester.getscreen$screen$index();
return rb.success().setData(screenIndex.getPerson_power_num());
}
}

1
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexQuery.java

@ -12,4 +12,5 @@ public class OrderIndexQuery implements Query {
private String witch_data;
private String workflow;
private String[] search_time;
private String[] search_time_end;
}

7
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexRest.java

@ -105,6 +105,13 @@ public class OrderIndexRest {
return rb.success().setData(pv);
}
@PostMapping("/listPageDzlb")
public ResultBean<IPage<OrderIndexDb>> listPageDzlb(@RequestBody PagerQuery<OrderIndexQuery> pq) {
ResultBean rb = ResultBean.fireFail();
IPage<OrderIndexDb> pv = orderIndexService.listPageDzlb(pq);
return rb.success().setData(pv);
}
@PostMapping("/expExcelYxdz")
public void expExcelYxdz(@RequestBody PagerQuery<OrderIndexQuery> pq, HttpServletResponse response) throws IOException {
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman

11
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexService.java

@ -579,4 +579,15 @@ public class OrderIndexService extends ServiceImpl<OrderIndexMapper, OrderIndexD
// 清空并初始化相关订单索引数据
shOrderIndexJgService.clearAndInit();
}
public IPage<OrderIndexDb> listPageDzlb(PagerQuery<OrderIndexQuery> pq) {
OrderIndexQuery query = pq.getParams();
QueryWrapper<OrderIndexDb> qw = queryWarpYxdz(query);
IPage<OrderIndexDb> page = PagerUtil.queryToPage(pq);
IPage<OrderIndexDb> pagging = baseMapper.selectPage(page, qw);
return pagging;
}
}

14
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/ShRequester.java

@ -62,6 +62,7 @@ public class ShRequester {
private static String system$statistic$group_area = "/api/system/statistic/group_area"; //
private static String system$statistic$group_node = "/api/system/statistic/group_node"; //
private static String system$statistic$group_dataid = "/api/system/statistic/group_dataid"; //
private static String screen$screen$index = "/api/screen/screen/index"; //
/**
* 1.待配货列表
@ -954,6 +955,7 @@ public class ShRequester {
// Map<String, Object> map = BeanUtil.beanToMap(data);
return data;
}
public static JSONArray getSystem$statistic$group_area() {
Map<String, Object> params = new HashMap<>();
params.put("group_id", 0);
@ -964,6 +966,7 @@ public class ShRequester {
// Map<String, Object> map = BeanUtil.beanToMap(data);
return data;
}
public static JSONArray getSystem$statistic$group_node() {
Map<String, Object> params = new HashMap<>();
params.put("group_id", 0);
@ -974,6 +977,7 @@ public class ShRequester {
// Map<String, Object> map = BeanUtil.beanToMap(data);
return data;
}
public static JSONArray getSystem$statistic$group_dataid() {
Map<String, Object> params = new HashMap<>();
params.put("group_id", 0);
@ -985,4 +989,14 @@ public class ShRequester {
return data;
}
public static ScreenIndex getscreen$screen$index() {
String s = ShHttp.dopost(screen$screen$index, null);
// JSONObject jsonObject = JSONUtil.parseObj(s);
// JSONObject data = jsonObject.getJSONObject("data");
// ScreenIndex hp = JSONUtil.toBean(data, ScreenIndex.class);
ScreenIndex hp = JSONUtil.toBean(s, ScreenIndex.class);
return hp;
}
}

24
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/HomepageOrderArea.java

@ -14,16 +14,16 @@ public class HomepageOrderArea {
private long all_power; // 46388425,
private String power; // "46.39MW"
public double getPowerNum() {
double ret = 0.0;
if (StrUtil.isNotBlank(power)) {
String mw = power.replace("MW", "");
try {
ret = Double.parseDouble(mw);
} catch (Exception e) {
e.printStackTrace();
}
}
return ret;
}
// public double getPowerNum() {
// double ret = 0.0;
// if (StrUtil.isNotBlank(power)) {
// String mw = power.replace("MW", "");
// try {
// ret = Double.parseDouble(mw);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// return ret;
// }
}

25
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndex.java

@ -0,0 +1,25 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
import java.util.List;
@Data
public class ScreenIndex {
private List<ScreenIndexAreaData> area_data;
private List<ScreenIndexNearDay> near_day;
private List<ScreenIndexNearMonth> near_month;
private List<ScreenIndexNearYear> near_year;
private String person_day; // 303874.8
private String person_day_co2; // 0
private String person_month; // 8873909.63
private String person_month_co2; // 442.36
private String person_power; // 155550065
private ScreenIndexPersonPowerNum person_power_num;
private String person_totle; // 169633622.42
private String person_totle_co2; // "84562.36"
private String person_volume; // "155.55MW"
private String person_year; // 37693544.46
private String person_year_co2; // "18790.23"
}

17
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexAreaData.java

@ -0,0 +1,17 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
@Data
public class ScreenIndexAreaData {
private int enterprise_count; // 0,
private int enterprise_power; // 0,
private int person_count; // 1540,
private long person_power; // 46533300,
private int person_order_id; // 5146,
private int area_id; // 13336,
private String province_name; // "河北省",
private String lng; // "114.468664",
private String lat; // "38.037057"
}

10
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearDay.java

@ -0,0 +1,10 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
@Data
public class ScreenIndexNearDay {
private String name; // "13日",
private double person_power; // 455934.38,
private String enterprise_power; // 0
}

10
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearMonth.java

@ -0,0 +1,10 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
@Data
public class ScreenIndexNearMonth {
private String name; // "1月",
private double person_power; // 8309521.74,
private String enterprise_power; // 0
}

11
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexNearYear.java

@ -0,0 +1,11 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
@Data
public class ScreenIndexNearYear {
private String enterprise_power; // 0
private String name; // "2021年"
private double person_power; //4277450.2
}

15
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/shanhai/resp/ScreenIndexPersonPowerNum.java

@ -0,0 +1,15 @@
package com.yxt.supervise.gf.shanhai.resp;
import lombok.Data;
@Data
public class ScreenIndexPersonPowerNum {
private int wait_count; // 472,
private int warning_count; // 174,
private int line_count; // 3533,
private int all_count; // 4179,
private int last_week_wait_count; // -32,
private int last_week_warning_count; // -259,
private int last_week_line_count; // 291,
private int last_week_all_count; // 0
}
Loading…
Cancel
Save