Browse Source

监管报表

master
liupopo 1 year ago
parent
commit
58464093c4
  1. 3
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/api/inventory/InventoryQuery.java
  2. 4
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryMapper.java
  3. 8
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryMapper.xml
  4. 8
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryRest.java
  5. 38
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java
  6. 5
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexMapper.java
  7. 4
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexMapper.xml
  8. 3
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexQuery.java
  9. 4
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexRest.java
  10. 87
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexService.java
  11. 115
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDaily.java
  12. 8
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyMapper.java
  13. 29
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyQuery.java
  14. 29
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyRest.java
  15. 36
      yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyService.java
  16. 4
      yxt-supervise-gf-biz/src/main/resources/application-devv.yml

3
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/api/inventory/InventoryQuery.java

@ -14,6 +14,9 @@ public class InventoryQuery implements Query {
private String storehouse_name;
private String endDate;
private String startDate;
private String dataDate;
private String brand_name;
private String materiel_group;
private String[] storehouses;
}

4
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryMapper.java

@ -1,16 +1,19 @@
package com.yxt.supervise.gf.biz.inventory;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.gf.api.inventory.Inventory;
import com.yxt.supervise.gf.api.inventory.InventoryVo;
import com.yxt.supervise.gf.api.orderindex.OrderIndexDb;
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;
/**
* @author feikefei
@ -25,4 +28,5 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
List<InventoryVo> getInventoryByTime(@Param(Constants.WRAPPER) Wrapper<Inventory> qw);
List<InventoryVo> getDayReportSh(@Param(Constants.WRAPPER) Wrapper<Inventory> qw);
Map<String, Object> countall(@Param(Constants.WRAPPER) QueryWrapper<Inventory> qw);
}

8
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryMapper.xml

@ -30,4 +30,12 @@
</where>
group by storehouse_code ,time
</select>
<select id="countall" resultType="java.util.Map">
select
IFNULL(sum(num),0) numall,
IFNULL(convert(sum(price*num),decimal(10,2)),0) amountall
from inventory
<where> ${ew.sqlSegment} </where>
</select>
</mapper>

8
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryRest.java

@ -89,4 +89,12 @@ public class InventoryRest {
Map<String, Object> inventoryVos = inventoryService.getDayReportShMap(pq);
return rb.success().setData(inventoryVos);
}
@PostMapping("/kcrbpage")
@ApiOperation("分页查询")
public ResultBean kcrbpage(@RequestBody PagerQuery<InventoryQuery> pq) {
ResultBean rb = ResultBean.fireFail();
Map<String, Object> pagerVo = inventoryService.kcrbpage(pq);
return rb.success().setData(pagerVo);
}
}

38
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/inventory/InventoryService.java

@ -4,6 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSON;
@ -704,4 +706,40 @@ public class InventoryService extends ServiceImpl<InventoryMapper, Inventory> {
return m;
}
public Map<String, Object> kcrbpage(PagerQuery<InventoryQuery> pq) {
Map<String, Object> map = new HashMap<>();
InventoryQuery params = pq.getParams();
QueryWrapper<Inventory> qw = new QueryWrapper<>();
String[] wlz = new String[]{"组件", "逆变器"};
qw.in("materiel_group_text", wlz);
String dataDate = DateUtil.format(new Date(), "yyyy-MM-dd");
if(StrUtil.isNotBlank(params.getDataDate())){
dataDate = params.getDataDate();
}
qw.eq("time", dataDate);
if(params.getStorehouses()!=null&&params.getStorehouses().length>0){
qw.in("storehouse_name", params.getStorehouses());
}
Map<String,Object> countall = baseMapper.countall(qw);
map.put("countall", countall);
qw.orderByAsc("storehouse_name");
IPage<Inventory> page = PagerUtil.queryToPage(pq);
IPage<InventoryVo> inventoryVoIPage = baseMapper.selectPageVo(page, qw);
PagerVo<InventoryVo> vo = PagerUtil.pageToVo(inventoryVoIPage, null);
map.put("pagging", vo);
return map;
}
}

5
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexMapper.java

@ -1,9 +1,12 @@
package com.yxt.supervise.gf.biz.orderindex;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.gf.api.orderindex.OrderIndexDb;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author feikefei
@ -13,4 +16,6 @@ import org.apache.ibatis.annotations.Mapper;
public interface OrderIndexMapper extends BaseMapper<OrderIndexDb> {
@Delete("delete from sh_order_index where 1=1 ")
void clearAll();
double sumallpower(@Param(Constants.WRAPPER) QueryWrapper<OrderIndexDb> qw);
}

4
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrdexIndexMapper.xml → yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/biz/orderindex/OrderIndexMapper.xml

@ -1,4 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.gf.biz.orderindex.OrderIndexMapper">
<select id="sumallpower" resultType="java.lang.Double">
select sum(all_power) from sh_order_index
<where> ${ew.sqlSegment} </where>
</select>
</mapper>

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

@ -11,6 +11,7 @@ public class OrderIndexQuery implements Query {
private String agent_id;
private String witch_data;
private String workflow;
private String phase;
private String[] search_time;
private String[] search_time_end;
private String[] witch_group;
}

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

@ -106,9 +106,9 @@ public class OrderIndexRest {
}
@PostMapping("/listPageDzlb")
public ResultBean<IPage<OrderIndexDb>> listPageDzlb(@RequestBody PagerQuery<OrderIndexQuery> pq) {
public ResultBean<Map<String, Object>> listPageDzlb(@RequestBody PagerQuery<OrderIndexQuery> pq) {
ResultBean rb = ResultBean.fireFail();
IPage<OrderIndexDb> pv = orderIndexService.listPageDzlb(pq);
Map<String, Object> pv = orderIndexService.listPageDzlb(pq);
return rb.success().setData(pv);
}

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

@ -3,12 +3,12 @@ package com.yxt.supervise.gf.biz.orderindex;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -17,7 +17,6 @@ import com.yxt.supervise.gf.shanhai.ShRequester;
import com.yxt.supervise.gf.shanhai.req.Order_Index;
import com.yxt.supervise.gf.shanhai.resp.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellAddress;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,9 +26,9 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
@ -45,6 +44,49 @@ public class OrderIndexService extends ServiceImpl<OrderIndexMapper, OrderIndexD
@Value("${import.filePath}")
private String filePath;
private static final String[] WORKFLOW_JH = {"确认交货",
"施工派工",
"施工资料提交",
"代理商完工自审",
"代理商完工自审驳回",
"完工审核",
"完工审核驳回",
"并网资料提交",
"代理商并网自审",
"并网审核",
"并网审核驳回",
"现场验收",
"建转运",
"(工)确认交货",
"(工)施工派工",
"(工)完工提交",
"(工)代理商完工自审",
"(工)工程完工审核",
"(工)并网资料提交",
"(工)代理商并网自审",
"(工)并网发电验收",
"(工)验收资料提交",
"(工)现场审核",
"(工)建转运"};
private static final String[] WORKFLOW_WG = {"并网资料提交",
"代理商并网自审",
"并网审核",
"并网审核驳回",
"现场验收",
"建转运",
"(工)并网资料提交",
"(工)代理商并网自审",
"(工)并网发电验收",
"(工)验收资料提交",
"(工)现场审核",
"(工)建转运"};
private static final String[] WORKFLOW_BW = {"现场验收",
"建转运",
"(工)现场审核",
"(工)建转运"};
public ResultBean save(Order_Index order_index) {
ResultBean rb = ResultBean.fireFail();
String date = DateUtil.format(new Date(), "yyyy-MM-dd");
@ -502,6 +544,33 @@ public class OrderIndexService extends ServiceImpl<OrderIndexMapper, OrderIndexD
qw.between("create_time", t1, t2);
}
if (query.getWitch_group() != null && query.getWitch_group().length > 0) {
qw.and(new Consumer<QueryWrapper<OrderIndexDb>>() {
@Override
public void accept(QueryWrapper<OrderIndexDb> qwo) {
for (int i = 0; i < query.getWitch_group().length; i++) {
if (i == 0) {
qwo.like("data_id", query.getWitch_group()[i]);
} else {
qwo.or().like("data_id", query.getWitch_group()[i]);
}
}
}
});
}
if (StrUtil.isNotBlank(query.getPhase())) {
if ("1".equals(query.getPhase())) { //'进件'
qw.ne("workflow_name", "开始(创建订单)");
} else if ("2".equals(query.getPhase())) { //'签约'
qw.eq("sign", "1");
} else if ("3".equals(query.getPhase())) { //'交货'
qw.in("workflow_name", WORKFLOW_JH);
} else if ("4".equals(query.getPhase())) { //'完工'
qw.in("workflow_name", WORKFLOW_WG);
} else if ("5".equals(query.getPhase())) { //'并网'
qw.in("workflow_name", WORKFLOW_BW);
}
}
return qw;
}
@ -580,14 +649,22 @@ public class OrderIndexService extends ServiceImpl<OrderIndexMapper, OrderIndexD
shOrderIndexJgService.clearAndInit();
}
public IPage<OrderIndexDb> listPageDzlb(PagerQuery<OrderIndexQuery> pq) {
public Map<String, Object> listPageDzlb(PagerQuery<OrderIndexQuery> pq) {
Map<String, Object> map = new HashMap<>();
OrderIndexQuery query = pq.getParams();
QueryWrapper<OrderIndexDb> qw = queryWarpYxdz(query);
double all_power = baseMapper.sumallpower(qw);
String power = NumberUtil.decimalFormat("0.00", all_power / 1000);
map.put("power", power + "kw");
qw.orderByDesc("id");
IPage<OrderIndexDb> page = PagerUtil.queryToPage(pq);
IPage<OrderIndexDb> pagging = baseMapper.selectPage(page, qw);
return pagging;
map.put("pagging", pagging);
return map;
}
}

115
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDaily.java

@ -0,0 +1,115 @@
package com.yxt.supervise.gf.report;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.EntityWithId;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("supervise_report.project_daily")
public class ProjectDaily extends EntityWithId {
private String sid = IdUtil.fastSimpleUUID(); // sid
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime = new Date(); // 记录创建时间
private String remarks; // 备注说明',
private String orderDate; // 单据日期',
private String reportTime; // 汇总时间',
private String projectSid; // 项目Sid',
private String projectName; // 项目名称',
private double totalLoan = 0; // 贷款总额',
private double accountsBalance = 0; // 帐户余额',
private double accountsReceivable = 0; // 应收账款',
private double stockAmount = 0; // 库存货值',
private double transitAmount = 0; // 在途货值',
private double advancePayment = 0; // 预付款',
// private double pledgeRate = 0; // 质押率=(贷款金额-帐户余额)/(库存总价值+应收帐款+在途商品+预付款)',
private double pledgeRate = 0; // 质押率=(贷款金额)/(库存总价值+应收帐款+在途商品+预付款+帐户余额)',
private int messState = 0; // 消息发送状态: 0=未发送;1=已发送',
private int messNum = 0; // 消息发送次数',
private String userSid; // 用户(报告人)Sid',
private String userMobile; // 用户(报告人)手机号',
private String userName; // 用户(报告人)姓名',
private int userType = 1; // 用户(报告人)类型:1监管、2客户、3银行',
private String userStaffSid; // 关联人员的Sid',
@TableField(exist = false)
private double bankPledgeRate;//银行规定质押率
@TableField(exist = false)
private String state="2";//质押状态
@TableField(exist = false)
private double creditLimit;//授信额度
private double useLimit;//用信额度
/**
* 计算出的质押率
*
* @return
*/
public String getPledgeRateNormal() {
// double a = totalLoan - accountsBalance;
// double b = stockAmount + accountsReceivable + transitAmount + advancePayment;
double a=this.useLimit;
double b=stockAmount+accountsReceivable+transitAmount+advancePayment+accountsBalance;
if (b == 0)
return "0";
double v = a / b;
return NumberUtil.roundStr(v, 2);
}
/**
* 计算出的质押率(百分数值)
*
* @return
*/
public String getPledgeRatePercent() {
// double a = totalLoan - accountsBalance;
// double b = stockAmount + accountsReceivable + transitAmount + advancePayment;
double a=this.useLimit;
double b=stockAmount+accountsReceivable+transitAmount+advancePayment+accountsBalance;
if (b == 0)
return "0";
double v = (a / b) * 100;
return NumberUtil.roundStr(v, 2);
}
public String getTotalLoanWan() {
return NumberUtil.roundStr(this.totalLoan / 10000, 2);
}
public String getAccountsBalanceWan() {
return NumberUtil.roundStr(this.accountsBalance / 10000, 2);
}
public String getAccountsReceivableWan() {
return NumberUtil.roundStr(this.accountsReceivable / 10000, 2);
}
public String getStockAmountWan() {
return NumberUtil.roundStr(this.stockAmount / 10000, 2);
}
public String getTransitAmountWan() {
return NumberUtil.roundStr(this.transitAmount / 10000, 2);
}
public String getAdvancePaymentWan() {
return NumberUtil.roundStr(this.advancePayment / 10000, 2);
}
}

