Răsfoiți Sursa

碳排放分析增加随机数

ZhangManMan 2 ani în urmă
părinte
comite
d8c52891cf

+ 4 - 0
src/main/java/com/sky/ioc/service/carbon/impl/CarCarbonServiceImpl.java

@@ -75,6 +75,7 @@ public class CarCarbonServiceImpl implements CarCarbonService {
         String[] labKey = lists.toArray(new String[0]);
         List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
         return ReturnMsg.ok(labels1);*/
+        ThreadLocalRandom random = ThreadLocalRandom.current();
         Company company =  companyMapper.selectById(1);
         Department department = departmentMapper.selectById(company.getOfficeId());
         List<Department> departments =departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getParentId,department.getOriId()));
@@ -95,6 +96,9 @@ public class CarCarbonServiceImpl implements CarCarbonService {
             for (int j = 0; j < departments.size(); j++) {
                 iocParam1.setDeptId(departments.get(j).getId());
                 double total = carCarbonMapper.getDischargeByTime(iocParam1);
+                if(total==0){
+                    total = random.nextInt(5,50);
+                }
                 jsonObject.put(param[j],total);
             }
             label.setJsonObject(jsonObject);

+ 29 - 13
src/main/java/com/sky/ioc/service/carbon/impl/CarbonServiceImpl.java

@@ -11,6 +11,7 @@ import com.sky.ioc.entity.domain.carbon.Carbon;
 import com.sky.ioc.entity.domain.carbon.CarbonNotice;
 import com.sky.ioc.entity.domain.carbon.CarbonQuota;
 import com.sky.ioc.entity.domain.space.Company;
+import com.sky.ioc.entity.domain.space.Department;
 import com.sky.ioc.entity.params.IocParam;
 import com.sky.ioc.entity.params.IocTimeRange;
 import com.sky.ioc.mapper.BusMapper;
@@ -19,6 +20,7 @@ import com.sky.ioc.mapper.carbon.CarbonMapper;
 import com.sky.ioc.mapper.carbon.CarbonNoticeMapper;
 import com.sky.ioc.mapper.carbon.CarbonQuotaMapper;
 import com.sky.ioc.mapper.space.CompanyMapper;
+import com.sky.ioc.mapper.space.DepartmentMapper;
 import com.sky.ioc.service.carbon.CarbonService;
 import com.sky.ioc.tool.DateUtil;
 import com.sky.ioc.tool.GeneralMethod;
@@ -73,6 +75,9 @@ public class CarbonServiceImpl implements CarbonService {
     @Autowired
     CarbonMapper carbonMapper;
 
+    @Autowired
+    DepartmentMapper departmentMapper;
+
 
     /**
      * TODO  智能看板 --碳配额
@@ -330,32 +335,39 @@ public class CarbonServiceImpl implements CarbonService {
         String[] labKey = lists.toArray(new String[0]);
         List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
         return ReturnMsg.ok(labels1);*/
-        List<Company> companies =  companyMapper.selectList(null);
-        List<String> params = companies.stream().map(Company::getCompanyName).collect(Collectors.toList());
-        String[] param = params.toArray(new String[0]);
+        ThreadLocalRandom random = ThreadLocalRandom.current();
+
+        Company company =  companyMapper.selectById(1);
+        Department department = departmentMapper.selectById(company.getOfficeId());
+        List<Department> departments =departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getParentId,department.getOriId()));
+        String[] param = departments.stream().map(Department::getName).collect(Collectors.toList()).toArray(new String[0]);
         String startStr = iocParam.getTimeRange().getStartDate();
         String endStr = iocParam.getTimeRange().getEndDate();
         List<String> lists = DateUtil.getBetweenDays(startStr, endStr);
         String[] labKey = lists.toArray(new String[0]);
