shudonghui 1 vuosi sitten
vanhempi
commit
44692ac639

+ 24 - 3
sop-business/src/main/java/com/qmth/sop/business/bean/result/CrmAnalyseResult.java

@@ -22,8 +22,13 @@ public class CrmAnalyseResult implements Serializable {
     String name;
 
     @ApiModelProperty(value = "count")
-    String count;
+    Long count;
 
+    @ApiModelProperty(value = "百分比")
+    String rate;
+
+    @ApiModelProperty(value = "增减")
+    Long compare;
 
     public Long getId() {
         return id;
@@ -41,11 +46,27 @@ public class CrmAnalyseResult implements Serializable {
         this.name = name;
     }
 
-    public String getCount() {
+    public Long getCount() {
         return count;
     }
 
-    public void setCount(String count) {
+    public void setCount(Long count) {
         this.count = count;
     }
+
+    public String getRate() {
+        return rate;
+    }
+
+    public void setRate(String rate) {
+        this.rate = rate;
+    }
+
+    public Long getCompare() {
+        return compare;
+    }
+
+    public void setCompare(Long compare) {
+        this.compare = compare;
+    }
 }

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/service/CrmAnalyseService.java

@@ -29,7 +29,7 @@ public interface CrmAnalyseService extends IService<TBCrm> {
 
     IPage<TBCrmResult> supplierDetail(Page<Object> objectPage, Long startTime, Long endTime, Long supplierId);
 
-    Map<String, List<CrmAnalyseResult>> region(Long startTime, Long endTime, ProductTypeEnum type);
+    List<CrmAnalyseResult> region(Long startTime, Long endTime, ProductTypeEnum type);
 
     IPage<TBCrmResult> regionDetail(Page<Object> objectPage, Long startTime, Long endTime, Long regionId, ProductTypeEnum type);
 

+ 11 - 5
sop-business/src/main/java/com/qmth/sop/business/service/impl/CrmAnalyseServiceImpl.java

@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
@@ -78,13 +79,18 @@ public class CrmAnalyseServiceImpl extends ServiceImpl<CrmAnalyseMapper, TBCrm>
     }
 
     @Override
-    public Map<String, List<CrmAnalyseResult>> region(Long startTime, Long endTime, ProductTypeEnum type) {
+    public List<CrmAnalyseResult> region(Long startTime, Long endTime, ProductTypeEnum type) {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
-        Map<String, List<CrmAnalyseResult>> map = new HashMap<>();
-        map.put("day", this.baseMapper.region(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr));
-        map.put("lastDay", this.baseMapper.region(startTime - 365 * 24 * 60 * 60 * 1000L, endTime - 365 * 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr));
-        return map;
+        List<CrmAnalyseResult> region = this.baseMapper.region(startTime, endTime, Objects.nonNull(type) ? type.name() : null, dpr);
+        List<CrmAnalyseResult> region1 = this.baseMapper.region(startTime - 24 * 60 * 60 * 1000L, endTime - 24 * 60 * 60 * 1000L, Objects.nonNull(type) ? type.name() : null, dpr);
+
+        return  region.stream().map(map->{
+            CrmAnalyseResult crmAnalyseResult = region1.stream().filter(map1 -> map1.getId().equals(map.getId()) && map1.getName().equals(map.getName())).findFirst().orElse(new CrmAnalyseResult());
+            map.setCompare(map.getCount()-crmAnalyseResult.getCount());
+            map.setRate(String.format("%.2f", Double.parseDouble(String.valueOf(map.getCount()-crmAnalyseResult.getCount()))*100 /map.getCount()) + "%");
+            return map;
+        }).collect(Collectors.toList());
     }
 
     @Override

+ 1 - 1
sop-business/src/main/resources/mapper/CrmAnalyseMapper.xml

@@ -204,7 +204,7 @@
 
     <select id="crmDetail" resultType="com.qmth.sop.business.bean.result.TBCrmResult">
         SELECT
-        distinct a.id,a.crm_no as crmNo,
+        distinct a.id crmId,a.crm_no as crmNo,
         a.begin_time  as beginTime,
         a.name,
         tbs.id,