diff --git a/ht/src/main/resources/application-prod.yml b/ht/src/main/resources/application-prod.yml index d459dbb8..167784c9 100644 --- a/ht/src/main/resources/application-prod.yml +++ b/ht/src/main/resources/application-prod.yml @@ -7,23 +7,23 @@ spring: name: ht datasource: type: com.alibaba.druid.pool.DruidDataSource - rabbitmq: - host: api.ccsens.com - password: 111111 - port: 5672 - username: admin - redis: - database: 0 - host: 127.0.0.1 - jedis: - pool: - max-active: 200 - max-idle: 10 - max-wait: -1ms - min-idle: 0 - password: 'areowqr!@43ef' - port: 6379 - timeout: 1000ms + rabbitmq: + host: 127.0.0.1 + password: 111111 + port: 5672 + username: admin + redis: + database: 0 + host: 127.0.0.1 + jedis: + pool: + max-active: 200 + max-idle: 10 + max-wait: -1ms + min-idle: 0 + password: 'areowqr!@43ef' + port: 6379 + timeout: 1000ms swagger: @@ -37,4 +37,4 @@ ht: name: 认知功能评测云平台系统 eureka: instance: - ip-address: 140.143.228.3 \ No newline at end of file + ip-address: 71.80.54.64 \ No newline at end of file diff --git a/ht/src/main/resources/application.yml b/ht/src/main/resources/application.yml index 5889ff7f..d082c0ea 100644 --- a/ht/src/main/resources/application.yml +++ b/ht/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - include: common, util-test \ No newline at end of file + active: prod + include: common, util-prod \ No newline at end of file diff --git a/pims/src/main/java/com/ccsens/pims/api/ReadController.java b/pims/src/main/java/com/ccsens/pims/api/ReadController.java index 6c60ef5d..e29b4d77 100644 --- a/pims/src/main/java/com/ccsens/pims/api/ReadController.java +++ b/pims/src/main/java/com/ccsens/pims/api/ReadController.java @@ -35,12 +35,20 @@ public class ReadController { return JsonResponse.newInstance().ok(); } - @ApiOperation(value = "读取产品价格依据表", notes = "") + @ApiOperation(value = "读取产值及附加估算表", notes = "") @RequestMapping(value = "/production", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse realProduction(@Validated @RequestBody CompanyDto.Async async) throws Exception { - log.info("读取产品价格依据表:{}",async.toString()); + log.info("读取产值及附加估算表:{}",async.toString()); realExcelService.realProduction(async); return JsonResponse.newInstance().ok(); } + @ApiOperation(value = "读取总成本费用估算表", notes = "") + @RequestMapping(value = "/cost", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse realCost(@Validated @RequestBody CompanyDto.Async async) throws Exception { + log.info("读取总成本费用估算表:{}",async.toString()); + realExcelService.realCost(async); + return JsonResponse.newInstance().ok(); + } + } diff --git a/pims/src/main/java/com/ccsens/pims/bean/vo/CompanyVo.java b/pims/src/main/java/com/ccsens/pims/bean/vo/CompanyVo.java index 619eaadd..60fcc676 100644 --- a/pims/src/main/java/com/ccsens/pims/bean/vo/CompanyVo.java +++ b/pims/src/main/java/com/ccsens/pims/bean/vo/CompanyVo.java @@ -1,6 +1,5 @@ package com.ccsens.pims.bean.vo; -import cn.hutool.core.util.ObjectUtil; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -82,29 +81,29 @@ public class CompanyVo { private Long incomeId; @ApiModelProperty("月份") private String month; - @JsonIgnore - private Long predictIncomeLong; +// @JsonIgnore +// private Long predictIncomeLong; @ApiModelProperty("预计收入") private BigDecimal predictIncome; - @JsonIgnore - private Long realIncomeLong; +// @JsonIgnore +// private Long realIncomeLong; @ApiModelProperty("预计收入") private BigDecimal realIncome; - public BigDecimal getPredictIncome(){ - BigDecimal pr = BigDecimal.valueOf(0); - if(ObjectUtil.isNotNull(predictIncomeLong)){ - pr = BigDecimal.valueOf(predictIncomeLong).divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP); - } - return pr; - } - public BigDecimal getRealIncome(){ - BigDecimal pr = BigDecimal.valueOf(0); - if(ObjectUtil.isNotNull(realIncomeLong)){ - pr = BigDecimal.valueOf(realIncomeLong).divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP); - } - return pr; - } +// public BigDecimal getPredictIncome(){ +// BigDecimal pr = BigDecimal.valueOf(0); +// if(ObjectUtil.isNotNull(predictIncomeLong)){ +// pr = BigDecimal.valueOf(predictIncomeLong).divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP); +// } +// return pr; +// } +// public BigDecimal getRealIncome(){ +// BigDecimal pr = BigDecimal.valueOf(0); +// if(ObjectUtil.isNotNull(realIncomeLong)){ +// pr = BigDecimal.valueOf(realIncomeLong).divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP); +// } +// return pr; +// } } @Data diff --git a/pims/src/main/java/com/ccsens/pims/service/IRealExcelService.java b/pims/src/main/java/com/ccsens/pims/service/IRealExcelService.java index ae157fad..fdedf697 100644 --- a/pims/src/main/java/com/ccsens/pims/service/IRealExcelService.java +++ b/pims/src/main/java/com/ccsens/pims/service/IRealExcelService.java @@ -14,4 +14,10 @@ public interface IRealExcelService { * @param async wps文件id */ void realProduction(CompanyDto.Async async)throws Exception ; + + /** + * 读取成本表 + * @param async wps文件id + */ + void realCost(CompanyDto.Async async)throws Exception; } diff --git a/pims/src/main/java/com/ccsens/pims/service/RealExcelService.java b/pims/src/main/java/com/ccsens/pims/service/RealExcelService.java index 58b9c758..cf6594a1 100644 --- a/pims/src/main/java/com/ccsens/pims/service/RealExcelService.java +++ b/pims/src/main/java/com/ccsens/pims/service/RealExcelService.java @@ -166,20 +166,24 @@ public class RealExcelService implements IRealExcelService { long projectId = fileIdAndPath.getBusinessId(); //文件路径 String path = fileIdAndPath.getFilePath(); + +// long projectId = 1289087369240252416L; +// String path = "F:\\home\\cloud\\tall\\uploads\\pims\\2020-08-04\\1596521696305.xlsx"; + //获取excel文件 InputStream is = new FileInputStream(path); XSSFWorkbook wb = new XSSFWorkbook(is); if (ObjectUtil.isNull(wb)) {return;} XSSFSheet sheet = wb.getSheetAt(0); if (ObjectUtil.isNull(sheet)) { return; } - for (int i = 2; i <= sheet.getLastRowNum(); i+=2){ + long productTypeId = 0; + for (int i = 2; i <= sheet.getLastRowNum(); i+=3){ XSSFRow row = sheet.getRow(i); if (ObjectUtil.isNull(row)) { continue; } String productTypeCell = ExcelUtil.getCellValue(row.getCell(0)); String productNameCell = ExcelUtil.getCellValue(row.getCell(1)); //产品类型 - Long productTypeId = null; if(StrUtil.isNotEmpty(productTypeCell)){ if("收入".equalsIgnoreCase(productTypeCell)){ return; } ProductTypeExample productTypeExample = new ProductTypeExample(); @@ -210,11 +214,18 @@ public class RealExcelService implements IRealExcelService { } int month = 1; for(int a = 3; a < 15; a++){ - Long predictIncome = new BigDecimal(ExcelUtil.getCellValue(row.getCell(a))).multiply(BigDecimal.valueOf(100)).longValue(); - Long realIncome = null; + String predictIncomeCell = ExcelUtil.getCellValue(row.getCell(a)); + long predictIncome = 0; + if(StrUtil.isNotEmpty(predictIncomeCell)){ + predictIncome = new BigDecimal(predictIncomeCell).multiply(BigDecimal.valueOf(100)).longValue(); + } + long realIncome = 0; XSSFRow realRow = sheet.getRow(i); if(ObjectUtil.isNotNull(realRow)){ - realIncome = new BigDecimal(ExcelUtil.getCellValue(realRow.getCell(a))).multiply(BigDecimal.valueOf(100)).longValue(); + String realIncomeCell = ExcelUtil.getCellValue(realRow.getCell(a)); + if(StrUtil.isNotEmpty(realIncomeCell)) { + realIncome = new BigDecimal(realIncomeCell).multiply(BigDecimal.valueOf(100)).longValue(); + } } //添加产品收入 ProductIncome productIncome = new ProductIncome(); @@ -231,4 +242,8 @@ public class RealExcelService implements IRealExcelService { } } + @Override + public void realCost(CompanyDto.Async async) throws Exception { + + } } diff --git a/pims/src/main/java/com/ccsens/pims/service/ReportService.java b/pims/src/main/java/com/ccsens/pims/service/ReportService.java index 79c2d148..b75ad6ab 100644 --- a/pims/src/main/java/com/ccsens/pims/service/ReportService.java +++ b/pims/src/main/java/com/ccsens/pims/service/ReportService.java @@ -300,13 +300,13 @@ public class ReportService implements IReportService { //循环产品信息 for (int i = 0; i < productIncome.getProductIncomeAllList().size(); i++) { //生成每个产品信息需要的三行 - CompanyVo.ProductIncomeAll productIncomeAll = productIncome.getProductIncomeAllList().get(0); + CompanyVo.ProductIncomeAll productIncomeAll = productIncome.getProductIncomeAllList().get(i); List product1 = new ArrayList<>(); List product2 = new ArrayList<>(); List product3 = new ArrayList<>(); if (i == 0) { //每个类型的第一行有内容,其他的为空 - product1.add(new PoiUtil.PoiUtilCell(productIncomeAll.getProductName(), 1, productIncome.getProductIncomeAllList().size() * 3)); + product1.add(new PoiUtil.PoiUtilCell(productIncome.getProductTypeName(), 1, productIncome.getProductIncomeAllList().size() * 3)); product2.add(new PoiUtil.PoiUtilCell()); product3.add(new PoiUtil.PoiUtilCell()); } else { @@ -325,23 +325,51 @@ public class ReportService implements IReportService { //循环每月的收入 BigDecimal totalProductIncome = BigDecimal.valueOf(0); BigDecimal totalRealIncome = BigDecimal.valueOf(0); - if (CollectionUtil.isNotEmpty(productIncomeAll.getProductIncomeList())) { - for (CompanyVo.ProductIncome income : productIncomeAll.getProductIncomeList()) { + for (int a = 0; a < 12; a++){ + if (a < productIncomeAll.getProductIncomeList().size()) { + CompanyVo.ProductIncome income = productIncomeAll.getProductIncomeList().get(a); product1.add(new PoiUtil.PoiUtilCell(income.getPredictIncome().toString())); product2.add(new PoiUtil.PoiUtilCell(income.getRealIncome().toString())); - BigDecimal bias = income.getRealIncome().subtract(income.getPredictIncome()). - divide(income.getPredictIncome(), 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); - product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); + + if(income.getPredictIncome().multiply(BigDecimal.valueOf(100)).intValue() != 0) { + BigDecimal bias = income.getRealIncome().subtract(income.getPredictIncome()). + divide(income.getPredictIncome(), 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); + product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); + }else { + product3.add(new PoiUtil.PoiUtilCell()); + } totalProductIncome = totalProductIncome.add(income.getPredictIncome()); totalRealIncome = totalRealIncome.add(income.getRealIncome()); + }else { + product1.add(new PoiUtil.PoiUtilCell()); + product2.add(new PoiUtil.PoiUtilCell()); + product3.add(new PoiUtil.PoiUtilCell()); } } +// if (CollectionUtil.isNotEmpty(productIncomeAll.getProductIncomeList())) { +// for (CompanyVo.ProductIncome income : productIncomeAll.getProductIncomeList()) { +// product1.add(new PoiUtil.PoiUtilCell(income.getPredictIncome().toString())); +// product2.add(new PoiUtil.PoiUtilCell(income.getRealIncome().toString())); +// BigDecimal bias = income.getRealIncome().subtract(income.getPredictIncome()). +// divide(income.getPredictIncome(), 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); +// product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); +// totalProductIncome = totalProductIncome.add(income.getPredictIncome()); +// totalRealIncome = totalRealIncome.add(income.getRealIncome()); +// } +// }else { +// product1.add(new PoiUtil.PoiUtilCell()); +// product2.add(new PoiUtil.PoiUtilCell()); +// product3.add(new PoiUtil.PoiUtilCell()); +// } product1.add(new PoiUtil.PoiUtilCell(totalProductIncome.toString())); product2.add(new PoiUtil.PoiUtilCell(totalRealIncome.toString())); - BigDecimal bias = totalRealIncome.subtract(totalProductIncome). - divide(totalProductIncome, 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); - product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); - + if(totalProductIncome.multiply(BigDecimal.valueOf(100)).intValue() != 0){ + BigDecimal bias = totalRealIncome.subtract(totalProductIncome). + divide(totalProductIncome, 2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)); + product3.add(new PoiUtil.PoiUtilCell(bias.toString() + "%")); + }else { + product3.add(new PoiUtil.PoiUtilCell()); + } product1.add(new PoiUtil.PoiUtilCell()); product2.add(new PoiUtil.PoiUtilCell()); product3.add(new PoiUtil.PoiUtilCell()); diff --git a/pims/src/main/resources/logback-spring.xml b/pims/src/main/resources/logback-spring.xml index 3c1c8023..cba835bf 100644 --- a/pims/src/main/resources/logback-spring.xml +++ b/pims/src/main/resources/logback-spring.xml @@ -9,7 +9,7 @@ logback - + @@ -171,7 +171,7 @@ - + diff --git a/pims/src/main/resources/mapper_dao/ProducrDao.xml b/pims/src/main/resources/mapper_dao/ProducrDao.xml index c2dac1fd..de49b666 100644 --- a/pims/src/main/resources/mapper_dao/ProducrDao.xml +++ b/pims/src/main/resources/mapper_dao/ProducrDao.xml @@ -25,8 +25,8 @@ - - + + @@ -274,8 +274,8 @@