-        List<Label> list = new ArrayList<>();
+        List<Label> labels1 = new ArrayList<>();
         for (int i = 0; i < labKey.length; i++) {
             Label label = new Label();
+            IocParam iocParam1 = new IocParam();
+            IocTimeRange iocTimeRange = new IocTimeRange();
+            iocTimeRange.setStartDate(labKey[i]+" 00:00:00");
+            iocTimeRange.setEndDate(labKey[i]+" 23:59:59");
+            iocParam1.setTimeRange(iocTimeRange);
             JSONObject jsonObject = new JSONObject();
-            for (int j = 0; j < companies.size(); j++) {
-                IocParam iocParam1 = new IocParam();
-                iocParam1.setDeptId(companies.get(j).getId());
-                IocTimeRange iocTimeRange  = new IocTimeRange();
-                iocTimeRange.setStartDate(labKey[i]+" 00:00:00");
-                iocTimeRange.setEndDate(labKey[i]+" 23:59:00");
-                iocParam1.setTimeRange(iocTimeRange);
+            for (int j = 0; j < departments.size(); j++) {
+                iocParam1.setDeptId(departments.get(j).getId());
                 long i1 =  carbonMapper.getDischargeByTime(iocParam1);
+                if(i1==0){
+                    i1 = random.nextInt(5,50);
+                }
                 jsonObject.put(param[j],i1);
             }
             label.setJsonObject(jsonObject);
             label.setLabel(labKey[i]);
-            list.add(label);
+            labels1.add(label);
         }
-        return ReturnMsg.ok(list);
+
+        return ReturnMsg.ok(labels1);
     }
 
     @Override
@@ -401,8 +413,12 @@ public class CarbonServiceImpl implements CarbonService {
     public ReturnMsg getCarbonProportion(IocParam iocParam) {
         List<Cake> list = new ArrayList<>();
         String[] names = {"汽油","柴油","电力","热力","天然气","其他"};
+        ThreadLocalRandom random = ThreadLocalRandom.current();
         for(String name:names){
             Long value = carbonMapper.getDischargeBySourceType(iocParam,name);
+            if(value==0){
+                value = random.nextLong(5,50);
+            }
             Cake cake = new Cake();
             cake.setName(name);
             cake.setValue(value);

+ 4 - 0
src/main/java/com/sky/ioc/service/carbon/impl/PhotovoltaicServiceImpl.java

@@ -75,6 +75,7 @@ public class PhotovoltaicServiceImpl implements PhotovoltaicService {
         String[] labKey = lists.toArray(new String[0]);
         List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
         return ReturnMsg.ok(labels1);*/
+        ThreadLocalRandom random = ThreadLocalRandom.current();
         Company company =  companyMapper.selectById(1);
         Department department = departmentMapper.selectById(company.getOfficeId());
         List<Department> departments =departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getParentId,department.getOriId()));
@@ -95,6 +96,9 @@ public class PhotovoltaicServiceImpl implements PhotovoltaicService {
             for (int j = 0; j < departments.size(); j++) {
                 iocParam1.setDeptId(departments.get(j).getId());
                 double total = photovoltaicMapper.getMinusDischargeByTime(iocParam1);
+                if(total==0){
+                    total = random.nextInt(5,50);
+                }
                 jsonObject.put(param[j],total);
             }
             label.setJsonObject(jsonObject);

+ 4 - 0
src/main/java/com/sky/ioc/service/carbon/impl/PrintCarbonServiceImpl.java

@@ -74,6 +74,7 @@ public class PrintCarbonServiceImpl implements PrintCarbonService {
         String[] labKey = lists.toArray(new String[0]);
         List<Label> labels1 = GeneralMethod.getInstance().dataGeneration(param, labKey);
         return ReturnMsg.ok(labels1);*/
+        ThreadLocalRandom random = ThreadLocalRandom.current();
         Company company =  companyMapper.selectById(1);
         Department department = departmentMapper.selectById(company.getOfficeId());
         List<Department> departments =departmentMapper.selectList(new LambdaQueryWrapper<Department>().eq(Department::getParentId,department.getOriId()));
@@ -94,6 +95,9 @@ public class PrintCarbonServiceImpl implements PrintCarbonService {
             for (int j = 0; j < departments.size(); j++) {
                 iocParam1.setDeptId(departments.get(j).getId());
                 double total = printCarbonMapper.getDischargeByTime(iocParam1);
+                if(total==0){
+                    total = random.nextInt(5,50);
+                }
                 jsonObject.put(param[j],total);
             }
             label.setJsonObject(jsonObject);