8
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyMapper.java

@ -0,0 +1,8 @@
package com.yxt.supervise.gf.report;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProjectDailyMapper extends BaseMapper<ProjectDaily> {
}

29
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyQuery.java

@ -0,0 +1,29 @@
package com.yxt.supervise.gf.report;
import com.yxt.common.core.query.Query;
import lombok.Data;
@Data
public class ProjectDailyQuery implements Query {
private String sid;
private String orderDate; // 单据日期',
private String reportTime; // 汇总时间',
private String projectSid; // 项目Sid',
private String projectName; // 项目名称',
private double totalLoan = 0; // 贷款总额',
private double accountsBalance = 0; // 帐户余额',
private double accountsReceivable = 0; // 应收账款',
private double stockAmount = 0; // 库存货值',
private double transitAmount = 0; // 在途货值',
private double advancePayment = 0; // 预付款',
private double pledgeRate = 0; // 质押率=(贷款金额-帐户余额)/(库存总价值+应收帐款+在途商品+预付款)',
private String dataDateStart; // 数据日期
private String dataDateEnd; // 数据日期
private String userSid;
//时间间隔
private String intervalTime;
}

29
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyRest.java

@ -0,0 +1,29 @@
package com.yxt.supervise.gf.report;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController("com.yxt.supervise.gf.report.ProjectDailyRest")
@RequestMapping("/gf/projectdaily")
public class ProjectDailyRest {
@Autowired
private ProjectDailyService projectDailyService;
@ApiOperation("查询项目监管报表信息")
@PostMapping("/listPage")
public ResultBean<IPage<ProjectDaily>> selectListPage(@RequestBody PagerQuery<ProjectDailyQuery> pq) {
ResultBean rb = ResultBean.fireFail();
// PagerVo<ProjectDailyVo> projectDailyVoPagerVo = projectDailyService.selectListPage(pq);
IPage<ProjectDaily> iPage = projectDailyService.listPage(pq);
return rb.success().setData(iPage);
}
}

36
yxt-supervise-gf-biz/src/main/java/com/yxt/supervise/gf/report/ProjectDailyService.java

@ -0,0 +1,36 @@
package com.yxt.supervise.gf.report;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProjectDailyService extends ServiceImpl<ProjectDailyMapper, ProjectDaily> {
public IPage<ProjectDaily> listPage(PagerQuery<ProjectDailyQuery> pq) {
ProjectDailyQuery params = pq.getParams();
QueryWrapper<ProjectDaily> qw = new QueryWrapper<>();
qw.gt("id", 0);
if (StrUtil.isNotBlank(params.getDataDateStart())) {
qw.ge("orderDate", params.getDataDateStart());
}
if (StrUtil.isNotBlank(params.getDataDateEnd())) {
qw.le("orderDate", params.getDataDateEnd());
}
qw.eq("projectSid", "d8bf7556-6db4-46b1-87eb-f3e9f93d330f"); // 山海项目Sid
qw.orderByDesc("orderDate", "createTime");
IPage<ProjectDaily> iPage = PagerUtil.queryToPage(pq);
IPage<ProjectDaily> page = baseMapper.selectPage(iPage, qw);
return page;
}
}

4
yxt-supervise-gf-biz/src/main/resources/application-devv.yml

@ -4,8 +4,8 @@ spring:
max-lifetime: 500000
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.104.100.138:3306/yxt_supervise_gf?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: shxngf
password: shxngf
username: root
password: yxt_mysql_138
cloud:
nacos:
discovery:

Loading…
Cancel
Save